质性抽样策略:2026 年指南
Qualitati 研究团队 · 2026-07-20 · 12分钟阅读
最后更新:2026 年 7 月 20 日
简要回答
质性抽样策略是你用来决定纳入哪些人的规则,而不是决定纳入多少人的规则。绝大多数质性研究采用目的性抽样:之所以刻意选择某些参与者,是因为他们的经历能够照亮研究问题。常见变体包括最大差异抽样、同质抽样、理论抽样、标准抽样、极端个案抽样与滚雪球抽样。样本量的正当性来自信息效力或饱和,而不是统计检验力。
核心要点
- 质性样本追求的是概念上的代表性,即相关经验的覆盖范围,而不是对某一总体的统计代表性。
- 目的性抽样是主导性的一大家族。选哪一个变体应当由研究问题决定,而不是由谁最容易招募决定。
- Malterud, Siersma & Guassora (2016) 主张样本量应由信息效力决定:目标狭窄、样本针对性强、理论扎实、对话质量高、以个案为基础的分析,这些都会降低所需访谈数量。
- Robinson (2014) 给出了一个四步序列:界定样本总体,确定样本量,选择抽样策略,然后获取样本。
- AI 主持访谈取消了主持成本对 n 的天花板。这使得抽样策略成为真正的约束条件:一个靠便利方式抽取的大样本,依然是弱样本。
- 在正式投放之前,使用下文的抽样设计画布把设计写清楚、让它可被审阅。
为什么质性抽样策略的逻辑不同
在调查研究中,抽样是为了从样本推论总体,因此概率方法与误差范围占据主导。质性研究提出的是另一类问题:某件事是如何被体验的、某个决定为何做出、某个类别对身处其中的人意味着什么,因此它的抽样方式也不同。目标是聚合起一组参与者,使他们的叙述合在一起能够覆盖相关经验的范围。这就是概念上的代表性。
这正是为什么一项设计良好的 15 人研究,可能比一项设计糟糕的 500 人研究更可信。这也是为什么"谁回应我们就访谈谁"是应用研究中最常见的单一弱点:便利抽样会悄悄地把样本偏向那些方便找到的、热情的、以及本就深度参与的人。
先确定样本总体
Oliver Robinson 那篇被广泛引用的访谈式质性研究抽样指南(Qualitative Research in Psychology, 2014)开篇就界定了样本总体:明确的纳入与排除标准,用以框定谁具备资格。只有在此之后,样本量、策略与来源才依次展开。多数抽样失误都发生在第一步,因为标准从未被写下来,因此也从未被一致地执行。
主要的质性抽样策略
下面是你在产品、UX 与客户洞察工作中真正会用到的策略,以及每种策略所要回答的问题。
| 策略 | 它的作用 | 适用场景 | 主要风险 |
| 最大差异抽样 | 刻意跨越不同细分、情境或极端 | 你需要完整的经验范围,或需要找出跨越差异仍然成立的共同模式 | 若 n 较小,每个细分的覆盖都很单薄 |
| 同质抽样 | 聚焦于一个界定严密的群体 | 你需要在某个特定角色、旅程或状况上挖掘深度 | 结论无法迁移到该群体之外 |
| 标准抽样 | 纳入所有达到既定阈值或经历既定事件的人 | 研究某一特定经历(30 天内流失、入门流程失败) | 判定标准可能依赖会误分类的系统数据 |
| 理论抽样 | 依据目前分析所提示的缺口,迭代式地招募 | 扎根理论式的工作;概念开发 | 要求分析与田野工作并行,而不是事后进行 |
| 极端/偏离个案抽样 | 锁定异常成功或异常失败的个案 | 你希望看到机制最清晰可见的样子 | 非典型个案可能被误当作常态 |
| 滚雪球/链式推荐 | 由参与者推荐其他人 | 难以触达或低发生率的人群 | 推荐链条在社交上会聚集,同质性悄然渗入 |
| 分层目的性抽样 | 为每个细分设定配额,各细分内部再做目的性抽样 | 你必须在既定细分之间做比较 | 配额可能被契合度差的参与者填满 |
| 便利抽样 | 谁有空就找谁 | 仅限试点与工具测试 | 系统性偏差;结论薄弱 |
如何在它们之间取舍
一条能覆盖多数应用研究的快速判断规则:
- 问题是"X 的范围有多大?" → 最大差异抽样或分层目的性抽样。
- 问题是"这个特定群体是如何体验 X 的?" → 同质抽样或标准抽样。
- 问题是"X 为什么会发生?"且概念仍在成形 → 理论抽样。
- 问题是"失败/成功是什么样子?" → 极端个案抽样。
- 人群隐蔽或稀少 → 滚雪球抽样,并检查推荐聚集问题。
需要多少参与者?信息效力优先于人头数
关于质性访谈样本量,被引用最多的答案来自 Malterud, Siersma & Guassora (2016),他们提出了信息效力:样本所承载的相关信息越多,所需的参与者就越少。有五个因素决定它:
- 研究目标:目标狭窄比目标宽泛需要更少的参与者。
- 样本针对性:高度贴合主题的样本,每次访谈携带的信息更多。
- 既有理论:理论基础扎实会降低所需数量。
- 对话质量:强有力、善于追问的访谈,每位参与者产出更多。
- 分析策略:深度个案分析所需的个案数少于跨个案比较。
请注意第四个因素。访谈质量是一个样本量变量。访谈越浅,你就需要越多访谈,而这恰恰是无人主持、不做追问的研究所落入的陷阱。关于何时停止这一相关问题,我们在什么是数据饱和与 AI 主持访谈中的饱和两篇文章中已有讨论。
AI 改变了什么,又没有改变什么
历史上,质性研究的样本量受制于主持人工时。12 到 15 次访谈与其说是方法论选择,不如说是预算的产物。AI 主持访谈改变了这一经济学:访谈可以并行进行、全天候进行、以多种语言进行。
由此产生的推论经常被误读。更便宜的访谈并不会让抽样策略变得不那么重要,反而让它更加重要,原因有三:
- 偏差同样会放大。300 人的便利样本,就是一个有偏的 300 人样本。数量并不能纠正选择误差,它只会让由此产生的偏差看起来更权威。
- 细分比较变得负担得起。当你能投放 60 场访谈而非 12 场时,此前遥不可及的分层目的性设计就成了默认选项。这要求你事先决定分层维度。
- 筛查质量变成承重结构。大规模开放样本库招募会提高遭遇职业受访者与欺诈参与者的风险。截至 2026 年 7 月的公开平台文档,将欺诈筛查与单人研究参与次数上限描述为标准控制措施,请把它们视为必要项,并且要去核实而不是想当然。参见我们关于 AI 主持访谈筛查问卷以及机器人与研究数据质量的指南。
有一件事 AI 并没有改变:理论抽样仍然要求分析与田野工作同步进行。如果你一次性启动 100 场访谈,就等于放弃了让早期发现重塑后续招募对象的机会。若概念仍在成形,请分波次投放。
抽样设计画布(Qualitati 框架)
在招募之前使用它。它能装进一页纸,并让没有参加过规划会议的人也能审阅这份设计。每一行都必须能用一两句话回答;如果做不到,说明设计尚未就绪。
| # | 画布字段 | 它逼你回答的问题 | 失败信号 |
| 1 | 研究问题 | 这项研究将为什么决策提供依据? | 写的是一个主题("入门流程"),而不是一个问题 |
| 2 | 样本总体 | 明确的纳入与排除标准 | 标准只存在于招募人员的脑子里 |
| 3 | 策略 | 选用上表中的哪一种策略,以及为什么 | "能找到谁就是谁" |
| 4 | 细分/分层 | 样本必须支持哪些比较? | 比较是在数据收集之后才想出来的 |
| 5 | 样本量与理由 | 每个细分的目标 n,并以信息效力加以论证 | 一个没有任何依据的整数 |
| 6 | 来源与筛查 | 参与者从哪里来;契合度与真实性如何核验 | 没有筛查问卷;没有欺诈核查 |
| 7 | 已知偏差 | 谁被系统性地遗漏了,代价是什么 | "没有",其实永远都有人被遗漏 |
| 8 | 停止规则 | 什么证据会告诉你该停止或该继续? | 日程排完了就停 |
第 7 项是团队最容易跳过、而评审最爱追问的一项。把谁被遗漏写下来,比如非用户、已流失账户、从未完成注册的人、非英语使用者,就把一个未经检视的弱点转化为一条明示的局限,而这正是可信报告应有的样子。
抽样质量检查清单
- 纳入与排除标准在招募开启之前就已写定。
- 在研究计划与最终报告中都明确写出所用策略的名称。
- 设定了各细分的目标数,而不只是一个总数。
- 筛查问卷至少针对若干已知合格与已知不合格的画像做过测试。
- 把实际达成的样本对照目标记录下来,包括未达标的部分。
- 若使用了滚雪球抽样,检查推荐聚集情况。
- 在局限性一节中点名缺失的群体。
- 用文字论证样本量,并引用信息效力或饱和证据。
Qualitati 在其中的位置
Qualitati 是面向产品、UX 与客户洞察团队的 AI 用户研究平台。具体到抽样:
- AI 主持访谈支持文本与语音并行进行,因此一个带有真实分细分目标的分层目的性设计是负担得起的,而不只是理想。
- 对话式问卷具备 AI 追问与分支逻辑,可以充当筛查层,为目的性访谈样本供给对象。
- 覆盖 10 种语言的多语研究,包括英语、中文、法语、挪威语、荷兰语、德语、西班牙语、葡萄牙语、日语与阿拉伯语,把样本总体拓宽到多数团队将就使用的英语便利样本之外。
- ThemeLens 可在一条流水线中分析多达 100 份转录稿,把编码映射到研究问题上,因此更大的分层样本依然可分析,而不是堆在那里无人阅读。
- Active Listener 模式支持由人主持的访谈,提供实时提示与章节追踪,非常适合小规模同质设计或极端个案设计,在这些设计中对话质量承载着信息效力。
Qualitati 的主持行为与主题分析流水线都有文档记录,并对照学术质性研究文献持续打磨,定价按点数公开。
局限与取舍
- 没有任何抽样策略能挽救一个含糊的问题。如果研究问题是一个主题而不是一个决策,样本就无法针对它来设计。
- 更大并不等于更强。把一个界定不清的样本做大,只会放大偏差,并可能制造虚假的信心。
- 理论抽样与批量投放相冲突。若概念仍在浮现,请选择分波次投放。
- 筛查并不完美。自我报告的资格是可以被钻空子的;在伦理允许的范围内,请对照行为数据或账户数据加以核验。
- 信息效力是一套判断框架,不是一个公式。它为你的样本量论证提供结构,但并不替你算出一个数。
- 人工复核提示:抽样充分性、饱和主张与可推广性陈述,应在发表前由具备资质的研究者依照你所在领域的报告规范(例如 COREQ 或 SRQR)加以复核。
常见问题
质性研究中最常见的抽样策略是什么?
目的性抽样,即刻意选择经历与研究问题相契合的参与者。在应用型产品与 UX 研究中,最大差异抽样与标准抽样是它使用频率最高的两个变体。
质性研究中随机抽样有适用的时候吗?
作为主策略很少适用,因为随机选择并不保证选到信息丰富的个案。它有时会被用在一个已按目的性界定好的池子之内,以便在池子较大且同质时降低选择偏差。
我需要多少参与者?
没有放之四海皆准的数字。请使用信息效力:目标狭窄、样本针对性强、理论扎实、对话质量高、以个案为基础的分析,都会降低所需数量。然后用文字论证你的数字,而不是搬出一条经验法则。
使用滚雪球抽样会让研究失效吗?
不会,但需要披露。推荐链条往往在社交上聚集,因此请报告你有多少条链条,以及不同链条之间的发现是否存在差异。
AI 主持研究可以使用同样的抽样策略吗?
可以,这些策略与方法无关。改变的是可行性:更大规模的分层设计与最大差异设计变得切实可行,而理论抽样要求你分波次投放,而不是一次全部放出。
如何防止职业受访者污染目的性样本?
在可能的情况下把筛查问卷与行为或账户层级的核验结合起来,限制同一个人可参与的次数,并在投放其余部分之前先审阅早期转录稿中是否出现模板式作答。
结论
好的质性抽样策略先回答"选谁,以及为什么是他们",然后才回答"要多少"。界定样本总体,选择一个由研究问题推导出来的策略,设定以信息效力为依据的分细分目标,并写下谁被遗漏了。AI 主持研究抬高了样本量的成本天花板,而这恰恰是上述设计决策如今分量更重而非更轻的原因。
想在没有主持瓶颈的情况下开展一项分层规范的质性研究?免费开始,赠送 30 点数,无需信用卡,或查看透明定价。了解 Qualitati 如何端到端地运行 AI 主持访谈、焦点小组、对话式问卷与主题分析。
配图替代文本建议:"抽样设计画布:从研究问题到停止规则的八个质性抽样策略字段。"
外部来源:Malterud, Siersma & Guassora (2016), Sample Size in Qualitative Interview Studies Guided by Information Power (Qualitative Health Research); Robinson (2014), Sampling in Interview-Based Qualitative Research (Qualitative Research in Psychology); Vasileiou et al. (2018), Characterising and justifying sample size sufficiency in interview-based studies (BMC Medical Research Methodology); Purposive sampling in qualitative research: a framework for the entire journey (Quality & Quantity, 2024)。
"""
def main():
env = {}
with open("backend/.env") as f:
for line in f:
line = line.strip()
if line and not line.startswith("#") and "=" in line:
k, v = line.split("=", 1)
env[k.strip()] = v.strip().strip('"').strip("'")
eng = create_engine(env["DATABASE_URL"])
with eng.begin() as c:
if c.execute(text("SELECT slug FROM blog_posts WHERE slug=:s"), {"s": SLUG}).fetchone():
print("SLUG ALREADY EXISTS - aborting")
return
c.execute(text("""
INSERT INTO blog_posts (slug, title, description, keywords, author, category, read_time,
content, is_published, created_at, updated_at)
VALUES (:slug, :title, :description, :keywords, :author, :category, :read_time,
:content, 1, :dt, :dt)