Chaque matrice de covariance est-elle positive définie?

48

Je suppose que la réponse devrait être oui, mais je sens toujours que quelque chose ne va pas. Il devrait y avoir des résultats généraux dans la littérature, est-ce que quelqu'un pourrait m'aider?

Jingjings
la source
2
Chaque matrice de covariance est positive semi-définie. Cela signifie que chaque matrice de covariance doit avoir des valeurs propres non négatives. Si aucune des valeurs propres n'est nulle, la matrice de covariance est en outre un positif défini.
kaka
4
@Jingjings: Je peux voir dans votre profil que vous n'avez jamais voté ni accepté de réponse. C'est assez remarquable étant donné que vous avez beaucoup de bonnes questions avec beaucoup de bonnes réponses. Je suppose que vous ne savez pas vraiment comment cela fonctionne. L'idée est que vous devriez inverser toute réponse que vous jugez utile et accepter toute réponse qui, à votre avis, résoudrait votre problème. Il semblerait que vous puissiez voter beaucoup de réponses et en accepter certaines.
Amibe dit de réintégrer Monica

Réponses:

47

Non.

XYZ=X+YMz=(1,1,1)zMz

Les matrices de covariance de population sont positives semi-définies.

(Voir propriété 2 ici .)

Il en va généralement de même pour les matrices de covariance des échantillons complets (pas de valeurs manquantes), car elles peuvent également être considérées comme une forme de covariance de population discrète.

Cependant, en raison de l'inexactitude des calculs numériques à virgule flottante, même des cas définis algébriquement positifs peuvent parfois être calculés de manière à ne pas être même positifs semi-définis; bon choix d'algorithmes peut aider avec cela.

Plus généralement, les matrices de covariance des échantillons ( selon la manière dont elles gèrent les valeurs manquantes dans certaines variables) peuvent être ou ne pas être positives semi-définies, même en théorie. Si la suppression par paire est utilisée, par exemple, il n’ya aucune garantie de semi-définition positive. En outre, l’erreur numérique accumulée peut faire échouer l’échantillon de matrices de covariance qui devraient être théoriquement positives semi-définies.

Ainsi:

 x <- rnorm(30)
 y <- rnorm(30) - x/10 # it doesn't matter for this if x and y are correlated or not
 z <- x+y
 M <- cov(data.frame(x=x,y=y,z=z))
 z <- rbind(1,1,-1)
 t(z)%*%M%*%z
              [,1]
[1,] -1.110223e-16

C'est ce qui est arrivé au premier exemple que j'ai essayé (je devrais probablement fournir une graine, mais il n'est pas rare que vous deviez essayer beaucoup d'exemples avant d'en obtenir un).

Le résultat est négatif , même s'il devrait être algébriquement nul. Un ensemble de nombres différent peut générer un nombre positif ou un zéro "exact".

-

Exemple d’absence modérée conduisant à la perte de la semi-finitude positive via la suppression par paire:

z <- x + y + rnorm(30)/50  # same x and y as before.
xyz1 <- data.frame(x=x,y=y,z=z) # high correlation but definitely of full rank 

xyz1$x[sample(1:30,5)] <- NA   # make 5 x's missing  

xyz1$y[sample(1:30,5)] <- NA   # make 5 y's missing  

xyz1$z[sample(1:30,5)] <- NA   # make 5 z's missing  

cov(xyz1,use="pairwise")     # the individual pairwise covars are fine ...

           x          y        z
x  1.2107760 -0.2552947 1.255868
y -0.2552947  1.2728156 1.037446
z  1.2558683  1.0374456 2.367978

 chol(cov(xyz1,use="pairwise"))  # ... but leave the matrix not positive semi-definite

Error in chol.default(cov(xyz1, use = "pairwise")) : 
  the leading minor of order 3 is not positive definite

 chol(cov(xyz1,use="complete")) # but deleting even more rows leaves it PSD

          x          y          z
x 0.8760209 -0.2253484 0.64303448
y 0.0000000  1.1088741 1.11270078
z 0.0000000  0.0000000 0.01345364
Glen_b
la source
1
+1: Mais comme commentaire surtout pour le libellé: lorsque vous le présentez, il semble que le PSD-ness ne soit pas garanti dans le cas général. Comme indiqué dans la réponse de sjm.majewski, vous avez besoin d'un cas "pathologique" (rang non complet) et vous vous retrouvez avec ce problème. (Je suis tout à fait d’accord avec le commentaire numérique) Pouvez-vous élaborer un peu plus le problème des valeurs manquantes pour lequel vous ne pouvez même pas garantir le PSD même si vous tenez compte des erreurs numériques? (Je suppose que vous n'êtes pas préoccupé par la rareté des mesures, etc. lorsque vous dites cela)
usrr852 dit Réintégrer Monic
2
Bien sûr, cela ne se produit que quand il n’est pas de rang total (ou très proche de lui). Regardez la définition de PSD (et la mention de la relation à la variance mentionnée par @ sjm.majewski), et ceci est clair. Mais le définir comme pathologique semble étrange, car ces situations de rang non complet se produisent tout le temps dans la pratique. Ce n'est pas un simple pédantisme - il affecte tous les jours de véritables ensembles de données et génère par conséquent des questions régulières ici. Je parlerai de la disparition et de la suppression par paire ci-dessus, car il n'y a pas de place pour cela ici.
Glen_b
2
n<pn<p
27

i,j=1nyiyjCov(Xi,Xj)=Var(i=1nyiXi)0
yiXi

y1=1,y2=1,y3=1X1=X,X2=Y,X3=Z=X+Yi=13yiXi=00

sjm.majewski
la source
Agréable! Upvote;)
Un vieil homme à la mer.
Cela devrait être la réponse acceptée. La question ne concerne que les «matrices de covariance», qui font généralement référence à la matrice de covariance de la population de variables aléatoires, et non à l’échantillon.
user3303
Puis-je vous demander quelle est la formule que vous avez utilisée dans votre réponse?
Aqqqq
Si vous parlez de la formule avec variance et covariances, vous pouvez la déduire de la formule du carré de la somme (le carré de la somme est égal à la somme des produits de toutes les paires).
sjm.majewski