首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么corrcoef返回一个矩阵?

为什么corrcoef返回一个矩阵?
EN

Stack Overflow用户
提问于 2010-08-06 23:47:10
回答 5查看 107.9K关注 0票数 85

对我来说,np.corrcoef返回一个矩阵似乎很奇怪。

代码语言:javascript
复制
 correlation1 = corrcoef(Strategy1Returns,Strategy2Returns)

[[ 1.         -0.99598935]
 [-0.99598935  1.        ]]

有没有人知道为什么会这样,是否有可能只返回一个经典意义上的值?

EN

回答 5

Stack Overflow用户

发布于 2010-08-06 23:58:43

它允许您计算>2个数据集的相关系数,例如

代码语言:javascript
复制
>>> from numpy import *
>>> a = array([1,2,3,4,6,7,8,9])
>>> b = array([2,4,6,8,10,12,13,15])
>>> c = array([-1,-2,-2,-3,-4,-6,-7,-8])
>>> corrcoef([a,b,c])
array([[ 1.        ,  0.99535001, -0.9805214 ],
       [ 0.99535001,  1.        , -0.97172394],
       [-0.9805214 , -0.97172394,  1.        ]])

这里我们可以一次得到a,b (0.995),a,c (-0.981)和b,c (-0.972)的相关系数。两个数据集的情况只是N数据集类的一个特例。而且可能保持相同的返回类型会更好。由于"one value“可以简单地通过以下命令获得

代码语言:javascript
复制
>>> corrcoef(a,b)[1,0]
0.99535001355530017

没有什么重要的理由去创造这种特殊的情况。

票数 164
EN

Stack Overflow用户

发布于 2010-08-06 23:53:44

corrcoef返回归一化协方差矩阵。

协方差矩阵就是矩阵

代码语言:javascript
复制
Cov( X, X )    Cov( X, Y )

Cov( Y, X )    Cov( Y, Y )

归一化后,这将产生矩阵:

代码语言:javascript
复制
Corr( X, X )    Corr( X, Y )

Corr( Y, X )    Corr( Y, Y )

correlation1[0, 0 ]Strategy1Returns与自身的关系,必须为1,您只需要correlation1[ 0, 1 ]

票数 53
EN

Stack Overflow用户

发布于 2019-02-20 04:34:16

您可以使用以下函数仅返回相关系数:

代码语言:javascript
复制
def pearson_r(x, y):
"""Compute Pearson correlation coefficient between two arrays."""

   # Compute correlation matrix
   corr_mat = np.corrcoef(x, y)

   # Return entry [0,1]
   return corr_mat[0,1]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3425439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档