打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
终于把统计学中的方差分析搞懂了!!
userphoto

2026.02.03 辽宁

关注

大家好,我是小寒

方差分析(ANOVA)是一种统计方法,用于比较三个或三个以上总体均值是否存在显著差异。

方差分析广泛应用于实验设计、医学研究、市场调研等领域。

核心原理

方差分析的核心思想是,将数据的总变异分解为组间变异和组内变异,然后通过比较这些变异来检验不同组的均值是否存在显著差异。

  1. 总变异:所有观测值与总体均值的偏差平方和。
  2. 组间变异:各组均值与总体均值的偏差平方和,反映不同组的差异。
  3. 组内变异:组内每个观测值与本组均值的偏差平方和,反映随机误差或个体差异。

如果组间变异显著大于组内变异,则说明不同组之间的均值差异显著,反之则说明没有显著差异。

假设你正在测试三种不同的施肥方案对农作物产量的影响。观测到的产量之所以会有波动,通常来自两个方面。

  1. 组间差异:因为使用了不同的肥料,这部分差异是我们关心的 “处理效应”。
  2. 组内差异:即使是同一种肥料,由于土壤微小差异、种子质量等不可控因素,产量也会有波动。这被称为“随机误差”。

如果组间差异显著大于组内随机误差,我们就有理由相信,不同的处理(肥料)确实产生了不同的效果。

数学公式

以最基础的单因素方差分析为例,假设我们有  个组,总样本量为 

1.计算平方和

  • 总平方和 (SST)

    所有观测值与总均值  之差的平方和。

  • 组间平方和 (SSB)

    各组均值与总均值之差的平方和(反映处理效应)。

  • 组内平方和 (SSW)

    各组内部观测值与其组均值之差的平方和(反映随机误差)。

数学上满足:

2.计算均方

平方和会受到样本量的影响,因此我们需要除以各自的自由度 (df) 来得到 “平均方差”

  • 组间自由度:
  • 组内自由度:
  • 组间均方:
  • 组内均方:

3.计算 F 统计量

这是方差分析的判定指标

  • 如果 (各组均值相等)成立:组间均方  主要来自随机误差,此时  值会接近 1。
  • 如果 (至少两组均值不等)成立:组间均方  会显著大于组内均方 ,导致  值远大于 1。

方差分析的类型

方差分析有多种类型,常见的有

  • 单因素方差分析:研究一个自变量对因变量的影响。比如,比较三种不同药物对血压的影响。
  • 双因素方差分析:同时研究两个自变量的影响,并可以分析它们之间的交互作用。比如,研究 “肥料类型” 和 “灌溉量” 对玉米产量的共同影响。
  • 重复测量方差分析:用于处理同一组样本在不同条件下的多次测量数据。比如,测试一种减肥药,分别记录同一批志愿者在“服药前”、“服药一个月后”和“服药三个月后”的体重。

案例分享

假设你是一名农艺师,想要研究三种不同的肥料对玉米产量的影响。

你随机选择了 30 块实验田,平均分为三组,每组 10 块,分别施用肥料 A、B 和 C。

  • 自变量:肥料类型(Levels: A, B, C)。
  • 因变量:每公顷玉米产量(单位:吨)。
  • 研究问题:这三种肥料带来的平均产量是否存在显著差异?
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# 1. 模拟实验数据
np.random.seed(42)
data = {
    'Fertilizer': ['肥料A']*10 + ['肥料B']*10 + ['肥料C']*10,
    'Yield': np.concatenate([
        np.random.normal(20, 2, 10),  # 均值20
        np.random.normal(26, 2, 10),  # 均值26
        np.random.normal(22, 2, 10)   # 均值22
    ])
}
df = pd.DataFrame(data)

# 2. 绘图:展示不同组别的均值差异与数据离散度
plt.figure(figsize=(8, 6))

# 使用箱线图展示中位数和四分位距
sns.boxplot(x='Fertilizer', y='Yield', data=df, palette='Pastel1', width=0.5)

# 叠加散点图展示每一个原始观测值,方便观察组内变异(随机误差)
sns.swarmplot(x='Fertilizer', y='Yield', data=df, color='black', alpha=0.6)

plt.title('单因素方差分析:不同肥料对玉米产量的影响', fontsize=14)
plt.xlabel('肥料类型', fontsize=12)
plt.ylabel('产量 (吨/公顷)', fontsize=12)
plt.grid(axis='y', linestyle='--', alpha=0.5)

plt.show()

最后

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
白话方差分析(ANOVA-Analysis of Variance)
方差分析
单因素方差分析
统计推断与作图|第4期. 方差分析全解析
如何取得拉力机试验数据进行方差检验性分析
方差分析的基本思想和原理
更多类似文章 >>
生活服务
分享 收藏 导长图 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服