方差分析交互作用与对比 - SpiralKernel/bioinfo-wiki-migrated GitHub Wiki

方差分析交互作用与对比

更新:2026-10-26;状态:可用;验证范围:2026-10-26核对原始与官方资料;本页Python微型计算已执行;人工数据不代表专业软件或真实研究性能。

方差分析(ANOVA)通过比较模型解释与未解释的变异,检验若干均值是否满足特定约束。它属于线性模型,不只是“三组以上做一个P”。读完应能分清总体F检验、预设对比和交互作用,并手算一次差中之差。

前置为t检验配对设计与Welch检验与线性模型与混合模型。独立、配对、重复测量和混合设计需要不同误差结构。

一因素ANOVA在检验什么

k组独立观测,H0:μ1=…=μk。总平方和拆成组间SSB=∑ng(ȳg−ȳ)²与组内SSW=∑(yig−ȳg)²;F=[SSB/(k−1)]/[SSW/(N−k)]。若组均值差相对于组内噪声很大,F增大。经典参考F分布依赖独立误差、适当正态和等方差等条件;不等方差可考虑Welch ANOVA,不能因三组就默认条件成立。

总体F拒绝只说明至少一组均值不相同,不指明哪两组,更不证明所有组逐对不同。两组时在相容的模型下F=t²;有协变量时可用回归框架统一描述。见NIST一因素ANOVA说明。

一个能手算的总体例子

三组[1,2,3]、[3,4,5]、[5,6,7],组均值2、4、6,总均值4。SSB=3×4+0+3×4=24;每组内部平方和2,SSW=6。自由度2与6,F=(24/2)/(6/6)=12。

本页例子在项目根目录的Python中运行;标准库例子无需安装包,含NumPy/SciPy的例子先按R包Python包与可复现环境建立项目环境。Windows命令使用python,macOS/Linux可使用python3;代码块可复制进该环境的Python交互会话,或保存为项目根目录下的临时脚本再用该环境解释器运行;不要保存到examples目录或任意外部目录后假定项目导入路径仍相同。除特别说明外,只向屏幕输出,不写文件。

from statistics import mean
from scipy.stats import f
G = [[1,2,3],[3,4,5],[5,6,7]]
all_y = [x for group in G for x in group]
grand = mean(all_y)
ssb = sum(len(g)*(mean(g)-grand)**2 for g in G)
ssw = sum(sum((x-mean(g))**2 for x in g) for g in G)
F = (ssb/(len(G)-1))/(ssw/(len(all_y)-len(G)))
print('SSB_SSW_F_P',ssb,ssw,F,round(float(f.sf(F,2,6)),6))
control, treated = [10.,12.], [13.,17.]
interaction = (treated[1]-control[1])-(treated[0]-control[0])
print('difference_of_effects',interaction)
assert (ssb,ssw,F)==(24,6,12) and interaction==2

第一段P约0.008,表示总体均值约束不相容;后半段是另一个2×2条件均值的手算,没有重复方差,所以只算交互效应2,不据此给交互P。

对比是明确问题的线性组合

对比$L=\sum_gc_g\mu_g$通常令系数和为0。例如“处理B相对对照A”为(−1,1,0);“两种处理均值相对对照”为(−1,0.5,0.5)。预先定义对比可对准科学问题;事后尝试所有对比后只报显著者需要相应多重控制。多组两两比较如Tukey或其他校正要与目标和方差假设匹配。

检验系数βj=0不一定等于想要的对比,尤其因子有多水平或存在交互时。需检查设计矩阵列、参考水平与contrast向量。模型公式只是编码,不能替代对科学问题的文字定义。

交互作用为什么是“差异的差异”

设模型$y=\beta_0+\beta_A A+\beta_B B+\beta_{AB}AB+\epsilon$,A、B为0/1。βAB=[μ11−μ01]−[μ10−μ00],表示A效应随B改变多少。上面一条件处理效应3,另一条件效应5,交互为2。一个亚组P<0.05另一个P>0.05不等于交互显著,需要直接检验βAB。

有交互时主效应βA表示B=0时A的效应,不再是所有B条件下统一效应。改变参考水平会改变系数的表面含义;模型预测和恰当对比应保持一致。RNA计数交互的LRT见RNA交互作用与LRT比较。

诊断与报告

症状 应检查
总体显著却部分成对不显著 总体与成对H0及校正不同
换因子顺序P变化 不平衡设计、平方和类型和检验约束
残差呈扇形 方差齐性、尺度与稳健替代
重复测量显著过多 是否把同一个体当独立

报告独立n、组均值/区间、模型公式、交互与具体对比、调整家族和诊断;不只给F和星号。对于不平衡数据,I/II/III型平方和可能检验不同约束,不能简单选“更高级”的一个。

自测:总体F未显著,可以直接证明三组等价吗? 答:不行,需预设等价范围。自测:仅四个条件均值能给可信交互P吗? 答:缺少误差信息与设计时不能。自测:存在交互时只报主效应够吗? 答:往往不够,应按条件报告直接对比与不确定性。

接着读什么

线性模型与混合模型 → 实验设计与统计功效。学习顺序与练习入口见方法与算法系统学习指南。

运行本页的完整小例

先下载项目并进入含README与examples的根目录,环境准备见方法与算法系统学习指南。用项目环境的Python运行以下命令(macOS/Linux路径示例;Windows用.venv\Scripts\python.exe):

.venv/bin/python examples/methods_foundations_demo.py --case anova --output examples/output/methods-anova

输出summary.json保存本页计算与检查结果。目录非空时拒绝覆盖,再练习请更换--output目录;页面内短代码只打印结果。标准库case也可用系统Python直接运行。

公式里的矩阵、下标或对数不熟时,可回查读懂方法公式的最小数学基础。

⚠️ **GitHub.com Fallback** ⚠️