Files
TWBG_Materials/文档润色流和知识库构建流/claude-scholar/skills/results-analysis/references/statistical-methods.md
2026-05-30 16:22:29 +08:00

16 KiB
Raw Blame History

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
  • 报告效应量
  • 多重比较进行校正
  • 说明随机种子设置

参考资源

总结

统计分析的核心原则:

  1. 预先检验 - 验证假设条件
  2. 完整报告 - 均值、标准差/标准误、样本量
  3. 适当检验 - 根据数据特征选择方法
  4. 多重校正 - 多次比较时校正 α
  5. 效应量 - 不只报告 p-value
  6. 可重现 - 提供足够细节

遵循这些原则可以确保实验结果的统计严谨性和可信度。