gpt4 book ai didi

python - 如何计算两个 float 列表的 p 值?

转载 作者:太空狗 更新时间:2023-10-29 19:34:08 26 4
gpt4 key购买 nike

所以我有 float 列表。像 [1.33,2.555,3.2134,4.123123] 等。这些列表是某物的平均频率。如何证明两个列表不同?我考虑过计算 p 值。有这样做的功能吗?我查看了 scipy 文档,但不知道要使用什么。

谁能请教一下?

最佳答案

假设您有一个这样的 float 列表:

>>> 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],
... }

显然,ab非常相似,但两者都不同于c

您可能需要进行两种比较。

  1. 成对:a 是否与b 相似? a 是否类似于 cb 是否类似于 c
  2. 组合:abc 是否来自同一组? (这通常是 better question )

前者可以使用独立t-tests来实现如下:

>>> 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

这提供了相关的 p 值,并暗示 ac 是不同的是,bc是不同的,但是ab可能是相似的。

后者可以使用 one-way ANOVA 来实现如下:

>>> from scipy.stats import f_oneway
>>> t, p = f_oneway(*data.values())
>>> p
7.959305946160327e-12

p 值表示 abc 不太可能来自同一总体。

关于python - 如何计算两个 float 列表的 p 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29561360/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com