本文目的不是讲方差分析数学理论,而是如何使用Python对数据方差分析
spicy.stats.f_oneway(*args)
Parameters:
sample1, sample2, ... : array_like
The sample measurements for each group.
Returns:
statistic : float
The computed F-value of the test.
pvalue : float
The associated p-value from the F-distribution.
单因素方差分析(one-way ANOVA):
假定有k组实验数据,彼此之间相互独立且服从正态分布,均值分别为,
,...
,方差都为
2
H0:假设两组或者多组数据之间有相同的均值
H1:至少有两个均值不相等
例子:
现在我们有来自5个不同地方蚌壳的长度数据,这5个地方的蚌壳长度的均值是否都一样呢?
from scipy import stats
tillamook = [0.0571, 0.0813, 0.0831, 0.0976, 0.0817, 0.0859, 0.0735,
0.0659, 0.0923, 0.0836]
newport = [0.0873, 0.0662, 0.0672, 0.0819, 0.0749, 0.0649, 0.0835,
0.0725]
petersburg = [0.0974, 0.1352, 0.0817, 0.1016, 0.0968, 0.1064, 0.105]
magadan = [0.1033, 0.0915, 0.0781, 0.0685, 0.0677, 0.0697, 0.0764,
0.0689]
tvarminne = [0.0703, 0.1026, 0.0956, 0.0973, 0.1039, 0.1045]
f,p = stats.f_oneway(tillamook, newport, petersburg, magadan, tvarminne)
print(f,p)
7.121019471642447 0.0002812242314534544
#或者可以把上面数据放到一个列表data里面,然后直接对data进行单因素方差分析
data = [tillamook,newport,petersburg,magadan,tvarminne]
#注意data前面的*号一定要有,至于为什么,该函数语法要求
f,p = stats.f_oneway(*data)
print(f,p)
7.121019471642447 0.0002812242314534544
网友评论