2013-02-02 19 views
20

Python'da korelasyon matrisini nasıl hesaplayabilirim? Her elemanın 5 boyuta sahip olduğu n boyutlu bir vektör var. Vektörün Bu durumda boyutundakorelasyon matrisi

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

4 ve bu vektörün her bir elemanı 5 boyut var gibi Örneğin benim vektör görünüyor. Matrisi en kolay şekilde nasıl oluşturabilirim? numpy kullanma

Teşekkür

cevap

22

, sen np.corrcoef kullanabilirsiniz:

İşte
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

Teşekkürler. Benim gerçek uygulama için şu hata alıyorum AttributeError: 'int' nesnesi 'corrcoef' özniteliği yok – user1964587

+1

'np' 'int' olarak tanımladığınız gibi geliyor. Yukarıdaki "numpy" np olarak içe aktarıldı. İkisini ayırmanız gerekecek. – unutbu

+0

Korelasyon matrisini nasıl çizebilirim? Bu aşağıdaki işleviyle denedim (corr_matrix, interpolation = 'tanımsız') colorbar() show() Şekil matrisinin kaynağı (0,0) yerine (0, n) 'dir. Bunu nasıl yapabilirim. Matrisin boyutu 5000X5000'dir – user1964587

0

Python kullanarak bir korelasyon matrisi formu birden fazla zaman serileri hesaplanması bir pretty good example olduğunu. Dahil edilen kaynak kodu, bir grafikler oluşturmak için Pandas, NumPy ve matplotlib kullanarak bir Forex döviz çiftleri kümesi için korelasyon matrisini hesaplar.

Örnek veriler, bir dizi geçmiş veri dosyasıdır ve çıktı, tek bir korelasyon matrisi ve bir çizimdir. Kod çok iyi belgelenmiştir.

8

Matrisinizi tekrar yazmak istemiyorsanız np.array öğesini de kullanabilirsiniz.

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