我有一个矩阵 data
有 m 行和 n 列。我曾经使用 np.corrcoef
计算所有行对之间的相关系数:
import numpy as np
data = np.array([[0, 1, -1], [0, -1, 1]])
np.corrcoef(data)
现在我还想看看这些系数的 p 值。 np.corrcoef
不提供这些; scipy.stats.pearsonr
是的。但是, scipy.stats.pearsonr
不接受输入矩阵。
有没有一种快速的方法来计算所有行对的系数和 p 值(例如到达两个 m x m 矩阵,一个具有相关系数,另一个具有相应的 p 值)而无需手动进行所有对?
原文由 John Manak 发布,翻译遵循 CC BY-SA 4.0 许可协议
我今天遇到了同样的问题。
经过半小时的谷歌搜索,我在 numpy/scipy 库中找不到任何代码可以帮助我做到这一点。
所以我写了我自己的 corrcoef 版本
第一个版本使用 np.corrcoef 的结果,然后根据 corrcoef 矩阵的三角上值计算 p 值。
第二个循环版本只是遍历行,手动执行 pearsonr。
测试通过,他们是一样的。
我的 Macbook 针对 100x2500 矩阵的性能