我有一些浮点数列表,例如[1.33,2.555,3.2134,4.123123]
等等,这些列表是某些东西的平均频率。我如何证明两个列表不同?我考虑计算p值。是否有函数可以做到这一点?我查阅了scipy文档,但无法确定要使用哪个函数。
有人能给些建议吗?
我有一些浮点数列表,例如[1.33,2.555,3.2134,4.123123]
等等,这些列表是某些东西的平均频率。我如何证明两个列表不同?我考虑计算p值。是否有函数可以做到这一点?我查阅了scipy文档,但无法确定要使用哪个函数。
有人能给些建议吗?
假设你有一个浮点数列表如下:
>>> data = {
... 'a': [0.9, 1.0, 1.1, 1.2],
... 'b': [0.8, 0.9, 1.0, 1.1],
... 'c': [4.9, 5.0, 5.1, 5.2],
... }
显然,a
与b
非常相似,但两者都与c
不同。
您可能想要进行两种比较。
a
是否类似于b
? a
是否类似于c
? b
是否类似于c
?a
、b
和c
是否来自同一组?(这通常是一个更好的问题)前者可以使用独立的t检验来实现,如下所示:
>>> from itertools import combinations
>>> from scipy.stats import ttest_ind
>>> for list1, list2 in combinations(data.keys(), 2):
... t, p = ttest_ind(data[list1], data[list2])
... print list1, list2, p
...
a c 9.45895002589e-09
a b 0.315333596201
c b 8.15963804843e-09
a
和c
不同,b
和c
不同,但a
和b
可能相似。>>> from scipy.stats import f_oneway
>>> t, p = f_oneway(*data.values())
>>> p
7.959305946160327e-12
p 值表明 a
、b
和 c
不太可能来自同一总体。
scipy
中有这样一个函数。 - Cory Kramer