双因素方差分析
一、直观理解:两个因素一起变,既看主效应也看“搭配”
双因素 ANOVA 处理两个分类因素,例如:
- 因素 A:温度(低/中/高);
- 因素 B:催化剂类型(X/Y);
- 响应:收率。
我们关心三类问题:
- A 的主效应:平均而言温度有没有影响?
- B 的主效应:平均而言催化剂有没有影响?
- 交互效应:温度的影响是否依赖于催化剂类型?
交互是双因素的灵魂。若 A 在 B=X 时收率随温度上升,在 B=Y 时反而下降,则只谈“温度主效应”会误导——必须画交互图。
二、适用场景与优缺点
| 类型 | 说明 |
|---|---|
| 适用场景 | 两因素析因实验;问卷中两个分类因子;需要分离主效应与交互;有重复试验可估误差。 |
| 核心优点 | 比两次单因素更省样本、能检交互;结构清晰;可用 anovan 实现。 |
| 局限与缺点 | 假定残差正态、齐方差、独立;无重复时交互与误差纠缠;高阶交互难解释;非平衡数据需注意平方和类型。 |
三、核心原理
有交互的细胞均值模型:
- :A 主效应;
- :B 主效应;
- :交互。
平方和(平衡设计示意):
各自除以自由度得均方,再与 比形成三个 F 检验。
无交互模型则去掉 。若交互显著,主效应的解释要以简单效应(固定另一因素水平时的效应)为主。
重复次数:每个 (i,j) 组合至少 2 次重复,才能在有交互模型中单独估计纯误差;仅 1 次重复时常假定部分交互为 0 或改用其它误差结构。
四、关键决策
1. 先看交互还是先看主效应?
标准顺序:先检验交互。交互显著 → 做简单效应/画剖面图;交互不显著 → 再解释主效应,可考虑去交互的简化模型。
2. 固定效应还是随机效应
因素水平是研究者指定的全部类型 → 固定;水平是更大总体的随机样本(如随机抽学校)→ 随机/混合,F 比的分母可能改变。
3. 非平衡设计
anovan 中注意 sstype(I/II/III 型平方和)。观察研究常用 III 型;需在报告中声明。
4. 效应量
偏 :各效应 SS / (效应 SS + 误差 SS)。
五、MATLAB 示例
% 模拟 2×3 析因,含交互
rng(8);
temp = []; cat = []; y = [];
temps = [1 2 3]; % 低中高
for t = temps
for c = 1:2
% 催化剂2在高温下额外增益 -> 交互
mu = 10 + 0.5*t + 1.0*(c==2) + 0.8*t*(c==2);
yi = mu + 0.6*randn(8,1);
y = [y; yi];
temp = [temp; t*ones(8,1)];
cat = [cat; c*ones(8,1)];
end
end
[p, tbl, stats] = anovan(y, {temp, cat}, ...
"model", "interaction", ...
"varnames", {"Temp", "Catalyst"}, ...
"display", "off");
disp(tbl);
fprintf("p(Temp)=%.4g, p(Cat)=%.4g, p(Int)=%.4g\n", p(1), p(2), p(3));
% 交互图(均值)
figure;
interactionplot(y, {temp, cat});
title("双因素交互图");
% 多重比较(主效应,示意)
figure;
multcompare(stats, "Dimension", 1); % Temp
title("温度主效应比较");
% 残差
% anovan 可取 stats 中拟合信息;这里用单元均值近似
T = table(temp, cat, y);
mdl = fitlm(T, "y ~ temp*cat"); % 把因子当连续仅演示;更宜 categorical
% 推荐:
T.temp = categorical(T.temp);
T.cat = categorical(T.cat);
mdl = fitlm(T, "y ~ temp*cat");
disp(mdl);
figure; plotResiduals(mdl, "fitted");
六、如何解释结果
- 设计:因素、水平、每格重复数;
- 三张 F 检验表:A、B、AB;
- 交互显著时:用交互图说明“在不同 B 下 A 的模式”;
- 给出关键格子均值与置信区间;
- 效应量与实际工程含义;
- 诊断与平方和类型。
错误示范:“温度显著,所以温度越高越好”——在有交互时可能只对某一催化剂成立。
七、常见误区
1. 交互显著仍只解释主效应
主效应是边缘平均,可能掩盖反转模式。
2. 无重复却拟合完整交互
无法与误差分离,结果依赖附加假定。
3. 把两个单因素 ANOVA 代替双因素
无法检验交互,也浪费联合设计信息。
4. 因子编码错误
把有序温度当无序或当连续,结论表述会变,需与科学问题一致。
八、小结
双因素 ANOVA 的核心是:
同时估计两个因素的主效应及其交互,用方差分解判断哪些结构显著。
建模时永远先问“有没有交互”,再决定如何报告主效应。交互图是双因素分析的标配输出。