方法 ·
单因素 ANOVA 怎么做:单因素方差分析、事后比较与真实能力边界
单因素 ANOVA 中文教程,按 ChatSRS 当前 scipy 经典 f_oneway 实现说明完整案例、F 检验、LSD/Bonferroni/Tukey 事后比较和不支持的稳健检验边界。
这个 URL 虽然沿用“ANOVA 全套教程”的历史名称,当前页面只承诺已经核验的单因素 ANOVA。它比较一个分组变量下各独立组的连续结果均值,不把多因素、重复测量、混合设计或稳健 ANOVA 冒充成同一入口。
单因素 ANOVA 与单因素方差分析是什么
单因素 ANOVA(One-Way ANOVA)也叫单因素方差分析,回答的是:一个分组因素的两个或更多独立组,在某个连续因变量的总体均值上是否存在差异证据。
例如:
- 三种教学法下的考试成绩是否不同;
- 四个地区的满意度均值是否不同;
- 三种干预方案下的反应时是否不同。
总体 F 检验的原假设是所有组的总体均值相等。p 值较小只说明至少有一组不同,不直接告诉你哪两组不同,也不表示差异具有实质重要性。
ChatSRS 当前执行的是经典 f_oneway
当前分析器调用 scipy.stats.f_oneway 的经典单因素 F 检验。它基于独立观测、组内近似正态和方差同质等经典前提;页面不把它写成 Welch ANOVA。
每个因变量会与分组变量组成自己的完整案例数据:只要这一对字段中有缺失,该行就从该因变量的分析中删除。不同因变量的最终 N 因而可能不同,报告时必须逐项核对。
程序要求:
- 至少两个非空组;
- 当前因变量清洗后至少 5 行;
- 因变量能转为数值;
- 分组变量已经正确编码。
如果只有两组,程序会给出“两组更适合独立样本 t 检验”的警告,但仍会运行单因素 ANOVA。两组时经典 ANOVA 的 F 与相应等方差 t 检验有数学联系;研究者仍应按预先设计选择方法。
当前输出包含什么
主表按因变量输出:
- 每组样本量;
- 每组均值与标准差;
- F 值与 p 值;
- 组间和组内自由度脚注;
- 在满足条件时追加的事后比较字母标记。
当前表头的组别 n 按原始分组列计数,并未按每个因变量的完整案例重算;存在因变量缺失时,这个 n 可能高估实际分析样本。此时应依据清洗后的分组数据另行核对每组有效 n,不能直接引用表头人数。
还有一个更严重的已知格式错误:若某一组在当前因变量上全部缺失或全部转为非数值,该组会从结果数据中消失,但主表表头仍保留它。当前格式器不会为消失组补空单元格,整行会从该组起向左移。后续组的均值、F 和 p 都可能落入错误列;一旦出现整组无有效值,该行的均值、F 和 p 均不可引用,应停止使用该表并在修复后的实现或其他可信工具中重跑。
当前主表不自动输出 Levene 检验、Welch 校正或总体效应量。事后比较会给组均值、均值差、标准误、p 和 Cohen's d;Tukey 计算过程还会生成区间,但当前汇总表不会把该区间列展示出来。
事后比较不是无条件运行
可选方法只有 LSD、Bonferroni 和 Tukey;它们只在用户启用事后比较且总体检验 p < .05 时运行。如果总体 F 未达到这一程序门槛,即使指定了事后方法,当前输出也不会生成两两比较表。
三种方法的实现含义不同:
| 方法 | 当前处理 |
|---|---|
| LSD | 使用总体 ANOVA 的组内 MSE 做成对 t 检验,不校正比较次数 |
| Bonferroni | 在同一 MSE 基础上,将原始 p 乘以全部成对比较数 |
| Tukey | 调用 statsmodels 的 Tukey HSD |
当前还存在一个方向口径错误:LSD 和 Bonferroni 把均值差定义为组 i - 组 j;Tukey 表却直接沿用 statsmodels 返回的组 j - 组 i,同时仍显示相同的组 i、组 j 标签。因此同一组对的均值差与 Cohen's d 方向会在 Tukey 和另外两种方法之间相反。修复前不要直接引用事后表的均值差或 Cohen's d 正负号;应按清楚声明的方向从原始组均值重新计算,并在独立实现中复核。
LSD 较宽松,比较多时第一类错误风险更高。Bonferroni 通常更保守。Tukey 适合所有成对均值比较,但仍依赖其模型条件。方法应在查看结果前根据比较目标确定。
当前没有执行的稳健检验
当前不执行 Levene 方差齐性检验、Welch ANOVA 或 Games-Howell 事后比较。也不会在发现方差不齐后自动从经典 ANOVA 切换到 Welch。
因此,不能先让系统跑经典 ANOVA,再因为 p 不满意就改跑 Welch、删异常值或更换事后方法。若方差不齐、组样本量差异大或分布极端,应使用能够真实完成相应诊断和稳健方法的工具,并透明报告选择依据。
多因素、重复测量和混合设计要分流
多因素、重复测量和混合设计必须分流到各自的分析器:
- 两个及以上组间因素,需要多因素方差分析;
- 同一对象三个及以上时点,需要重复测量分析;
- 同时有组内和组间因素,需要混合设计分析;
- 需要控制连续协变量时,应评估 ANCOVA;
- 两个独立组或两个配对时点,通常先考虑 t 检验。
可先用统计方法选择指南按研究设计分流。只有两组时,可进一步查看t 检验的真实输出边界。
方法名称由抽样单位、组间或组内结构、因素数量和估计目标决定,不能按哪个 p 值更小来试方法。
一个与当前实现一致的请求
假设 method 是三组教学法,score 是考试成绩:
按 method 对 score 做单因素方差分析。使用经典 f_oneway,先确认每个原始组在 score 上都有有效值;若任何组清洗后消失,停止并不引用主表。其余情况下列出各组有效 N、均值、标准差、F、自由度和 p;若总体 p < .05,再做 Bonferroni 事后比较,并从原始组均值复核差值方向。请说明当前未执行 Levene、Welch 或 Games-Howell。
如果同时分析 score 和 motivation,要逐个核对最终 N,因为两个因变量的缺失位置可能不同。
结果怎么读
先看样本和组别
确认分组代码、组数、各组有效 N 和缺失处理。若任何原始组在当前因变量上没有有效值,不再读取该行,因为后续单元格可能错列。极小组、异常编码或严重不平衡也会影响解释。
再看总体 F
报告 F(df_between, df_within) 和精确 p。显著结果表示存在组均值差异证据;不显著表示当前数据不足以拒绝均值相等,不是证明所有组完全相同。
最后看预设比较
总体检验达到当前门槛后,按预先选定的事后方法解释具体组对。修复前先用原始组均值或独立实现核对差值方向,尤其不能把 Tukey 与 LSD/Bonferroni 的正负号直接并排解释。每个比较要写清方向、均值差、调整方式和不确定性,不能只列星号。
不要忽略效应大小
当前总体表不直出 η² 或 ω²。若论文要求总体效应量,应在可信实现中另行计算并核对口径,不能把事后比较的 Cohen's d 当作总体 ANOVA 效应量。
论文报告模板
采用经典单因素方差分析比较 [组别] 在 [因变量] 上的均值差异。
分析按 [分组变量 + 当前因变量] 的完整案例进行,最终 N = [ ]。
各组描述统计为 [列出 M、SD、n]。
总体检验结果为 F([df1], [df2]) = [ ],p = [ ]。
由于总体检验 [达到/未达到] 预设门槛,[执行/未执行] [LSD/Bonferroni/Tukey] 事后比较。
[若执行,逐项报告比较对象、均值差和调整后 p。]
当前实现未执行 Levene、Welch ANOVA 或 Games-Howell;
方差条件与稳健性由 [工具/诊断] 另行核对。
已确认所有原始组在当前因变量上均有有效值,主表未触发整组缺失错列。
事后均值差统一按 [组 i - 组 j] 重新计算并由 [工具/步骤] 复核;
当前表中的 Tukey 差值与 Cohen's d 正负号未被直接引用。
常见问题
两组能不能跑 ANOVA?
当前程序会警告但仍运行。方法选择应由研究设计决定,而不是为了得到不同 p 值。
总体不显著还能看所有两两比较吗?
当前实现不会输出。若研究有少量事前对比,应在分析计划中提前定义,并使用适合该对比的推断方法;不要事后搜索显著组对。
方差不齐怎么办?
先核对异常值、分布、组规模和测量。需要 Welch 与 Games-Howell 时,应转到真实支持它们的工具,而不是把经典 f_oneway 改名。
核对设计、组别和经典检验边界后,可进入 ChatSRS 运行当前支持的单因素 ANOVA。正式报告仍需保留数据版本、完整案例 N、事后方法和外部诊断证据。