Python 使用SciPy';Fisher精确检验?

Python 使用SciPy';Fisher精确检验?,python,numpy,scipy,Python,Numpy,Scipy,SciPy允许您进行卡方检验和Fisher精确检验。 虽然卡方检验的输出包括预期的阵列,但Fisher-exact不包括 e、 g: 返回: (0.31240019935827701, 0.57621104841277448, 1L, array([[ 1083.13438486, 6864.86561514], [ 11876.86561514, 75275.13438486]])) 0.561533439157 1.01974850672 而: from s

SciPy允许您进行卡方检验和Fisher精确检验。 虽然卡方检验的输出包括预期的阵列,但Fisher-exact不包括

e、 g:

返回:

(0.31240019935827701,
 0.57621104841277448,
 1L,
 array([[  1083.13438486,   6864.86561514],
        [ 11876.86561514,  75275.13438486]]))
0.561533439157 1.01974850672
而:

from scipy import stats
oddsratio, pvalue = stats.fisher_exact([[1100,6848],
[11860,75292]])
print pvalue, oddsratio
返回:

(0.31240019935827701,
 0.57621104841277448,
 1L,
 array([[  1083.13438486,   6864.86561514],
        [ 11876.86561514,  75275.13438486]]))
0.561533439157 1.01974850672
网站上什么也没说,我在网上也找不到任何东西。有可能吗? 谢谢

费舍尔精确检验()不涉及计算期望的数组。这就是为什么我们不返回一个

如果需要所需的数组,则它与返回的数组相同。如果您想在不调用chi2_contractive的情况下计算它,可以使用。例如:

In [40]: obs
Out[40]: 
array([[ 1100,  6848],
       [11860, 75292]])

In [41]: from scipy.stats.contingency import expected_freq

In [42]: expected_freq(obs)
Out[42]: 
array([[  1083.13438486,   6864.86561514],
       [ 11876.86561514,  75275.13438486]])

啊,当然可以。鸡蛋满脸都是。别告诉我的大学统计学教授。:)我的方法是使用费舍尔精确法来确定是否有影响,并使用与预期值的比较来确定方向。非常感谢!