2017-07-07 4 views
0

Gibt es eine Python-Funktion, die es mir erlaubt, eine * n Autokovarianzmatrix zu berechnen, die Kovarianz zwischen jeder Kombination der Einträge in einem Vektor [a1, a2, a3 ... ein]? Ich kann nicht np.cov, das zu tun ... ich es so aussehen wollen:Kovarianzmatrix, die die Kovarianz zwischen jedem Wert in Vektoren zeigt

cov(a1,a1) cov(a1,a2)... cov(a1,an) 
    cov(a2,a1) cov(a2,a2)... 
    ... 
    cov(an,a1) ...   cov(an,an) 

Jede Hilfe ist willkommen! Cheers, Lena

+0

Wie würden Sie die Kovarianz zwischen zwei Elementen eines Arrays berechnen? Numpys 'cov()' berechnet [Beispielkovarianz] (https://en.wikipedia.org/wiki/Sample_mean_and_covariance). Um dies zu tun, benötigt es zwei Abtastwerte, d. H. Zwei Arrays. Wenn Sie es mit 1 Elementarrays berechnen, erhalten Sie immer 'nan' (1/(1-1) = inf), oder 0, wenn Sie die verzerrte Version mit der Division durch N verwenden – gionni

Antwort

0

Sie könnten das Pandas-Paket verwenden. http://pandas.pydata.org/

Datenrahmen haben eine Kovarianzmethode, die die Kovarianzen zwischen allen Spalten im DataFrame berechnet.

Dies sollte in etwa der Workflow sein.

import pandas as pd 
df = pd.DataFrame(your_vector) 
cov = df.cov() 

Cov ist jetzt ein Datenrahmen, der die Kovarianzen zwischen allen Spalten in Ihrem Vektor enthält. Sie können dann die gewünschte Analyse auf dem resultierenden Datenrahmen durchführen.