Numpy和R中的Pearson相关系数之间的差异

时间:2019-07-18 13:36:12

标签: python r numpy correlation pearson-correlation

我正在R中使用cor()函数来计算我的数据集的相关系数。但是,我注意到这些值与使用numpy.corrcoef获得的值不同。

要计算系数,我在R中使用以下调用:

corr = cor(data, method='pearson')

Python中的相应调用:

corr = numpy.corrcoef(data)

还有其他人遇到过这个问题吗?我想念什么吗?

一个例子:

Python

>>> a = np.array([[1, 0, 0, 1], [0, 1, 1, 1], [0, 1, 1, 0], [1, 1, 1, 0]])
>>> np.corrcoef(a)

输出:

array([[ 1.        , -0.57735027, -1.        , -0.57735027],
       [-0.57735027,  1.        ,  0.57735027, -0.33333333],
       [-1.        ,  0.57735027,  1.        ,  0.57735027],
       [-0.57735027, -0.33333333,  0.57735027,  1.        ]])

R

>>> a <- matrix(c(1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0), 4, 4, byrow = TRUE)
>>> cor(a, method='pearson')

输出:

           [,1]       [,2]       [,3]       [,4]
[1,]  1.0000000 -0.5773503 -0.5773503  0.0000000
[2,] -0.5773503  1.0000000  1.0000000 -0.5773503
[3,] -0.5773503  1.0000000  1.0000000 -0.5773503
[4,]  0.0000000 -0.5773503 -0.5773503  1.0000000

0 个答案:

没有答案