我正在使用scipy版本1.0.0。
import scipy as sp
x = [[5829225, 5692693], [5760959, 5760959]]
sp.stats.fisher_exact(x)
对于scipy以上的值,它不会返回任何内容,但会等待。 可能是什么原因呢? 我该如何解决?
但是在R中,它几乎立即返回p值。
a = matrix(c(5829225,5692693,5760959,5760959), nrow=2)
fisher.test(a)
答案 0 :(得分:2)
摘自documentation中的注释:
计算出的优势比不同于R使用的优势比。此scipy实现返回(更常见的)“无条件最大似然估计”,而R使用“有条件最大似然估计”。
对于具有大量数字的表,还可以使用在函数chi2_contingency中实现的(inexact)卡方检验。
(强调我的)
就像提到DSM的评论一样,对于您的大价值来说,这可能只是非常缓慢。而且由于注释说明了较大的值,因此您可以尝试使用它们建议的替代方法:
>>> chi2, p, dof, expected = sp.stats.chi2_contingency(x)
>>> p
6.140729432506709e-178