为什么corrcoef返回矩阵?

Dan*_*Dan 73 python math numpy

我觉得np.corrcoef返回一个矩阵似乎很奇怪.

 correlation1 = corrcoef(Strategy1Returns,Strategy2Returns)

[[ 1.         -0.99598935]
 [-0.99598935  1.        ]]
Run Code Online (Sandbox Code Playgroud)

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

ken*_*ytm 134

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

>>> 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.        ]])
Run Code Online (Sandbox Code Playgroud)

这里我们可以一次得到a,b(0.995),a,c(-0.981)和b,c(-0.972)的相关系数.两个数据集的情况只是N数据集类的一个特例.并且可能保持相同的返回类型更好.由于"一个值"可以简单地获得

>>> corrcoef(a,b)[1,0]
0.99535001355530017
Run Code Online (Sandbox Code Playgroud)

创造特殊情况没有什么大的理由.

  • 很好的例子,它清楚地说明了 CORRCOEF 的基本功能(除了回答原始问题之外) (2认同)

Kat*_*iel 48

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

协方差矩阵是矩阵

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

Cov( Y, X )    Cov( Y, Y )
Run Code Online (Sandbox Code Playgroud)

标准化,这将产生矩阵:

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

Corr( Y, X )    Corr( Y, Y )
Run Code Online (Sandbox Code Playgroud)

correlation1[0, 0 ]Strategy1Returns和自身之间的相互关系,必须是1.你只是想要correlation1[ 0, 1 ].

  • @EvgeniNabokov 连接 x 和 y 的结果,就好像它们以 (150, 8) 形状堆叠一样。然后每个组合有 1 个 corrcoef。公式是相同的(стандартная)。 (2认同)

Phi*_*ipp 7

相关矩阵是表示任意有限数量的变量之间的相关性的标准方式.N个数据向量的相关矩阵是具有单位对角线的对称N × N矩阵.仅在N = 2 的情况下,该矩阵具有一个自由参数.