跳到主要内容

双因素方差分析

一、直观理解:两个因素一起变,既看主效应也看“搭配”​

双因素 ANOVA 处理两个分类因素,例如:

  • 因素 A:温度(低/中/高);
  • 因素 B:催化剂类型(X/Y);
  • 响应:收率。

我们关心三类问题:

  1. A 的主效应:平均而言温度有没有影响?
  2. B 的主效应:平均而言催化剂有没有影响?
  3. 交互效应:温度的影响是否依赖于催化剂类型?

交互是双因素的灵魂。若 A 在 B=X 时收率随温度上升,在 B=Y 时反而下降,则只谈“温度主效应”会误导——必须画交互图。

二、适用场景与优缺点​

类型说明
适用场景两因素析因实验;问卷中两个分类因子;需要分离主效应与交互;有重复试验可估误差。
核心优点比两次单因素更省样本、能检交互;结构清晰;可用 anovan 实现。
局限与缺点假定残差正态、齐方差、独立;无重复时交互与误差纠缠;高阶交互难解释;非平衡数据需注意平方和类型。

三、核心原理​

有交互的细胞均值模型:

Yijk=μ+αi+βj+(αβ)ij+εijkY_{ijk}=\mu+\alpha_i+\beta_j+(\alpha\beta)_{ij}+\varepsilon_{ijk}
  • αi\alpha_i:A 主效应;
  • βj\beta_j:B 主效应;
  • (αβ)ij(\alpha\beta)_{ij}:交互。

平方和(平衡设计示意):

SST=SSA+SSB+SSAB+SSE\mathrm{SST}=\mathrm{SSA}+\mathrm{SSB}+\mathrm{SSAB}+\mathrm{SSE}

各自除以自由度得均方,再与 MSE\mathrm{MSE} 比形成三个 F 检验。

无交互模型则去掉 (αβ)ij(\alpha\beta)_{ij}。若交互显著,主效应的解释要以简单效应(固定另一因素水平时的效应)为主。

重复次数:每个 (i,j) 组合至少 2 次重复,才能在有交互模型中单独估计纯误差;仅 1 次重复时常假定部分交互为 0 或改用其它误差结构。

四、关键决策​

1. 先看交互还是先看主效应?​

标准顺序:先检验交互。交互显著 → 做简单效应/画剖面图;交互不显著 → 再解释主效应,可考虑去交互的简化模型。

2. 固定效应还是随机效应​

因素水平是研究者指定的全部类型 → 固定;水平是更大总体的随机样本(如随机抽学校)→ 随机/混合,F 比的分母可能改变。

3. 非平衡设计​

anovan 中注意 sstype(I/II/III 型平方和)。观察研究常用 III 型;需在报告中声明。

4. 效应量​

偏 η2\eta^2:各效应 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");

六、如何解释结果​

  1. 设计:因素、水平、每格重复数;
  2. 三张 F 检验表:A、B、AB;
  3. 交互显著时:用交互图说明“在不同 B 下 A 的模式”;
  4. 给出关键格子均值与置信区间;
  5. 效应量与实际工程含义;
  6. 诊断与平方和类型。

错误示范:“温度显著,所以温度越高越好”——在有交互时可能只对某一催化剂成立。

七、常见误区​

1. 交互显著仍只解释主效应​

主效应是边缘平均,可能掩盖反转模式。

2. 无重复却拟合完整交互​

无法与误差分离,结果依赖附加假定。

3. 把两个单因素 ANOVA 代替双因素​

无法检验交互,也浪费联合设计信息。

4. 因子编码错误​

把有序温度当无序或当连续,结论表述会变,需与科学问题一致。

八、小结​

双因素 ANOVA 的核心是:

同时估计两个因素的主效应及其交互,用方差分解判断哪些结构显著。

建模时永远先问“有没有交互”,再决定如何报告主效应。交互图是双因素分析的标配输出。