差异性分析-参数检验
协方差分析
在排除连续协变量的基线干扰后,再判断分组对定量因变量是否还有净效应,并给出修正均值。
这篇能回答什么
协方差分析要处理的不是「两组数学成绩的原始均值谁高」,而是「把语文成绩拉到同一水平之后,性别对数学成绩还有没有独立贡献」。它同时吸收了回归与方差分析:协变量以斜率进入模型,分组以因子进入模型,残差均方充当噪声尺度。输出里真正对应研究问题的,是主效应那一行的 F、P 与偏 η²,以及第二张表的修正均值(估计边际均值)。
教学场景常见于:实验组与对照组的后测比较,但入组前基线分数已经不平;观察数据里想控制年龄、工龄、前测或另一门相关成绩。本页定量成绩示例把「性别」当作分组、「语文成绩」当作协变量、「数学成绩」当作因变量,正是这种「先抽掉一门相关成绩,再谈男女净差」的写法。
如何选择方法
问自己三件事:有没有必须控制的连续基线?分组是几个水平?因变量是不是一个连续指标。有连续基线、一个定类分组、一个定量结局 → 协方差分析。没有协变量且恰好两类 → 独立样本 t;没有协变量且三类以上 → 单因素 ANOVA。两个定类因素 → 双因素。多个定量结局想联合检验 → 多变量方差分析。
协方差分析:1 个定类分组、1 个定量因变量、1–10 个连续协变量;报告 Type II 平方和、F、修正均值。
独立样本 t / 单因素 ANOVA:同样比较组均值,但不调整连续混杂。
双因素方差分析:第二个因素是定类而不是连续。
线性回归:把分组虚编码后与协变量放在同一方程,系数与 ANCOVA 可互译,但界面不直接给出修正均值表。
输入、输出与限制
角色是固定的三槽,不能省。分组槽只收 1 个定类列;因变量槽只收 1 个定量列;协变量槽至少 1 个、最多 10 个定量列。学号、姓名这类标识列既不能当分组,也不能当协变量。
分组变量:恰好 1 个定类字段。
分析变量(因变量):恰好 1 个定量字段。
协变量:1 至 10 个连续定量字段。
第一张表按方差来源拆开:主效应、每一协变量、误差。列包括平方和、自由度、均方、F、P、偏 η²。第二张表对每个组给出原始观测均值与剔除协变量后的修正均值。本实现采用 Type II 平方和;误差行的 F、P、偏 η² 为空,这是残差项,不是漏算。三列按行同时删缺失,因此误差自由度会小于成绩表总行数。
不能一次放两个分组因素;那是双因素方差分析的界面。
不能零协变量运行;没有可调的连续项时请改用 t 或 ANOVA。
因变量不能一次勾选语文和数学两列;要对第二门课再跑一次。
Type II 与 SPSS 默认 Type III 在不平衡设计上可能略有差别,核对前先对齐平方和类型。
案例
研究问题。 定量成绩簿里男生、女生的数学原始均值只差约 1 分,但有人怀疑「语文更好的学生数学也更好,性别比较被另一门课带着走」。于是把语文成绩当作协变量,问:控制语文之后,性别对数学还有没有净效应?
示例文件是定量成绩表 Sheet1。模型按性别、语文、数学三列同时有值的行拟合,误差自由度 777,对应有效样本 780(777+1+2)。男生原始数学均值 74.4876、修正 74.5012;女生原始 75.5085、修正 75.4956。语文这一协变量几乎没拉动组均值,主效应 P=0.323。把同一张表拖进工作台即可复现两张结果表。
在 StatsX 中操作
步骤 1 · 装入成绩簿并锁定 Sheet1
工作台上传区接受 xlsx / csv / json。本例用定量成绩簿,活动表选 Sheet1。学号、姓名留在表里没关系,后面不要把它们放进任何角色槽。
步骤 2 · 在画像里核对三列的测量级别
「性别」应是男 / 女两个水平的定类;「语文成绩」「数学成绩」应是连续定量。若语文被误判成定类,先回到列画像改正,否则协变量槽不会接受它。
步骤 3 · 在目录里点开协方差分析
搜索「协方差」或 ANCOVA。不要点成单因素方差分析——那个界面没有协变量槽,跑出来的是未调整的年级或性别比较。
步骤 4 · 按「分组 / 协变量 / 因变量」三槽填列
分组变量:性别。协变量:语文成绩。分析变量:数学成绩。本例只放 1 个协变量;若还要控制英语成绩,可以再勾进协变量槽(上限 10)。然后运行。
步骤 5 · 先对修正均值,再读主效应行
第二张表看调整后男女是否还分开;第一张表读「主效应 (性别)」的 F 与 P。协变量行只说明语文是否解释数学,不能代替分组结论。



