如何在Python中进行重复测量的方差分析
Python中的重复测量方差分析是用来寻找三个或更多组的平均值之间是否存在统计学上的显著差异,其中每组中都有相同的受试者。
假设:
重复测量方差分析涉及以下无效假设和备选假设。
- 无效假设(H0)。µ1 = µ2 = µ3 (换句话说,人口平均数是相等的)
- 备选假设:(Ha)。根据它,至少有一个群体的平均数与其他群体不同
在Python中进行重复测量方差分析
让我们考虑一个例子,研究人员很想知道四种不同的发动机油是否会导致汽车的不同里程。为了测试这一点,他们使用四种不同的发动机油测量了5辆汽车的里程数。由于每辆汽车的里程数是通过逐一使用四种发动机油来测量的,所以我们可以使用重复测量方差分析来检查药物之间的平均反应时间是否不同。
安装numpy、pandas和和statsmodels库的语法:
pip3 install numpy pandas statsmodels
在Python中执行重复测量方差分析是一个循序渐进的过程。下面解释这些步骤。
第1步:创建数据
# Import the library
import numpy as np
import pandas as pd
# Create the data
dataframe = pd.DataFrame({'Cars': np.repeat([1, 2, 3, 4, 5], 4),
'Engine Oil': np.tile([1, 2, 3, 4], 5),
'Mileage': [36, 38, 30, 29,
34, 38, 30, 29,
34, 28, 38, 32,
38, 34, 20, 44,
26, 28, 34, 50]})
# Print the dataframe
print(dataframe)
输出:
第2步:进行重复测量方差分析
Python提供了来自statsmodels库的AnovaRM()函数来测量重复测量方差分析。
示例:
# Import library
import numpy as np
import pandas as pd
from statsmodels.stats.anova import AnovaRM
# Create the data
dataframe = pd.DataFrame({'Cars': np.repeat([1, 2, 3, 4, 5], 4),
'Oil': np.tile([1, 2, 3, 4], 5),
'Mileage': [36, 38, 30, 29,
34, 38, 30, 29,
34, 28, 38, 32,
38, 34, 20, 44,
26, 28, 34, 50]})
# Conduct the repeated measures ANOVA
print(AnovaRM(data=dataframe, depvar='Mileage',
subject='Cars', within=['Oil']).fit())
输出:
第3步:分析结果
在这个例子中,F检验统计量等于0.5679,相应的P值为0.6466。由于这个P值不小于0.05,我们不能拒绝无效假设,并得出结论:四种发动机油之间的平均反应时间没有统计学上的显著差异。
第4步:报告结果
现在让我们报告一下结果。对5个人进行了单因素重复测量方差分析,以解释四种不同的发动机油对里程的影响。结果显示,使用的药物类型导致反应时间的统计学上的显著差异(F(3,12)=0.5679,P<0.6466)。