gpt4 book ai didi

python - 为什么 SciPy 使用 Fisher 精确检验对极小的 p 值返回负 p 值?

转载 作者:太空狗 更新时间:2023-10-29 20:54:51 25 4
gpt4 key购买 nike

我注意到如果 p 值极小,SciPy 中的 Fisher 精确检验会返回负 p 值:

>>> import scipy as sp
>>> import scipy.stats
>>> x = [[48,60],[3088,17134]]
>>> sp.stats.fisher_exact(x)
(4.4388601036269426, -1.5673906617053035e-11)

在 R 中,使用相同的 2x2 列联表:

> a = matrix(c(48,60,3088,17134), nrow=2)
> fisher.test(a)
p-value = 6.409e-13

我的问题是 1) 为什么 SciPy 返回负 p 值? 2) 如何使用 SciPy 生成正确的 p 值?

感谢您的帮助。

最佳答案

Fisher 精确检验使用超几何分布。

您使用的 scipy 版本使用了不是很精确的超几何分布的实现。这是 known problem并已在 scipy 存储库中修复。

关于python - 为什么 SciPy 使用 Fisher 精确检验对极小的 p 值返回负 p 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7504198/

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