2012-03-29 21 views
11

C'è un modo in python per ottenere la matrice di covarianza data la media e campione punti datiCostruire in funzione per il calcolo di covarianza

Esempio:

mean = [3 3.6] 
data = [[1 2] 
     [2 3] 
     [3 3] 
     [4 5] 
     [5 5]] 

so come calcolare la stessa sostituendo questi valori nella formula. Ma c'è una funzione build in python che fa questo per me. So che ce n'è uno in Matlab, ma non sono sicuro di Python.

risposta

22

numpy.cov() può essere utilizzato per calcolare la matrice di covarianza:

In [1]: import numpy as np 

In [2]: data = np.array([[1,2], [2,3], [3,3], [4,5], [5,5]]) 

In [3]: np.cov(data.T) 
Out[3]: 
array([[ 2.5, 2. ], 
     [ 2. , 1.8]]) 

Per default, np.cov() aspetta ogni riga per rappresentare una variabile, con osservazioni nelle colonne. Ho quindi dovuto trasporre la matrice (utilizzando .T).

Un modo alternativo per ottenere la stessa cosa è impostando rowvar a False:

In [15]: np.cov(data, rowvar=False) 
Out[15]: 
array([[ 2.5, 2. ], 
     [ 2. , 1.8]]) 
+0

Grazie una tonnellata per l'aiuto :) –

Problemi correlati