1

为了获得python 中两个数组之间的相关性,我使用:

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

但是,如文档中所述,从返回的 p 值pearsonr()仅对大于 500 的数据集有意义。那么我怎样才能获得对小数据集合理的 p 值?

我的临时解决方案:

在阅读了线性回归之后,我想出了自己的小脚本,它基本上使用Fischer 变换来获得 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)

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

编辑以澄清:

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

4

0 回答 0