获得python中相关系数的统计差异

时间:2014-07-22 21:31:01

标签: python numpy scipy p-value

要获得the correlation between two arrays in python,我正在使用:

from scipy.stats import pearsonr
x, y = [1,2,3], [1,5,7]
cor, p = pearsonr(x, y)

但是,正如the docs中所述,从pearsonr()返回的p值仅对大于500的数据集有意义。那么如何获得对小型数据集合理的p值?

我的临时解决方案:

在阅读线性回归后,我提出了自己的小脚本,它基本上使用Fischer transformation来获得z值,从中计算p值:

import numpy as np
from scipy.stats import zprob
n = len(x)
z = np.log((1+cor)/(1-cor))*0.5*np.sqrt(n-3))
p = zprob(-z)

有效。但是,我不确定pearsonr()给出的p值是否更合理。是否有一个已经具有此功能的python模块?我无法在SciPyStatsmodels中找到它。

修改以澄清:

我的示例中的数据集已经过简化。我的真实数据集是两个10-50值的数组。

0 个答案:

没有答案