如何在 python 中执行重复测量方差分析
重复测量方差分析用于确定三个或更多组的平均值之间是否存在统计显着性差异,其中每组中出现相同的受试者。
本教程介绍如何在 Python 中执行单向重复测量方差分析。
示例:Python 中的重复测量方差分析
研究人员想知道四种不同的药物是否会导致不同的反应时间。为了测试这一点,他们测量了五名患者对四种不同药物的反应时间。
由于每位患者都对四种药物中的每一种进行测量,因此我们将使用重复测量方差分析来确定药物之间的平均反应时间是否不同。
使用以下步骤在 Python 中执行重复测量方差分析。
第 1 步:输入数据。
首先,我们将创建一个 pandas DataFrame 来保存我们的数据:
import numpy as np import pandas as pd #createdata df = pd.DataFrame({'patient': np.repeat([1, 2, 3, 4, 5], 4), 'drug': np.tile([1, 2, 3, 4], 5), 'response': [30, 28, 16, 34, 14, 18, 10, 22, 24, 20, 18, 30, 38, 34, 20, 44, 26, 28, 14, 30]}) #view first ten rows of data df.head[:10] patient drug response 0 1 1 30 1 1 2 28 2 1 3 16 3 1 4 34 4 2 1 14 5 2 2 18 6 2 3 10 7 2 4 22 8 3 1 24 9 3 2 20
第 2 步:执行重复测量方差分析。
接下来,我们将使用statsmodels库中的AnovaRM() 函数执行重复测量方差分析:
from statsmodels.stats.anova import AnovaRM #perform the repeated measures ANOVA print(AnovaRM(data= df , depvar=' response ', subject=' patient ', within=[' drug ']).fit()) Anova ==================================== F Value Num DF Den DF Pr > F ---------------------------------- drug 24.7589 3.0000 12.0000 0.0000 ====================================
第 3 步:解释结果。
重复测量方差分析使用以下原假设和备择假设:
原假设 (H 0 ): µ 1 = µ 2 = µ 3 (总体平均值均相等)
备择假设:(Ha):至少一个总体均值与其他总体均值不同
在此示例中,F 检验统计量为24.7589 ,相应的 p 值为0.0000 。
由于该p 值小于 0.05,因此我们拒绝原假设并得出结论:四种药物之间的平均响应时间存在统计显着差异。
第四步:报告结果。
最后,我们将报告重复测量方差分析的结果。以下是如何执行此操作的示例:
对 5 个人进行单向重复测量方差分析,以检查四种不同药物对反应时间的影响。
结果显示,所用药物类型导致反应时间存在统计学显着差异 (F(3, 12) = 24.75887,p < 0.001)。
其他资源
以下教程提供有关重复测量方差分析的更多信息: