# Statistical Methods for ML/AI Experiments 完整的统计分析方法指南,用于 ML/AI 实验结果分析。 ## 基础统计量 ### 均值 (Mean) **定义**: 所有观测值的平均值 **公式**: μ = (Σx) / n **报告格式**: "模型在测试集上达到 85.3% 的准确率" ### 标准差 (Standard Deviation, SD) **定义**: 衡量数据分散程度 **公式**: SD = √[Σ(x - μ)² / (n-1)] **报告格式**: "准确率为 85.3% ± 2.1%(标准差)" **何时使用**: 描述数据的变异性 ### 标准误 (Standard Error, SE) **定义**: 样本均值的标准差 **公式**: SE = SD / √n **报告格式**: "准确率为 85.3% ± 0.7%(标准误)" **何时使用**: 估计均值的不确定性 ### 标准差 vs 标准误 | 特性 | 标准差 (SD) | 标准误 (SE) | |------|------------|------------| | 含义 | 数据的分散程度 | 均值估计的不确定性 | | 随样本量变化 | 不变 | 减小(∝ 1/√n) | | 用途 | 描述数据变异 | 推断总体均值 | | 报告场景 | 描述性统计 | 推断性统计 | **重要**: 论文中必须明确说明使用的是标准差还是标准误。 ### 置信区间 (Confidence Interval) **定义**: 总体参数的可能范围 **95% 置信区间公式**: CI = μ ± t(α/2, n-1) × SE **报告格式**: "准确率为 85.3% [95% CI: 83.9%, 86.7%]" **解释**: 95% 的置信区间意味着如果重复实验多次,95% 的区间会包含真实值。 ## 预先检验(必须执行) 在进行参数检验前,必须验证数据是否满足检验的假设条件。 ### 1. 正态性检验 (Normality Test) **目的**: 验证数据是否服从正态分布 **何时需要**: 使用 t-test、ANOVA 等参数检验前 **常用方法**: #### Shapiro-Wilk 检验 - **适用**: 样本量 n < 50 - **零假设**: 数据服从正态分布 - **判断**: p > 0.05 → 接受正态分布假设 - **使用场景**: 小样本,最常用 #### Kolmogorov-Smirnov 检验 - **适用**: 样本量 n ≥ 50 - **零假设**: 数据服从正态分布 - **判断**: p > 0.05 → 接受正态分布假设 - **使用场景**: 大样本 #### Anderson-Darling 检验 - **适用**: 所有样本量 - **优点**: 对尾部偏离更敏感 - **使用场景**: 需要检测尾部异常时 #### Q-Q 图 (Quantile-Quantile Plot) - **类型**: 图形化方法 - **判断**: 点接近直线 → 正态分布 - **优点**: 直观展示偏离程度 - **使用场景**: 配合数值检验使用 **不满足正态性时的处理**: 1. 数据转换(log, sqrt, Box-Cox) 2. 使用非参数检验(Wilcoxon, Mann-Whitney U) 3. 增加样本量(中心极限定理) ### 2. 方差齐性检验 (Homogeneity of Variance) **目的**: 验证多组数据的方差是否相等 **何时需要**: 使用独立样本 t-test、ANOVA 前 **常用方法**: #### Levene 检验 - **适用**: 最常用,对非正态分布鲁棒 - **零假设**: 各组方差相等 - **判断**: p > 0.05 → 接受方差齐性假设 - **使用场景**: 默认选择 #### Bartlett 检验 - **适用**: 数据严格正态分布时 - **零假设**: 各组方差相等 - **判断**: p > 0.05 → 接受方差齐性假设 - **使用场景**: 正态性已验证 #### Brown-Forsythe 检验 - **适用**: Levene 检验的改进版 - **优点**: 对非正态分布更鲁棒 - **使用场景**: 数据明显偏态时 **不满足方差齐性时的处理**: 1. 使用 Welch's t-test(不假设方差相等) 2. 使用 Welch's ANOVA 3. 数据转换 4. 使用非参数检验 ### 3. 独立性检验 **目的**: 验证观测值之间是否独立 **何时需要**: 所有统计检验前 **常见违反独立性的情况**: - 时间序列数据(自相关) - 重复测量(同一对象多次测量) - 聚类数据(同一组内的观测) **处理方法**: - 时间序列:使用时间序列分析方法 - 重复测量:使用配对检验或混合效应模型 - 聚类数据:使用多层模型或聚类标准误 ### 4. 异常值检测 **目的**: 识别和处理极端值 **常用方法**: #### IQR 方法 - **定义**: 异常值 = Q1 - 1.5×IQR 或 Q3 + 1.5×IQR 之外 - **使用场景**: 最常用,简单直观 #### Z-score 方法 - **定义**: |Z| > 3 为异常值 - **使用场景**: 数据近似正态分布 #### Grubbs 检验 - **适用**: 检测单个异常值 - **使用场景**: 正态分布数据 **处理异常值**: 1. 检查是否为数据错误 2. 报告异常值的存在 3. 进行敏感性分析(有/无异常值) 4. 使用鲁棒统计方法 ## 预先检验决策树 ``` 开始 ↓ 样本量 < 30? ↓ 是 检查正态性(Shapiro-Wilk) ↓ 不满足 使用非参数检验 ↓ 否 检查正态性(K-S 或 Q-Q 图) ↓ 满足 两组比较? ↓ 是 检查方差齐性(Levene) ↓ 满足 独立样本 t-test ↓ 不满足 Welch's t-test ↓ 否 多组比较? ↓ 是 检查方差齐性(Levene) ↓ 满足 ANOVA ↓ 不满足 Welch's ANOVA ``` ## 预先检验报告模板 **论文中应报告**: "在进行参数检验前,我们使用 Shapiro-Wilk 检验验证了数据的正态性(方法 A: W = 0.96, p = 0.23; 方法 B: W = 0.95, p = 0.18),使用 Levene 检验验证了方差齐性(F = 1.23, p = 0.31)。所有检验均满足参数检验的假设条件。" **如果不满足假设**: "Shapiro-Wilk 检验显示数据不满足正态性假设(方法 A: W = 0.87, p = 0.01),因此我们使用非参数的 Mann-Whitney U 检验进行比较。" ## 假设检验(参数检验) ### 1. t-test(两组对比) **用途**: 比较两个方法的性能差异 **假设条件**: - 数据服从正态分布 - 方差齐性(独立样本 t-test) - 观测值独立 #### 独立样本 t-test (Independent Samples t-test) **使用场景**: 比较两个独立组的均值 - 例:方法 A vs 方法 B 在不同数据集上的性能 **假设**: - H₀: μ₁ = μ₂(两组均值相等) - H₁: μ₁ ≠ μ₂(两组均值不等) **报告格式**: "方法 A (85.3% ± 2.1%) 显著优于方法 B (82.1% ± 1.8%), t(18) = 3.45, p = 0.003" **何时使用**: ✅ 两个独立组,满足正态性和方差齐性 #### 配对样本 t-test (Paired Samples t-test) **使用场景**: 比较同一组对象在两种条件下的表现 - 例:同一数据集上,方法 A vs 方法 B 的性能 **假设**: - H₀: μd = 0(差值的均值为0) - H₁: μd ≠ 0(差值的均值不为0) **报告格式**: "在10个数据集上,方法 A 显著优于方法 B, t(9) = 4.23, p = 0.002" **何时使用**: ✅ 配对数据,同一对象的前后对比 #### Welch's t-test **使用场景**: 两组方差不相等时 - 例:方差齐性检验不通过(Levene's test p < 0.05) **优点**: 不假设方差相等,更鲁棒 **报告格式**: "方法 A 显著优于方法 B, Welch's t(16.3) = 3.21, p = 0.005" **何时使用**: ✅ 方差齐性检验失败时的替代方案 ### 2. ANOVA(多组对比) **用途**: 同时比较三个或更多方法 **假设条件**: - 数据服从正态分布 - 方差齐性 - 观测值独立 #### 单因素 ANOVA (One-Way ANOVA) **使用场景**: 比较多个独立组的均值 - 例:方法 A vs B vs C vs D 的性能对比 **假设**: - H₀: μ₁ = μ₂ = μ₃ = ... = μk(所有组均值相等) - H₁: 至少有一组均值不同 **报告格式**: "不同方法之间存在显著差异, F(3, 36) = 8.45, p < 0.001" **何时使用**: ✅ 三个或更多独立组 **重要**: ANOVA 只告诉你"至少有一组不同",需要事后检验找出具体哪些组不同。 #### 重复测量 ANOVA (Repeated Measures ANOVA) **使用场景**: 同一组对象在多个条件下的表现 - 例:同一数据集上,多个方法的性能对比 **假设**: - H₀: 所有条件下的均值相等 - H₁: 至少有一个条件的均值不同 **报告格式**: "不同方法之间存在显著差异, F(3, 27) = 12.34, p < 0.001" **何时使用**: ✅ 配对数据,多个条件的对比 #### 双因素 ANOVA (Two-Way ANOVA) **使用场景**: 研究两个因素的影响及其交互作用 - 例:方法类型(因素1)× 数据集大小(因素2)对性能的影响 **报告格式**: - "方法类型主效应显著, F(2, 54) = 15.23, p < 0.001" - "数据集大小主效应显著, F(2, 54) = 8.91, p < 0.001" - "交互作用不显著, F(4, 54) = 1.23, p = 0.31" **何时使用**: ✅ 研究多个因素及其交互作用 #### Welch's ANOVA **使用场景**: 方差不齐时的 ANOVA 替代方案 **报告格式**: "不同方法之间存在显著差异, Welch's F(3, 18.5) = 7.89, p = 0.002" **何时使用**: ✅ 方差齐性检验失败时 ### 3. 事后检验 (Post-hoc Tests) **目的**: ANOVA 显著后,找出具体哪些组不同 **常用方法**: #### Tukey HSD (Honestly Significant Difference) **使用场景**: ANOVA 后的标准事后检验 - **优点**: 控制家族错误率 - **适用**: 各组样本量相等或接近 - **报告**: "Tukey HSD 检验显示,方法 A 显著优于方法 B (p = 0.003) 和方法 C (p = 0.012)" **何时使用**: ✅ 默认选择,最常用 #### Bonferroni 校正 **使用场景**: 保守的事后检验 - **优点**: 简单,控制家族错误率 - **缺点**: 过于保守 - **报告**: "Bonferroni 校正后,方法 A 显著优于方法 B (p = 0.002)" **何时使用**: ✅ 需要严格控制 Type I 错误时 #### Scheffé 检验 **使用场景**: 最保守的事后检验 - **优点**: 适用于所有对比(包括复杂对比) - **缺点**: 功效最低 - **报告**: "Scheffé 检验显示,方法 A 显著优于方法 B (p = 0.015)" **何时使用**: ✅ 需要进行复杂对比时 #### Dunnett 检验 **使用场景**: 多个实验组与一个对照组比较 - **优点**: 专门设计用于与对照组比较 - **报告**: "Dunnett 检验显示,方法 A、B、C 均显著优于基线方法 (p < 0.01)" **何时使用**: ✅ 有明确的对照组(基线方法)时 ## 假设检验(非参数检验) **何时使用非参数检验**: - 数据不满足正态分布假设 - 样本量很小(n < 30) - 数据为序数或等级数据 - 存在明显的异常值 ### 4. Wilcoxon 检验(配对数据) **用途**: 配对数据的非参数检验,t-test 的非参数替代 **使用场景**: 同一数据集上,两个方法的性能对比 - 例:10个数据集上,方法 A vs 方法 B **假设**: - H₀: 两组的中位数相等 - H₁: 两组的中位数不等 **报告格式**: "Wilcoxon 符号秩检验显示,方法 A 显著优于方法 B, Z = 2.81, p = 0.005" **何时使用**: ✅ 配对数据,不满足正态性假设 ### 5. Mann-Whitney U 检验(独立数据) **用途**: 独立样本的非参数检验,独立样本 t-test 的非参数替代 **使用场景**: 两个独立组的性能对比 - 例:方法 A 在数据集1上 vs 方法 B 在数据集2上 **假设**: - H₀: 两组的分布相同 - H₁: 两组的分布不同 **报告格式**: "Mann-Whitney U 检验显示,方法 A 显著优于方法 B, U = 45, p = 0.012" **何时使用**: ✅ 独立样本,不满足正态性假设 **别名**: Wilcoxon 秩和检验 ### 6. Kruskal-Wallis 检验(多组对比) **用途**: 多组独立样本的非参数检验,ANOVA 的非参数替代 **使用场景**: 三个或更多方法的性能对比 - 例:方法 A vs B vs C vs D **假设**: - H₀: 所有组的分布相同 - H₁: 至少有一组的分布不同 **报告格式**: "Kruskal-Wallis 检验显示,不同方法之间存在显著差异, H(3) = 15.23, p = 0.002" **何时使用**: ✅ 多组独立样本,不满足正态性假设 **事后检验**: Dunn 检验(带 Bonferroni 校正) ### 7. Friedman 检验(重复测量) **用途**: 配对数据的多组非参数检验,重复测量 ANOVA 的非参数替代 **使用场景**: 同一数据集上,多个方法的性能对比 - 例:10个数据集上,方法 A vs B vs C vs D **假设**: - H₀: 所有条件下的分布相同 - H₁: 至少有一个条件的分布不同 **报告格式**: "Friedman 检验显示,不同方法之间存在显著差异, χ²(3) = 18.45, p < 0.001" **何时使用**: ✅ 配对数据,多组对比,不满足正态性假设 **事后检验**: Nemenyi 检验或 Wilcoxon 符号秩检验(带 Bonferroni 校正) ### 8. Sign 检验 **用途**: 最简单的配对数据非参数检验 **使用场景**: 只关心方向(哪个更好),不关心差异大小 - 例:方法 A 在多少个数据集上优于方法 B **假设**: - H₀: 正负差异的数量相等 - H₁: 正负差异的数量不等 **报告格式**: "Sign 检验显示,方法 A 在 10 个数据集中的 8 个上优于方法 B, p = 0.055" **何时使用**: ✅ 只关心胜负,不关心差异大小 **优点**: 最鲁棒,对异常值不敏感 **缺点**: 功效最低 ## 统计检验选择流程图 ``` 数据类型? ↓ 配对数据? ↓ 是 两组对比? ↓ 是 正态性检验 ↓ 满足 配对 t-test ↓ 不满足 Wilcoxon 符号秩检验 ↓ 否(多组) 正态性检验 ↓ 满足 重复测量 ANOVA ↓ 不满足 Friedman 检验 ↓ 否(独立数据) 两组对比? ↓ 是 正态性检验 ↓ 满足 方差齐性检验 ↓ 满足 独立 t-test ↓ 不满足 Welch's t-test ↓ 不满足 Mann-Whitney U 检验 ↓ 否(多组) 正态性检验 ↓ 满足 方差齐性检验 ↓ 满足 ANOVA + 事后检验 ↓ 不满足 Welch's ANOVA + Games-Howell ↓ 不满足 Kruskal-Wallis + Dunn 检验 ``` ## 多重比较校正 **问题**: 多次检验增加 Type I 错误(假阳性)概率 **公式**: P(至少一次错误) = 1 - (1-α)^k,其中 k 为检验次数 **常用方法**: | 方法 | 公式 | 保守程度 | 使用场景 | |------|------|----------|----------| | Bonferroni | α' = α/k | 最保守 | 少量检验 | | Holm-Bonferroni | 逐步校正 | 较保守 | 中等数量检验 | | FDR (Benjamini-Hochberg) | 控制错误发现率 | 较宽松 | 大量检验,探索性分析 | ## 效应量 **定义**: 衡量差异的实际大小,独立于样本量 **常用指标**: | 效应量 | 适用场景 | 解释 | |--------|----------|------| | Cohen's d | t-test | \|d\| < 0.2 小,0.2-0.5 中,≥0.8 大 | | η² (Eta squared) | ANOVA | 0.01 小,0.06 中,0.14 大 | | r (相关系数) | 非参数检验 | 0.1 小,0.3 中,0.5 大 | **报告**: 必须同时报告 p-value 和效应量 ## 实验设计要点 **重复次数**: 最少 3-5 次,推荐 5-10 次,高方差任务 10+ 次 **随机种子**: 报告所有使用的随机种子,确保可重现 **交叉验证**: k-fold (k=5 或 10) 用于评估泛化性能 ## 常见错误 1. **Cherry-picking**: 只报告最好结果 → 报告所有实验 2. **p-hacking**: 尝试多种分析找显著结果 → 预先确定方法 3. **混淆 SD 和 SE**: 不说明使用哪个 → 明确标注 4. **忽略多重比较**: 多次检验不校正 → 使用 Bonferroni/FDR 5. **只报告 p-value**: 缺少效应量 → 同时报告两者 ## 报告检查清单 - [ ] 报告均值和标准差/标准误(明确标注) - [ ] 报告实验重复次数 - [ ] 执行预先检验(正态性、方差齐性) - [ ] 选择适当的统计检验 - [ ] 报告完整统计信息(检验统计量、自由度、p-value) - [ ] 报告效应量 - [ ] 多重比较进行校正 - [ ] 说明随机种子设置 ## 参考资源 - [Nature Statistics Checklist](https://www.nature.com/documents/nr-reporting-summary-flat.pdf) - [ASA Statement on P-Values](https://www.amstat.org/asa/files/pdfs/p-valuestatement.pdf) - [Reporting Statistics in Psychology](https://apastyle.apa.org/instructional-aids/numbers-statistics-guide.pdf) ## 总结 统计分析的核心原则: 1. **预先检验** - 验证假设条件 2. **完整报告** - 均值、标准差/标准误、样本量 3. **适当检验** - 根据数据特征选择方法 4. **多重校正** - 多次比较时校正 α 5. **效应量** - 不只报告 p-value 6. **可重现** - 提供足够细节 遵循这些原则可以确保实验结果的统计严谨性和可信度。