我正在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