如何阅读输出
检验表的第一行是研究问题本身。「主效应 (性别)」平方和 192.0688,自由度 1,均方 192.0688,F=0.9765,P=0.323,偏 η²=0.0013。按 α=0.05 不能拒绝「调整后男女数学均值相同」。偏 η² 只有千分之一量级,净效应在样本里几乎看不见。
| 方差来源 | 平方和 (SS) | 自由度 (df) | 均方 (MS) | F值 | P值 | 偏Eta方 (η²p) |
|---|---|---|---|---|---|---|
| 主效应 (性别) | 192.0688 | 1 | 192.0688 | 0.9765 | 0.323 | 0.0013 |
| 协变量 (语文成绩) | 42.4512 | 1 | 42.4512 | 0.2158 | 0.642 | 0.0003 |
| 误差 (Residual) | 152834.1517 | 777 | 196.6977 | - | - | - |
左右滑动可查看完整表格
采用 Type II 平方和。如果在控制了协变量后,主效应仍显著,说明分组差异真实存在。
协变量行「协变量 (语文成绩)」F=0.2158,P=0.642,偏 η²=0.0003。在本示例里,语文几乎解释不了数学的残差,所以调整前后的组均值几乎贴在一起。误差行平方和 152834.1517、自由度 777、均方 196.6977,它是 F 的分母,没有自己的 P 值。
修正均值表把「看起来的组差」和「调整后的组差」并排。男生原始 74.4876 → 修正 74.5012;女生原始 75.5085 → 修正 75.4956。原始差约 1.02 分,调整后仍约 0.99 分,方向不变、幅度几乎不动——这与协变量不显著是同一件事的两种说法。
| 分组 (性别) | 原始观测均值 | 剔除协变量干扰后的修正均值 (Adj Mean) |
|---|---|---|
| 男 | 74.4876 | 74.5012 |
| 女 | 75.5085 | 75.4956 |
修正均值是在假定所有分组的协变量处于整体平均水平时,重新估算出的纯净组间均值。


【分组净效应】统计不显著(p=0.323, α=0.05)。结论:组间差异可能由协变量基线不一致造成,净组间效应不显著。
写作顺序可以是:有效自由度 → 协变量是否值得控制 → 主效应 F/P/偏 η² → 修正均值谁高谁低。本例协变量弱、主效应不显著、修正均值几乎重合,结论应写成「在控制语文成绩后,未检出性别对数学成绩的净差异」,而不是「语文把性别差异解释掉了」——后者暗示原来存在可被解释的组差,与 P=0.323 不符。
理论与公式
设第 i 组第 j 人的因变量为 Y_{ij},协变量为 X_{ij}。常见的单协变量 ANCOVA 把组效应与一条共同斜率写在一起:
原假设 H₀: 所有 τ_i 相同,也就是调整到同一协变量水平后各组均值相等。共同斜率 β 表示协变量每偏离总均值 1 个单位,Y 的期望变化。组 i 的修正均值把该组协变量均值拉回总均值:
本页平方和按 Type II 分解:在模型已含协变量的前提下,再评估「去掉分组」所损失的平方和,得到主效应 SS;对称地,在已含分组的前提下评估协变量。F 仍是均方比:
误差自由度在单协变量、两组时为 N−2−1。本例 df=777,故 N=780。偏 η² 的分母不含其它效应的平方和,因此它不是「占总变异的比例」那种 η²;本例主效应 0.0013 按 Cohen 的经验标尺属于极小。模型默认各组斜率相同;若要检查性别×语文交互,需要另建含交互的回归,而不是读这一张 Type II 表。
注意事项
协变量应在分组之前测量,或至少不被分组所改变,否则调整会吃掉处理效应。
共同斜率不成立时,修正均值的「拉到总均值」没有统一尺子,不要只报告一个 Adj Mean。
主效应不显著不能改口写成「协变量解释了组差」;本例协变量本身也不显著。
一次只允许 1 个因变量,分别跑语文、数学会抬高假阳性,应预先指定主结局。
残差自由度按列同时删缺失计算,论文里应写 N=780,而不是成绩簿的总行数。
把定类协变量(如班级)塞进协变量槽是错的,应改用第二个因素或回归虚编码。
常见问题
参考文献
Maxwell, S. E., Delaney, H. D. Designing Experiments and Analyzing Data. Routledge.
Rutherford, A. ANOVA and ANCOVA: A GLM Approach. Wiley.
Cohen, J. Statistical Power Analysis for the Behavioral Sciences. Routledge.
贾俊平. 统计学[M]. 中国人民大学出版社.