12-实验:怎么定量地确定因果关系?

你好,我是悦创。
前面两讲,我们分别说了抽样和问卷。如果调查对象内部差异特别大,又不能全部测量,那就用抽样,用样本推断总体;如果想了解人的内部状态,那就用问卷。
当然,生活里还有一些时候,我们就是看到了两个事物,想确定它们之间有没有因果关系,或者想知道一个判断是不是靠谱。这时候还可以怎么办呢?
这一讲,我们就来说一个以确立因果关系为目标的收集数据的方式——实验。
这一讲的任务就是让你理解,当收集数据是为了确立因果关系的时候,对收集数据提出了什么样严格的甚至是变态的要求。
1. 实验的过程
因果关系的表达应该是这样的句式,“因为……所以……”。因为你吃了这片药,所以你变聪明了。但关键问题是,怎么证明这件事呢?怎么证明确实是吃药让人变聪明了呢?
要证明这一点,就要分好几步。
第一步:肯定是要吃药。
吃药这个行为,用实验的术语就叫“操纵自变量”,也叫“干预”,也可以叫“处理”。这一步看起来好像很容易,只要受试者把药吃了就行。但实际上,非常不容易。这个药是用水服下的,还是用茶水服下的?是整个吞下的,还是碾碎了吃的?是饭前吃的,还是饭后吃的……也就是说,你要保证干预和处理的标准一致。
第二步:吃药之后,得看看受试者是不是比吃药前更聪明了。
怎么证明这一点呢?得做两次智商测验。实验开始前做一次,比如得了 90 分,吃药之后一小时,再做一次。只有得分大于 90,而且还得大不少,才能说明确实变聪明了。要是第二次测验得了 91 分,只比原来多 1 分,你说吃这个药会让人变聪明,我估计不会有人相信的。智商测试本来就是个范围,万一有误差呢?
这里,智商是因变量,也就是我们要干预或者处理的结果。智商测试,就是测量因变量。其中,第一次智商测试,用实验的术语叫“前测”;第二次测试,就叫“后测”。后测和前测的差异,也就是你实施干预或者处理的前后差别,就是“效果”。
如果差异大,就说明有效果。此时,你就可以下结论——吃这款药是你变聪明的原因。
2. 怎么确保实验可靠?
刚才,咱们简单把实验过程过了一遍,你发现没有,这里的难点在哪里呢?在选择因变量,也就是你要测量什么来衡量自己干预或者处理的效果。
你想,我们的目标是看这个药是不是让人变聪明了,但测量什么代表聪明程度呢?
上面的案例里,我们自然地用到了智商测验。但智力水平就等于聪明程度吗?肯定不是所有人都赞同这一点。比如,有人可能就觉得,解决问题变快才是变聪明了,所以我们就不要做智商测试,而是让受试者做脑筋急转弯。看看吃药之前 10 分钟能解开几道题,吃药之后 10 分钟又能解开几道题,如果成功的题目大大增加了,就是变聪明了。
为什么选择脑筋急转弯
有些做题是有模版可以套的,如同高考的数学题很多是可以套公式、套模板。而脑筋急转弯没有模板可言,只有临场发挥!
因变量的本质就是,对因果关系里那个结果的操作化。如果你选择的因变量与那个结果对应得特别好,做出的结论就让人信服;对应得不好,就难以让人信服。显然,用智商对应聪明,就比用脑筋急转弯更让人信服一点。
而且,因变量找准了,测量的仪器也得准确。测血压,血压计得是好的吧?测智商,测试题不能是 100 年前的版本吧?仪器不行,数据就不可能准确。数据不准,结论就不可能靠谱。
那么,找准了因变量,也选择了靠谱的测量工具,我们就可以宣布找到因果关系了吗?
还是不能。为了对抗各种攻击,我们还要做很多工作。
其中最猛烈的攻击就是,不吃药就没有这个效果吗?
人的智力是会随着时间推移增长的,6 岁之前的小孩,每天大脑都在急剧增长,所以不吃药是一个值得考虑的方面。「不能忽略人的自身增长!」
所以,我们还要设置一个对照组。对照组的任务就是,确保除了自变量的干预不同这一点之外,其他的都相同。因此,我们必须也给一些人吃药,但这个药不是真的,然后看看这些没有真正吃药的人前测后测的差异,与吃药的人前测后测的差异的差异是多大。虽然这句话像一个绕口令,但含义不难理解。
有了对照组,实验组和对照组的差异才能被解释成来源于你做的干预,也就是自变量的作用。
如果没有对照组,有时候甚至会得出相反的结论。
我给你举一个例子:
维基百科的内容是用户自发贡献的,用户贡献内容不要求回报。于是研究人员就想知道,如果给用户发一个精神性的奖励,这些人的贡献会不会提高呢?研究人员就选择了 100 名有杰出贡献的用户,给他们发了精神性的奖励。结果发现,三个月内,这些人的贡献反而减少了。
难道奖励带来了负面影响吗?
幸亏研究人员设置了对照组。另外还有 100 名杰出贡献者,没有给奖励。结果发现,三个月内,这些人的贡献也减少了,不但减少了,而且比奖励组减少得更多。所以,贡献下降是整体趋势,奖励有很好的正面作用,缓解了贡献的下降速度。
除此之外,还有一个严重的攻击是:对照组和干预组是两拨人,怎么可能相同呢?前面也说过,人和人之间是有差异的,你怎么保证是真正的对照呢?
这确实是个问题。目前看,最好的办法就是用双胞胎,一个干预,一个对照。这样能说服绝大部分人。可是,我们找不到那么多双胞胎,怎么办呢?次优的办法就是 随机化。意思是说,你招募 100 名受试者,谁进入干预组,谁进入对照组,完全随机,按随机分配的结果来。
怎么实现“真”随机干预组、对照组
- 抽签;
- 电脑分配;
- 抛硬币;
- 人性最难测,人心隔肚皮:让受试者自己选择进入想要进的两扇门(对照门、干预门),只做出人数限制。实际操作不要体现出两扇门的区别,要做成一模一样的;(研究者不做任何暗示与提示)
还有,要是受试者一听说这个药有效,心理随之产生变化,尽管吃了假药也变聪明了怎么办?要是实验者发真药的时候和发假药的时候表情不一样怎么办?
双盲实验 就是解决这个问题的。谁吃真药谁吃假药,受试者不知道,实验者也不知道,实验结束后才揭晓。
此外,还有一个社会期望的干扰——前测一做完,受试者就会猜实验者要什么。比如,原来这是要测量我是不是歧视女性(or 男性 or 非洲黑人),那在后测的时候,受试者就会隐藏自己的真实想法。
总之,干扰因素很多很多,上面只是一些主要的。你要知道,好的实验没有那么容易操作。
最后,还有一个重要的问题就是,受试者的代表性决定了结论的适用范围。要是受试者是老鼠,你敢把结论推广到人类吗?要是受试者是大学生,能代表全社会吗?
有一个著名的案例,可口可乐改过一次配方,一推出就被骂惨了,只好改回来。可口可乐公司有那么鲁莽吗?人家在实验室是严格测试过的,受试者更喜欢新配方。但是,没办法,实验室不是社会,在实验室喝一口不等于在家喝一瓶。
事实上,在实验室发生的社会过程很难在真实的社会环境中出现,所以实验室中发现的效应很多都是临时的,不能应用到社会上。
总结一下:实验法通过操纵自变量、控制无关变量、观测因变量这样的逻辑,确保得出因果性结论。因此,实验法特别适合范围有限、界定明确的概念和假设。
3. 两个经典的实验案例
下面,介绍两个在真实社会中做实验的案例。通过这两个案例,你会进一步理解,实验不一定要在实验室做,在真实世界进行会让结论更可信。
先说一个验证性的实验:
研究者的目的是检验一个想法,这个想法是,“如果从监狱释放的囚犯所得到的不仅仅是一套衣服和路费,而是能够帮助他们熬过过渡时期的少量资金支持,帮他们重新找到生活中的位置,那么就可以推迟或者阻止他们再次犯罪。”这个想法听起来很有道理,但毕竟只是想法,是不是真的就要检验。
研究者选择了 2000 名释放的犯人,随机分成了 6 组。第一组资助释放者半年。第二组资助一个季度,但是减免个人所得税。第三组也资助一个季度,但是所得税不减免。第四组不给钱,只提供找工作的帮助。第五组什么都不提供,只进行谈话。第六组什么也不做,连联系都不联系。
结果怎么衡量呢?看一年之后的被捕率。比较各个组的被捕率,就能知道哪一种方式对降低犯罪率是有效的。
最终结果揭晓:一年之后的被捕率,第一组,50%;第二组,49%;第三组,49%;第四组,49%。第五组,48%;第六组,49%。结论很明显,各种力度和方式的资助,统统无效。
这个研究是 1980 年做的,结果发表之后,引发了社会各界对犯罪惩罚的作用和相关刑事惩戒政策的深入讨论。
再说一个商业性的案例:
这个实验的受试者有 11 万人 [1] 。美国游乐园都有一个项目,坐过山车。游客在上面大喊大叫的时候,被拍下来。当游客下来之后,实验者告诉他,你可以买这张照片做纪念。不过,一半游客听到的是,“你可以按自己的意愿付钱,而且收入的一半将捐赠给慈善机构”;而另一半听到的是,“这张照片的价格是多少”。
结果表明,按意愿付钱的游客会比告知固定价格的游客给更多的钱。
4. 思考题
最后,出一道思考题:
某新闻媒体播出了一则新闻,主题是国产电饭煲 PK 日本电饭煲。日本电饭煲是市场的宠儿,都说比国产的好。于是,记者就组织了一次实验。找一只日本电饭煲和一只国产电饭煲,大米用同一种好大米,水用一样的好品牌的纯净水。分别做出米饭,请 10 位大爷大妈品尝。当然,事先不会告诉大爷大妈哪碗米饭是哪种电饭煲做出来的。
结果呢?认为国产电饭煲比日本电饭煲好的,5 人;日本的比国产的好的,3 人;一样好的,2 人。国产电饭煲胜出。于是,根据这个结果,加上一些技术参数的比较,记者得出“国产电饭煲胜过日本电饭煲”的结论。
你同意吗?请把你的思考写在留言区,我们一起讨论。
下一讲,我们说说这几年大火的一个收集数据的新方法——大数据。
我是悦创,我们下一讲再见。
划重点:
- 实验法是通过操纵自变量、控制无关变量、观察因变量这样的逻辑,既找到了因果性,也能知道原因的效果大小。
- 实验法特别适合范围有限、界定明确的概念和假设。因此,实验法最大的问题就在于结论的外推,一不小心就会把结论的适用范围错误地扩大。
- 走出实验室做实验,让实验控制与真实的社会生活接近,会让实验的结论更可靠。
思考题
不太同意。这个“实验”离能下结论还差得远。简要点评如下:
- 样本量太小:只有 10 位被试,其中 2 人打成“平手”,真正可判定的只有 8 票,5:3 的差距在统计上不显著(在“无差别”假设下,出现“≥5 票”的概率约 36%),完全可能是随机波动。
- 代表性存疑:只找“大爷大妈”,不代表整体消费者;而且只比较各 1 台电饭煲,不能代表“国产”和“日本”两个总体。更合理是每个阵营多款、同价位/同加热方式机型,被试覆盖不同年龄与饮食偏好。
- 自变量定义不清:到底比较“产地”、还是“型号/价位/加热技术(IH、压力、曲线)”?如果自变量含混,任何结论都会跑偏。
- 控制不足:虽然米和水相同,但仍可能有大量无关变量未控:米水比是否按各机型推荐?是否统一浸泡时间、烹饪模式、米量占锅容量比例、保温/放置时长与出锅温度、是否多批次重复?这些都会显著影响口感。
- 盲法与顺序效应:被试不知哪碗是哪个锅,算是“单盲”;但上菜顺序、温度、装盘与实验者暗示都可能影响判断,应采用双盲并对每位被试随机、均衡呈现顺序(AB/BA),中间清洁味觉。
- 测量粗糙:只问“哪个好/一样好”,信息量太低。应使用感官评价量表(如 9 点喜好量表)分别打分外观、气味、口感、回甜等,再做统计检验(配对 t 检验/符号检验/秩和检验),给出效应量与置信区间。
- 缺少复测与稳健性:一次性做饭、一次性品评无法排除偶发因素。应多批次重复、不同日子、不同米种做稳健性检查。
- 外推风险:就算这两台机、这 10 人当下偏好国产,也不能推出“国产整体胜过日本”。最多能说“在本实验条件下,这两台机做出的米饭,受试者略偏好国产,但证据不足”。
如何把它做成靠谱的实验(给一套可执行框架)
- 明确假设:H0=两阵营平均喜好无差别;H1=存在差别(或指定方向)。
- 自变量:阵营(国产 vs 日本);分层匹配价位与技术(如非压力 IH 3 款 vs 3 款)。
- 因变量:9 点喜好量表(总体与分维度),可辅以质构仪客观指标(硬度/黏度)作为佐证。
- 被试:≥30–100 名目标消费者,年龄/地区分层;随机化顺序 + 双盲编码。
- 过程控制:统一米水比(按各机型官方推荐达到最佳口感)、米量占比、浸泡时间、模式、出锅静置、上桌温度和时间;每机型多批次重复。
- 统计分析:按人配对比较(AB 设计),报告均值差、置信区间与 p 值;多机型用混合效应模型(机型为随机效应、阵营为固定效应),并做敏感性分析。
- 结论表述:限定在样本与条件范围内,避免过度外推。
一句话总结:眼下这条新闻的做法,更像一次随意的“品尝活动”,证据强度远不足以支持“国产电饭煲胜过日本电饭煲”的因果性结论。要想说服人,得把随机化、双盲、样本量、控制与统计分析都补齐。
5. 避免受试者预测
5.1 从设计上“断根”
- 后测独立组(Post-test only)或 Solomon 四组设计
- 目的:避免“前测暴露目的”。
- 做法:
- 仅后测:随机分两组(干预 vs 对照),不做前测;
- Solomon 四组:
- G1:前测→干预→后测
- G2:前测→安慰剂/对照→后测
- G3:无前测→干预→后测
- G4:无前测→对照→后测
- 分析“前测 × 干预”交互,检验前测是否引发反应偏差。
- 目的:避免“前测暴露目的”。
- 覆盖故事/多任务掩护(Cover Story + Filler)
- 把真实目的“埋”在 3–5 个看起来合理的次要任务里(人格、注意力、词汇等),真实指标随机穿插。
- 所有任务都给统一中性导语,不要提“性别/种族态度”。
- 双盲 + 自动化
- 研究者不知组别与核心指标;线上自填或全程计算机呈现,减少暗示。
5.2 从流程上“拆招”
统一中性脚本(可直接用)
“本研究关注人在不同日常任务中的注意与判断。问卷没有正确或错误答案,请按第一反应作答。为保护隐私,研究方只能看到汇总结果,单个答案不会被识别到个人。”
隐私与激励
- 明确匿名/去标识化与数据最小化;
- 用真实性激励(如答题抽奖与真实选择挂钩)鼓励如实。
任务随机化与反应时间
- 条目、选项、案例顺序全部随机;
- 记录反应时/更改次数,异常“雕刻”可事后标记为高社望倾向。
去需求特征的小技巧
最后目的盲测:在解盲前让受试者写“你觉得研究目的是什么?”作为协变量;
事后解密与剔除规则预注册:若明确猜中目的,可做敏感性分析/稳健性检验。
5.3 从统计上“兜底”
预注册 + 盲法评估
- 预注册主/次分析;报告“你猜自己在哪组?”和“你猜研究目的?”的命中率。
模型控制
- 在 ANCOVA/GLM/混合模型中加入:
- 社会期望得分、目的猜测正确与否、反应时异常标记;
- 任务/条目随机效应(多层模型)减少题目难度差异干扰。
- 在 ANCOVA/GLM/混合模型中加入:
多方法收敛
同时用显性量表 + 间接/行为指标;若显性受污染,行为端仍能检测效果。
报告主分析 + 去偏子样本 + 稳健估计(如分位数回归/贝叶斯灵敏度)。
5.4 社会期望偏差与需求特征的应对策略总表 🧠
| 环节 | 方法 | 核心操作 | 解决的偏差问题 | 优点 | 注意事项 |
|---|---|---|---|---|---|
| 设计阶段 | 后测独立组 / Solomon 四组设计 | 不给前测或采用四组设计,避免前测暴露目的 | 减少“前测暴露目的”导致的演戏 | 简单直接;统计效力强 | 样本量需求更大 |
| 掩护故事(Cover Story) | 设置多任务、虚假主旨,让受试者不知道研究目的 | 受试者难以猜测研究意图 | 易实施,效果显著 | 注意伦理审批和真实告知 | |
| 双盲 / 自动化流程 | 研究者也不知分组,任务全由计算机呈现 | 避免研究者非语言暗示 | 高效控制额外变量 | 需要设计系统支持 | |
| 测量阶段 | 间接测量(IAT、AMP) | 测试隐性联结和启动效应 | 受试者难以伪装答案 | 结果更接近真实态度 | 数据解释需谨慎 |
| 行为指标 | 用金钱分配、点击率、座位距离等行为结果 | 不易“演”出社会期望 | 高生态效度 | 行为任务设计要自然 | |
| 清单实验 / 随机化回应 | 用统计方式保护隐私,不直接提问 | 减少受试者伪装 | 高敏感度问题首选 | 分析模型需提前规划 | |
| 平衡条目 / 间接问法 | 混合正反向条目、第三人称提问 | 降低“正确答案”倾向 | 操作简单 | 注意量表信度 | |
| 流程控制 | 统一中性话术 | 所有任务前使用中性提示语 | 减少暗示性引导 | 简单易行 | 需培训实验员 |
| 隐私与匿名保障 | 明确数据匿名、不可追溯 | 受试者更愿意真实回答 | 增强信任感 | 需伦理声明支持 | |
| 任务随机化 | 条目顺序、选项随机化 | 减少题目顺序带来的策略性作答 | 减少模式识别 | 需要系统支持 | |
| 盲法评估 | 在解盲前问“你猜研究目的是什么?” | 检测偏差是否存在 | 结果可用于统计修正 | 要提前设计问卷 | |
| 统计阶段 | 协变量控制 | 将“社会期望量表得分”或“猜中目的”作为协变量 | 修正偏差对结果的影响 | 数据解释更准确 | 需要额外测量数据 |
| 多方法收敛 | 同时用显性量表 + 隐性测量 + 行为指标 | 验证结果一致性 | 结果更稳健 | 成本更高 |
6. 特殊名词解释
6.1 高社望倾向(High Social Desirability)🧑⚖️
小白版解释:
人们在回答敏感问题时,常常会“说好听的”“说别人会喜欢听的话”,而不是真实想法。这就叫“社会期望偏差”。
如果一个人特别在意别人怎么看自己,就容易出现“高社望倾向”。
🔎 举个例子:
问“你有没有过歧视女性的想法?”
- 真实想法:其实有过。
- 但为了“显得正确”,他说:“从来没有!”
这类“装好人”的受试者,就是高社望倾向。
6.2 目的盲测(Purpose Guessing Test)🔍
小白版解释:
“目的盲测”是研究结束前让受试者猜猜这个实验到底是干什么的,用来检查他们是否已经“猜到了”研究目的。
🧪 为什么要这么做?
因为如果大家都猜到了“你是在测偏见”,那他们后面的回答可能就不自然、不真实了。
📌 举个例子:
研究结束后问一句:“你觉得这个研究主要是想研究什么?”
- 如果有很多人答:“想看我是不是歧视女性”,说明你的实验可能“暴露目的”了。
- 这时候你就可以在分析数据时考虑到这一点(比如把这些人作为一个单独组来分析)。
6.3 协变量(Covariate)📊
小白版解释: 协变量就是“可能影响结果的其他因素”,我们在分析时把它们一并考虑进去,避免它们“搅局”。
🔎 举个例子:
你在研究“吃药能不能让人更聪明”,但有些人原本就更聪明。
这时候“原本的智力水平”就是一个协变量。
在数据分析时,你告诉计算机:“别忘了考虑原本智力的影响”,这样得出的结果才更准确。
📈 再比如在偏见实验中,“社会期望倾向得分” 就可以作为协变量。
也就是说:你测了每个人有多想“表现得好”,然后在统计时“控制”掉这个因素,让结果更可靠。
6.4 去需求特征的小技巧
“去需求特征的小技巧”其实就是——让受试者不知道你真正想研究什么,或者即使他们猜到了,也无法根据猜测来“迎合”你的预期。这在心理学、社会学实验里非常重要,因为一旦被试“演”了,数据就不真实了。
我给你用小白能懂的方式拆开👇:
6.4.1 什么是“需求特征”🧠
“需求特征”(Demand Characteristics)是指:
👉 在实验里,受试者根据实验设计、提问方式、实验者的表情、前后任务内容等,猜出了你想研究什么,然后就不自觉地“配合”或“对着干”。
举个例子:
- 你设计了一个实验想测“人们对女性是否有偏见”。
- 受试者一看前测都是“女性 vs 男性”“能力判断”这类题,就猜到了目的。
- 后测就开始“装正义”或“故意唱反调”。
这样,数据就不再是他们真实的想法,而是他们以为你想要的回答。
6.4.2 去掉需求特征的小技巧(小白版)🧰
1. 🪄 “掩护故事”(Cover Story)
给实验编一个“无害的理由”,让受试者以为研究的是别的东西。
比如:
- 你要测“性别偏见”,就说:“我们在研究人们在不同情境下的记忆和判断习惯。”
- 然后把性别题混在一堆“注意力”“词汇选择”“反应时间”题中,他们就不容易猜到目的。
✅ 优点:大大减少“演戏”可能性。
2. 🎲 混入无关任务 / 干扰题
不要让实验题全都指向一个主题,混进去一些“看似不相关”的任务,让受试者分不清哪个是重点。
比如:
- 想测“对黑人态度”,就把这些题混进“颜色偏好”“动物喜好”“天气选择”等杂乱问卷里;
- 或者前后安排一些注意力测试、记忆测试,让实验看起来“很综合”。
✅ 优点:让受试者猜不出真正的研究意图。
3. 🤖 间接提问法
不要直接问敏感问题,而是通过“旁敲侧击”的方式测量真实态度。
比如:
- 不问“你觉得女性领导好吗?”
而是问:“如果一个公司由不同性别的领导带队,你觉得哪一组更有效率?”(性别只是变量之一)
✅ 优点:即使猜到主题,也很难“刻意伪装”。
4. 🪑 使用行为指标而非问卷
用行动而不是“回答”来判断态度,因为行为更难伪装。
比如:
- 看他们愿意跟谁合作、分多少钱给谁、站得多近、选择哪个方案;
- 比如简历筛选实验:不同性别/种族名字随机出现在简历上,看他们选哪一个。
✅ 优点:行为比口头回答更难装。
5. 🧪 任务顺序 & 呈现方式随机化
如果所有敏感题都在一起,受试者很容易“嗅出”意图。
👉 把题目顺序随机化、变量随机化,让人无法通过题目顺序猜出实验结构。
6. 🧑💻 匿名、自动化、远程实验
如果实验是面对面进行的,人们更容易“演”。
但如果是匿名填写、线上自动呈现、机器评分,他们就没必要“装样子”。
7. 📋 事后问一句:你觉得这个实验在研究什么?
这是“目的盲测”的一部分。
如果很多人答得很接近真实目的,就说明你的设计需求特征太明显了,下次得改进。
6.4.3 总结
✅ 总结一下最常用的“去需求特征”小技巧:
| 技巧 | 通俗解释 | 举例 |
|---|---|---|
| 掩护故事 | 给实验换个“假目标” | 说在测“注意力”,其实测“偏见” |
| 混入干扰任务 | 敏感题混在一堆杂题里 | 偏见题 + 天气题 + 词汇题 |
| 间接提问 | 不直接问敏感问题 | 用情境判断替代直接提问 |
| 行为测量 | 看“做了什么”而不是“说了什么” | 看谁被选为合作伙伴 |
| 随机化 | 打乱题目顺序/变量 | 题目次序每人不同 |
| 匿名自动化 | 减少“被别人看着”压力 | 线上问卷、自动化评分 |
| 目的盲测 | 事后问“你觉得实验研究啥” | 猜中的太多就得改设计 |
📌 一句话总结: “去需求特征”的本质,就是让受试者无法轻易猜到你在研究什么,或者即使猜到了,也没法轻易‘装’给你看。这样,数据才是他们真实的行为和想法。
6.5 表格总结
| 名词 | 通俗解释 | 举例 |
|---|---|---|
| 高社望倾向 | 想表现得“道德正确”,说好听的 | 明明有偏见,却说“我从不歧视” |
| 目的盲测 | 实验后让受试者猜研究目的,检查是否“看穿”了 | 结束时问“你觉得这个实验研究什么?” |
| 协变量 | 会影响结果的其他因素,分析时一起考虑 | 原本智力水平、社会期望得分 |
| 去需求特征的小技巧 | 让受试者无法轻易猜到实验目的,或即使猜到也无法“迎合” | 使用掩护故事、混入干扰任务、随机化题目、间接测量、行为指标、匿名化等方法 |
7. 扩展
7.0 背景:为什么要用统计模型?🧪
我们做实验的目标是——判断“干预”到底有没有效果,比如:
- 真药组 vs 假药组,谁的智力测验分数更高?
- 看了“去偏见训练”的人 vs 没看的,态度有没有改变?
听起来简单:平均数一比不就完了?
👉 可现实里没那么容易,因为:
- 每个人的起点不同(比如本来就很聪明);
- 有的人社会期望高(想装好人);
- 有的人猜到了实验目的,行为就变了。
这些**“其他因素”**如果不处理,就会“搅浑水”,让我们无法知道“是不是药物本身起了作用”。
于是就有了:协变量控制、ANCOVA、GLM、多层模型、分位数回归……
别慌,其实它们本质都在做一件事:
🧠 “把那些会影响结果的其他因素扣掉,再看干预本身的效果。”
7.1 协变量控制:把“杂音”扣掉 🧮
7.1.1 什么是协变量?📊
协变量就是除了干预本身以外,可能影响结果的变量。
- 比如“社会期望得分”:有人想装好人,有人不在乎;
- 比如“反应时异常”:有人随便乱答;
- 比如“前测分数”:有的人原本就水平高。
这些因素都会影响结果,我们要在分析时把它们“扣掉”。
详情
这里的“把协变量扣掉”,不是把数据删掉,而是在设计与统计两端动手,把“药效以外的影响”从结果里分离出去。
一、设计阶段就先“扣”:让差异更可比
(越早做,后面统计就越轻松)
预注册主要结局 & 协变量清单
- 例:主结局=后测认知分;协变量=前测分、社会期望得分(MC-SDS)、“是否猜到目的”(0/1)、反应时异常比例、站点/评估者。
分层随机/区组随机(blocking)
按关键协变量(如前测高/低、性别、站点)先分层,再在层内随机分到 真药/安慰剂。
效果:两组在这些因素上天生更平衡,后续回归只需微调。
统一测量与流程
- 同一量表、同一评估脚本、同一时间窗;把发药与评估人员分离(双盲)。
设计阶段的目标:先尽量让“杂音”变小,统计阶段再做“精修”。
二、统计阶段再“扣”:回归里把影响拆开
核心思想:把结果拆成「基线 + 干预 + 协变量 + 噪声」。
A. 最小可行模型(ANCOVA,推荐入门)
适合:有前测与后测,想比较两组后测差异
模型(直白版):
- 组别(0=对照,1=干预) 的系数 (\beta_1) 就是“扣掉协变量后的净效应”。
- 把前测放进来是关键:能极大降低个体差异的噪声。
报告怎么写(一句话模板):
在控制前测、社会期望与目的猜测后,干预组比对照组平均高 Δ=3.8 分(95%CI [1.9, 5.7],p=0.0004),调整后的组间差异如图/表所示。
B. 多层/混合模型(有重复测量/多中心)
适合:每人多次测量、不同站点/评估者
简式:
- 是“每个人自带的偏移”(随机效应),能自然扣除个体差异。
- 交互项 看“随时间的改善差是否因组别而不同”。
C. 稳健与补强(推荐一起做)
- 标准化/中心化协变量(z-score 或减均值):系数更稳定、好解释。
- 稳健方差(HC3):对不等方差更抗造。
- 缺失用多重插补(MICE):别因少量缺失就丢样。
- 估计边际均值(EMMs):给出已调整均值与组间对比,更直观。
三、把“扣掉”落到每一步:表单与变量表
你要收哪些?如何入模?
| 变量 | 类型/取值 | 用途(为何能“扣”) | 入模做法 |
|---|---|---|---|
| 前测分 | 连续 | 基线能力差异 | 直接做协变量,优先 |
| 社会期望(MC-SDS) | 连续 | 装“正确”的倾向 | 协变量;或分组做敏感性 |
| 目的猜到 | 0/1 | 需求特征暴露 | 协变量;或排除做敏感性 |
| 反应时异常 | 比例/0-1 | 粗心或造作 | 协变量;或标记剔除 |
| 站点/评估者 | 类别 | 系统性差异 | 固定效应或随机效应 |
| 性别/年龄 | 类别/连续 | 构成差异 | 视研究问题决定是否纳入 |
四、两条“落地”操作路线
路线 1:Excel / 不写代码也能做
- 数据表:每行=一个受试者;列含:组别(0/1)、后测、前测、社望、目的猜到(0/1)、站点等。
- 数据分析加载项 → 回归:
- 因变量:后测
- 自变量:组别 + 前测 + 社望 + 目的猜到 + 站点虚拟变量
- 看输出中组别的系数与置信区间(这就是“扣过”的净效应)。
- 想看“调整后的组均值”:
- 用回归方程,分别把组别=0/1,协变量设为全样本均值,算两次预测值;差值就是已调整差异。
- 或在 R/Python 用 EMMs 一步出表(见下)。
小技巧:类别变量(如站点)要做哑变量(A=基准;B、C…各建一列 0/1)。
路线 2:Python(statsmodels,三行搞定)
import pandas as pd
import statsmodels.formula.api as smf
# df: 一行一人,含 columns: post, group(0/1), pre, sds, guessed(0/1), site, assessor
model = smf.ols('post ~ group + pre + sds + guessed + C(site) + C(assessor)', data=df).fit(cov_type="HC3")
print(model.summary()) # 组别系数 = “扣掉协变量后的净效应”
# 估计边际均值(已调整组均值)
import statsmodels.stats.anova as anova
# 简便做法:用组别=0/1、其他协变量取 df 的均值/众数,计算两次预测
Xbar = df[['pre','sds','guessed']].mean()
for g in [0,1]:
df_tmp = pd.DataFrame([{**Xbar.to_dict(), 'group':g}])
# 若有类别协变量(site/assessor),可固定在最常见水平或按样本权重加权
print(g, model.predict(df_tmp))想要多层模型:
smf.mixedlm('post ~ group + pre', data=df, groups=df['id']).fit()想要多重插补:
statsmodels.imputation.mice或miceforest。想要分位数回归(看不同人群的效果):
smf.quantreg('post ~ group + pre + sds', df).fit(q=0.1/0.5/0.9)。
五、如何判定“扣得干净”?(质控清单)
- 平衡表(baseline table):比较两组在协变量上的差异;若大,优先解释;极端情况可做加权/匹配敏感性分析。
- 共线性检查:VIF < 5 为宜;如高,考虑合成指标或主成分。
- 模型假设:残差图看线性与等方差;HC3/稳健 SE 作为兜底。
- 缺失机制:报告缺失比例;用多重插补并与完全案例结果对比。
- 敏感性分析:
- 去掉“目的猜到=1”的人再跑;
- 用分位数回归看 0.1/0.5/0.9 分位是否一致;
- 多种协变量组合/模型规格,结论是否稳。
六、一句话总括
“扣掉协变量” = 在设计上先用分层随机/统一流程把噪音压小;在统计上用 ANCOVA/回归/混合模型把基线差异、社会期望、目的猜测、站点等影响显式纳入,最后用组别系数与已调整组均值报告“净效应”。
如果你愿意给我一份(哪怕是匿名化的)小样本表格,我可以当场跑一遍:输出“未调整 vs 已调整”的差异、EMMs 表、以及一张“调整后均值 + 95%CI”的小图,方便你直接塞到报告/论文里。
7.1.2 用生活举例:📈
你想比较两种肥料对植物生长的效果,但有些植物本来就长得快(天赋不同)。
✅ 方法:
- 把“原本的高度”作为协变量;
- 统计时先扣掉“原本就长得快”的影响;
- 再看肥料的净效果。
7.1.3 数学形式(简化版)✏️
我们想分析「实验结果」(比如后测得分),传统比较是:
但考虑协变量后:
📌 含义:
- :在扣除“社会期望”和“原本分数”影响后,干预本身的真实效果。
- :这些“杂音”变量对结果的影响。
👉 这就是所谓的 ANCOVA(协方差分析):控制协变量,再看组间差异。
详情
最通俗的解释:截距就是“起点值”。
7.2 GLM(广义线性模型):更通用的“比较平均数” 🧮
传统比较用的 t 检验、方差分析 ANOVA 等,都只是 GLM 的特例。
GLM 的核心思想非常简单👇:
- “自变量”可以是:是否吃了药、性别、年龄、社会期望得分……
- “结果”可以是:得分、是否通过测试、选择了谁……
GLM 的好处是:你可以把多个因素放在一起看它们的影响,比如:
- 干预本身有没有用?
- 在不同社会期望水平下,干预效果是否不同?
📌 直观比喻:GLM 就像一个“天平”,它会把所有可能的影响因素放上去,然后告诉你:“真正压得最重的是哪个因素”。
7.3 混合模型 / 多层模型:考虑“嵌套结构” 🏗️
有时候数据不是“每个人一行”那么简单:
- 学生嵌套在班级里;
- 题目嵌套在被试身上;
- 多次测量嵌套在同一个人身上。
这些结构意味着数据点之间不是完全独立的。如果你忽略这个结构,统计结论就可能“虚假显著”。
📊 举例:
- 同一个人答 20 道题 → 这些题目结果“互相影响”;
- 同一个班的学生 → 相似性更高。
👉 多层模型(Mixed Model)会在公式里多加一项 “随机效应”:
- :每个人自己的“随机偏移”;
- :误差。
📌 比喻:就像你在比较“肥料”效果时,也考虑到“不同土地的肥沃度”这种背景因素。
7.4 多方法收敛(Triangulation):多条路指向同一个结论📊
即使问卷“被演”了,我们还有“后手”:
- 显性量表(直接回答)
- 间接测量(IAT、行为选择)
- 行为指标(坐得多近、分的钱多少)
如果三种方法都指向同一个结论,那说明结果更可靠,这就叫多方法收敛。
📌 就像侦探办案:一个证人说你有罪可能不可信;但三个证据都指向你,那就基本确定了。
7.5 稳健估计(Robust Estimation):防止“极端值”干扰 📉
有时少数“奇怪的被试”会把结果拉歪,比如:
- 有人乱答问卷;
- 有人测前分数特别离谱。
这时候可以用:
- 分位数回归(Quantile Regression):不看“平均数”,而看“中位数”或“百分位”;
- 稳健回归:给极端值更小的权重。
📌 比喻:比如你要看“大家的身高”,一个巨人(2.5 米)不能代表整体,中位数就更能反映“典型情况”。
7.6 总结:你要记住的不是公式,而是逻辑📦
| 方法 | 通俗理解 | 作用 |
|---|---|---|
| 协变量控制 | 把“杂音”扣掉再看干预 | 去除社会期望、前测差异等干扰 |
| ANCOVA / GLM | “多变量版”的平均数比较 | 同时考虑多个因素 |
| 混合模型 | 考虑“数据有层次” | 人内多次测量、题目差异 |
| 多方法收敛 | 用多种方法验证同一结果 | 结果更稳、更可信 |
| 稳健估计 | 不让极端值左右结果 | 看“中间趋势”而非“平均值” |
👉 这些方法的本质是:
“尽量排除掉非干预因素的干扰,让我们更准确地看到 ‘干预本身’ 到底有没有用。”
✅ 如果你是数学小白,请记住一句话:
统计模型不是魔法,它就是在‘扣掉杂音’,让你看得更清楚。
7.7 分位数回归(Quantile Regression)🪜
7.7.1 常规回归在干什么?📊
我们平时最常见的分析方法是「线性回归」:
这是什么意思呢?
👉 它是在研究“平均水平”上的关系。
比如:
- :学生考试成绩
- :每天学习的小时数
线性回归回答的问题是:“平均来看,多学一小时分数会涨多少?”
7.7.2 分位数回归在干什么?📈
分位数回归不是看平均数,而是看“不同位置的人”的变化趋势。
📍 生活类比:
- 你在意“平均收入”时,用线性回归;
- 你在意“最穷的 20% 人怎么变”“最富的 10% 人怎么变”时,就要用分位数回归。
数学上,分位数就是“排队”后的位置:
- 中位数(0.5 分位):一半人高,一半人低;
- 0.1 分位:最底下 10%;
- 0.9 分位:最上面 10%。
👉 分位数回归就像是在问:
“对最差的人来说,干预有没有效果?”
“对最优秀的人来说,干预有没有效果?”
7.7.3 举个心理学实验的例子:📊
你研究「去偏见培训」是否能提高人们的“包容性评分”。
- 线性回归的结论可能是:“平均提升了 5 分”;
- 但分位数回归可能发现:
- 最低 20% 的人 提高了 15 分(效果很大);
- 最高 20% 的人 几乎没变化。
📌 意义:说明干预主要对“偏见严重的人”有效,对“本来就包容的人”没啥用。
📐 数学(不用怕)
传统回归是最小化「平方误差」:
分位数回归是最小化「不对称的绝对误差」:
其中 是“分位数损失函数”,(\tau) 是你想看的分位点(比如 0.1、0.5、0.9)。
📌 你不需要推导它,只要记住一句话:
分位数回归 ≠ 看平均值,而是看“第 10%、第 50%、第 90%”的人群在干预下的不同反应。
7.8 贝叶斯灵敏度分析(Bayesian Sensitivity Analysis)🧪
这名字看起来很“数学味”,我们分三步拆开:
7.8.1 贝叶斯思想:不断更新的信念
先从贝叶斯定理的直觉讲起:
📌 这是什么意思?一句话:
先有一个“信念”,看到数据后再更新这个信念。
叶斯思想的核心就是一句话:有了新证据,就更新原有的判断。
生活举例👇:
- 你认为“这药大概有 60% 的可能有效”(先验信念);
- 做了实验后,数据让你相信“它有 85% 的可能有效”(后验信念)。
7.8.2 灵敏度分析:换不同的“信念”试试看
贝叶斯模型需要一个“先验”(Prior)——比如“我原本认为药有效的概率”。
可问题来了:这个“先验”有点主观。
那如果我选的“先验”不一样,会不会导致结论变了呢?🤔
这时候就要做灵敏度分析:
- 换几种不同的先验(比如保守的、中立的、乐观的);
- 看看最后的“后验结果”是否依然稳定。
📊 举个例子:
| 先验 | 后验结果 |
|---|---|
| 乐观:80% | 90% |
| 中立:50% | 88% |
| 保守:20% | 86% |
📌 结论:无论我“起点信念”怎样,实验数据都把我带向了“药很可能有效”的结论 → 结果稳健可靠。
如果一个实验结论是正确的,那么应该支持我们从其它方面研究得到的实验结果也是正确的。
7.8.3 数学解释(小白版)
贝叶斯公式其实就是“先验 × 似然”:
- Prior:你实验前的信念
- Likelihood:实验数据提供的信息
- Posterior:更新后的信念
灵敏度分析就是——换不同的 Prior,看 Posterior 会不会变。
如果 Posterior 不太变,说明数据“压过了先验”,结论稳;
如果 Posterior 变化大,说明结论太依赖主观假设,就要小心。
7.8.4 🧰 应用场景总结
| 方法 | 通俗解释 | 适用场景 | 意义 |
|---|---|---|---|
| 分位数回归 | 不看“平均效果”,而是看不同人群的效果 | 干预可能对不同水平人群有不同作用 | 找到“谁”最受益 |
| 贝叶斯灵敏度分析 | 换不同“起点假设”,看结论是否稳定 | 先验主观性较强、样本量小、结果争议大时 | 检查结论稳不稳、靠不靠谱 |
📌 最通俗的一句话总结:
- 分位数回归:别只看“平均值”,看看“最差的”和“最好的”人群反应怎样。
- 贝叶斯灵敏度分析:别死盯一个假设,换几种起点信念试试看,看看结果是不是“都差不多”。
✅ 一个生活比喻总结:
- 分位数回归就像:同一场运动课,老师不只看“平均体力”,还要看“最弱的”“最强的”学生反应。
- 贝叶斯灵敏度就像:换几副“有色眼镜”看同一件事,如果无论哪副眼镜结果都差不多,说明真相基本就那样。
公众号:AI悦创【二维码】

AI悦创·编程一对一
AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Web、Linux」,招收学员面向国内外,国外占 80%。全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh
C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh
方法一:QQ
方法二:微信:Jiabcdefh

案例源于《心理学方法新进展》,作者辛自强。 ↩︎
更新日志
0bca1-于b19b0-于ee7a7-于464f2-于6debc-于d7e21-于f477f-于ac5a6-于8870b-于d7b0d-于6280a-于8b9f3-于3a032-于9e422-于5fe87-于ceea0-于92135-于22d25-于aa793-于d91c7-于9b83f-于e4647-于dd35f-于2c2b9-于75481-于87164-于b2b61-于24617-于70353-于ae8a4-于9bfdc-于4d098-于1c35a-于cbb3a-于76989-于86c50-于027da-于