對我來說,np.corrcoef返回一個矩陣似乎很奇怪。爲什麼corrcoef會返回一個矩陣?
correlation1 = corrcoef(Strategy1Returns,Strategy2Returns)
[[ 1. -0.99598935]
[-0.99598935 1. ]]
有誰知道爲什麼是這樣的話,是否可以在傳統意義上只返回一個值?
對我來說,np.corrcoef返回一個矩陣似乎很奇怪。爲什麼corrcoef會返回一個矩陣?
correlation1 = corrcoef(Strategy1Returns,Strategy2Returns)
[[ 1. -0.99598935]
[-0.99598935 1. ]]
有誰知道爲什麼是這樣的話,是否可以在傳統意義上只返回一個值?
corrcoef
返回的歸一化協方差矩陣。
協方差矩陣是矩陣
Cov(X, X) Cov(X, Y)
Cov(Y, X) Cov(Y, Y)
歸一化,這將產生矩陣:
Corr(X, X) Corr(X, Y)
Corr(Y, X) Corr(Y, Y)
correlation1[0, 0 ]
是Strategy1Returns
和自身之間的相關性,它必須是1。你只是想correlation1[ 0, 1 ]
。
相關矩陣是表達任意有限數量變量之間相關性的標準方法。 Ñ數據向量的相關矩陣是對稱Ñ×Ñ矩陣具有單位對角線。只有在N = 2的情況下,這個矩陣纔有一個自由參數。
它允許您計算> 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. ]])
在這裏,我們可以得到的相關係數,B(0.995),A,C(-0.981)和B,C(-0.972)在一次。雙數據集案例只是N數據集類的特例。可能最好保持相同的返回類型。由於「單值」可以簡單地用
>>> corrcoef(a,b)[1,0]
0.99535001355530017
沒有什麼大的理由去創建特例。
非常好的例子,它清楚地說明了CORRCOEF的基本功能(除了回答最初的問題之外) – Hiro 2017-06-14 19:48:24
考慮使用matplotlib.cbook件
例如:
import matplotlib.cbook as cbook
segments = cbook.pieces(np.arange(20), 3)
for s in segments:
print s
numpy的的相關成分的功能與工作要關聯,並返回一個相關值2維數組。
你能從下面選擇最好的答案嗎? – Yank 2015-05-23 12:58:29