numpy matrice de covariance
Supposons que j'ai deux vecteurs de longueur 25, et je veux calculer la matrice de covariance. J'essaie de le faire avec numpy.cov, mais toujours avec une matrice 2x2.
>>> import numpy as np
>>> x=np.random.normal(size=25)
>>> y=np.random.normal(size=25)
>>> np.cov(x,y)
array([[ 0.77568388, 0.15568432],
[ 0.15568432, 0.73839014]])
À l'aide de la rowvar drapeau n'aide pas non plus - je obtenir exactement le même résultat.
>>> np.cov(x,y,rowvar=0)
array([[ 0.77568388, 0.15568432],
[ 0.15568432, 0.73839014]])
Comment puis-je obtenir le 25x25 matrice de covariance?
OriginalL'auteur user13321 | 2013-02-23
Vous devez vous connecter pour publier un commentaire.
Vous disposez de deux vecteurs, et non pas 25. L'ordinateur, je suis sur de ne pas avoir python donc je ne peux pas tester, mais essayez:
De cours.... vraiment ce que vous voulez est probablement plus comme:
Cela prend la covariance (je pense/espère) de
num_vects
1xn
vecteursSi vous avez deux vecteurs avec 25 points, vous voulez probablement seulement une 2x2 matrice de covariance.
OriginalL'auteur David Marx
Essayez ceci:
devrait être z = np.vstack((x, y))
OriginalL'auteur Sylou
La lecture de la documentation,
ou en regardant Numpy Covariance, Numpy traite chaque ligne de la matrice comme une variable distincte, vous avez donc deux variables et, par conséquent, vous obtenez un 2 x 2 matrice de covariance.
Je pense que le post précédent est une bonne solution. J'ai l'explication 🙂
OriginalL'auteur Arcturus
Comme l'a souligné ci-dessus, vous n'avez que deux vecteurs de sorte que vous obtiendrez seulement une 2x2 cov de la matrice.
IIRC les 2 termes de la diagonale principale sera sum( (x-mean(x))**2) /(n-1) et de même pour y.
Les 2 hors diagonale conditions seront sum( (x-mean(x))(y-mean(y)) ) /(n-1). n=25 dans ce cas.
OriginalL'auteur Stuart
Vous devriez changer
sur
OriginalL'auteur foo bar
Je suppose que ce que vous cherchez est en fait une fonction de covariance qui est un timelag fonction. Je suis en train de faire auto-covariance comme ça:
OriginalL'auteur Leukonoe
je ne pense pas que vous comprenez la définition de la matrice de covariance.
Si vous avez besoin d'25 x 25 matrice de covariance, vous avez besoin de 25 vecteurs chacun avec n points de données.
OriginalL'auteur Edison Chen