问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
1
来源
1.
http://www.360doc.com/content/25/0406/20/64427839_1150692695.shtml

方差分析(ANOVA)是一种用于比较三个或更多组数据均值是否存在显著差异的统计方法。它通过比较组间差异与组内差异的比率,来判断不同组别之间是否存在显著的统计学差异。方差分析广泛应用于农业、医学、社会科学等领域,帮助研究人员理解和解释数据中的变异来源。

方差分析的原理

方差分析的核心思想是将总体的总变异分解为组内变异和组间变异,并检验组间变异是否大于组内变异。

  1. 总变异:总变异是所有样本与总体均值之间的差异,即整个数据集的方差。
  2. 组间变异:组间变异是不同组的均值与总体均值之间的差异,是各组均值变动的贡献。
  3. 组内变异:组内变异是每个组内数据点与该组均值之间的差异,反映了组内的变异程度。

我们通过比较组间变异与组内变异的比值,来判断不同组的均值是否存在显著差异。通常,方差分析的结果通过 F 值来衡量,F 值越大,意味着组间差异相对于组内差异越大,从而更可能拒绝原假设(即均值相等的假设)。

方差分析的步骤

1. 提出假设

  • 原假设(H0):不同组之间的均值没有显著差异,即所有组的均值相等。
  • 备择假设(H1):至少有两个组的均值存在显著差异。

2. 计算组间平方和(SSB)

其中,是第 i 组的均值,是所有样本的总体均值。

3. 计算组内平方和(SSW)

其中,是第组的第个样本,是第组的均值。

4. 计算总平方和(SST)

其中,是所有样本的值,是总体均值。

5. 计算自由度(df)

  • 组间自由度:k-1,其中k是组数。
  • 组内自由度:N-k,其中N是总样本量。
  • 总自由度:N-1。

6. 计算均方(MS)

  • 组间均方(MSB):SSB/(k-1)
  • 组内均方(MSW):SSW/(N-k)

7. 计算F统计量

通过比较组间均方(MSB)与组内均方(MSW)来计算 F 值。如果 F 统计量较大,表示组间差异大于组内差异,可能拒绝原假设。

8. 查找F分布的临界值或计算p值

使用这些自由度和F值查找F分布表中的临界值,或者直接使用统计软件计算 p 值。

9. 做出决策

  • 如果计算的 p 值小于预设的显著性水平(通常为 0.05),则拒绝原假设,认为不同组之间存在显著差异。
  • 如果 p 值大于显著性水平,则无法拒绝零假设,认为不同组之间没有显著差异。

案例分享

假设有三种不同的教学方法,我们想要检验这三种教学方法是否在学生的考试成绩上有显著差异。我们有三组学生,分别使用三种不同的教学方法进行教学,并记录他们的考试成绩。

  • 组1(教学方法A):[56, 59, 61, 58, 55]
  • 组2(教学方法B):[65, 67, 66, 64, 62]
  • 组3(教学方法C):[71, 73, 74, 72, 70]

现在,我们要使用方差分析来检验这三组之间的均值是否存在显著差异。

import numpy as np
from scipy import stats

# 数据:三种教学方法的考试成绩
group_A = [56, 59, 61, 58, 55]
group_B = [65, 67, 66, 64, 62]
group_C = [71, 73, 74, 72, 70]

# 使用scipy的f_oneway函数进行方差分析
f_statistic, p_value = stats.f_oneway(group_A, group_B, group_C)

# 输出F统计量和p值
print('F-statistic:', f_statistic)
print('p-value:', p_value)

# 判断显著性
alpha = 0.05
if p_value < alpha:
    print('拒绝零假设:不同教学方法之间的均值有显著差异')
else:
    print('无法拒绝零假设:不同教学方法之间的均值没有显著差异')

# F-statistic: 63.546218487394924
# p-value: 4.123503606051619e-07
# 拒绝零假设:不同教学方法之间的均值有显著差异

结果解释:

  • F-statistic:计算得出的 F值,用于判断组间和组内变异的相对大小。
  • p-value:计算得出的p值,如果p值小于显著性水平(通常是0.05),则拒绝原假设,认为不同组之间有显著差异。

绘制箱型图

import matplotlib.pyplot as plt

data = [group_A, group_B, group_C]

plt.figure(figsize=(8, 6))
plt.boxplot(data, labels=['Group A', 'Group B', 'Group C'], patch_artist=True,
            boxprops=dict(facecolor='lightblue', color='black'),
            flierprops=dict(markerfacecolor='red', marker='o', markersize=8, linestyle='none'))
plt.title('Boxplot of Scores by Group')
plt.ylabel('Scores')
plt.xlabel('Groups')
plt.grid(True)
# 显示图形
plt.show()

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号