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

在python中获得相关系数的统计差异,python,numpy,scipy,p-value,Python,Numpy,Scipy,P Value,要获得,我使用: from scipy.stats import pearsonr x, y = [1,2,3], [1,5,7] cor, p = pearsonr(x, y) 但是,如中所述,从pearsonr()返回的p值仅对大于500的数据集有意义。那么,我怎样才能得到一个适合于小数据集的p值呢 我的临时解决方案: 在阅读了线性回归之后,我提出了我自己的小脚本,基本上用于获得z分数,从中计算p值: import numpy as np from scipy.stats import z

要获得,我使用:

from scipy.stats import pearsonr
x, y = [1,2,3], [1,5,7]
cor, p = pearsonr(x, y)
但是,如中所述,从
pearsonr()
返回的p值仅对大于500的数据集有意义。那么,我怎样才能得到一个适合于小数据集的p值呢

我的临时解决方案:

在阅读了线性回归之后,我提出了我自己的小脚本,基本上用于获得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模块已经具有此功能?我还没有在或中找到它

编辑以澄清:


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

我认为这个问题在交叉验证中更适合。在3的样本量之间的相关性是不明智的……我通常在考虑一个相关性可能有用的时候至少需要一对50个值。@ Korem,我确实考虑过了,但是把它放在这里,因为它主要是一个编码问题。不过,如果没有人可以回答,我会把它移到那里。