2012-03-29 81 views
11

¿Hay alguna manera en Python para obtener la matriz de covarianza dados los puntos de datos de la media y de la muestraConstruir en la función para el cálculo de la covarianza

Ejemplo:

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

sé cómo calcular la misma mediante la sustitución de éstos valores en la fórmula. Pero hay una función de compilación en Python que hace esto por mí. Sé que hay uno en Matlab, pero no estoy seguro acerca de Python.

Respuesta

22

numpy.cov() se puede utilizar para calcular la matriz de 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]]) 

Por defecto, np.cov() espera que cada fila para representar una variable, con las observaciones en las columnas. Por lo tanto, tuve que transponer su matriz (usando .T).

Una forma alternativa de lograr lo mismo es mediante el establecimiento de rowvar a False:

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

Muchísimas gracias por ayudar :) –

Cuestiones relacionadas