2013-02-02 5 views
20

どのようにして相関行列を計算するのですか?私は各要素が5次元を持つn次元ベクトルを持っています。たとえば、私のベクトルは次のように見えます相関行列をPythonで

 
[ 
[0.1, .32, .2, 0.4, 0.8], 
[.23, .18, .56, .61, .12], 
[.9, .3, .6, .5, .3], 
[.34, .75, .91, .19, .21] 
] 

この場合、ベクトルの次元は4で、このベクトルの各要素は5次元です。最も簡単な方法でマトリックスを構築するには? numpyを使用して

おかげ

答えて

22

は、あなたがnp.corrcoefを使用することができます。

ここ
In [88]: import numpy as np 

In [89]: np.corrcoef([[0.1, .32, .2, 0.4, 0.8], [.23, .18, .56, .61, .12], [.9, .3, .6, .5, .3], [.34, .75, .91, .19, .21]]) 
Out[89]: 
array([[ 1.  , -0.35153114, -0.74736506, -0.48917666], 
     [-0.35153114, 1.  , 0.23810227, 0.15958285], 
     [-0.74736506, 0.23810227, 1.  , -0.03960706], 
     [-0.48917666, 0.15958285, -0.03960706, 1.  ]]) 
+0

感謝。私の実際のアプリケーションでは、次のエラーが発生しています。AttributeError: 'int'オブジェクトに属性 'corrcoef'がありません – user1964587

+1

'np'を' int'と定義したようです。上記の 'numpy'は' np'としてインポートされています。あなたは2つを明確にする必要があります。 – unutbu

+0

どのように相関行列をプロットしますか?私は、代わりに、この次の関数の関数imshow(corr_matrix、補間= 'バイリニア') カラーバー() ショー() は、図マトリクスの原点(0、n)は(0,0)と試みました。どうやってやるの。マトリックスの寸法は5000X5000です – user1964587

0

は、Pythonを使用して相関行列形式の複数の時系列を計算するpretty good exampleです。含まれているソースコードは、Pandas、NumPy、およびmatplotlibを使用して、相関のグラフを生成するForex通貨ペアの相関行列を計算します。

サンプルデータは、履歴データ・ファイルのセットであり、出力は、単一の相関行列とプロットです。コードは非常によく文書化されています。あなたがもう一度あなたの行列を書きたくない場合は

8

またnp.array使用することができます。

import numpy as np 
a = np.array([ [0.1, .32, .2, 0.4, 0.8], [.23, .18, .56, .61, .12], [.9, .3, .6, .5, .3], [.34, .75, .91, .19, .21]]) 
b = np.corrcoef(a) 
print b 
関連する問題