Ogni matrice di covarianza è definita positiva?


48

Immagino che la risposta dovrebbe essere sì, ma sento ancora che qualcosa non va. Dovrebbero esserci dei risultati generali in letteratura, qualcuno potrebbe aiutarmi?


2
Ogni matrice di covarianza è semi-definita positiva. Ciò significa che ogni matrice di covarianza deve avere valori di autoveni non negativi. Se nessuno dei valori di autovelo è zero, la matrice di covarianza è inoltre definita positiva.
kaka,


4
@Jingjings: vedo nel tuo profilo che non hai mai votato o accettato alcuna risposta; questo è abbastanza notevole dato che hai molte buone domande con molte buone risposte. Immagino che tu non sia davvero consapevole di come funziona. L'idea è che dovresti votare qualsiasi risposta che ritieni utile e accettare qualsiasi risposta che ritieni risolva il problema. Sembra che tu possa votare molte risposte e anche accettarne alcune.
ameba dice Ripristina Monica

Risposte:


47

No.

Prendere in considerazione tre variabili, , Y e Z = X + Y . La loro matrice di covarianza, MXYZ=X+YM , non è definita positiva, poiché esiste un vettore ( = ( 1 , 1 , - 1 ) ) per il quale z M z non è positivo.z=(1,1,-1)'z'Mz

Le matrici di covarianza della popolazione sono semi-definite positive.

(Vedi la proprietà 2 qui .)

Lo stesso dovrebbe valere generalmente per le matrici di covarianza di campioni completi (nessun valore mancante), poiché possono anche essere viste come una forma di covarianza di popolazione discreta.

Tuttavia a causa dell'inesattezza dei calcoli numerici in virgola mobile, anche casi definiti algebricamente positivi potrebbero occasionalmente essere calcolati per non essere nemmeno semi-definiti positivi; una buona scelta di algoritmi può aiutare in questo.

Più in generale, le matrici di covarianza del campione - a seconda di come gestiscono i valori mancanti in alcune variabili - possono o meno essere semi-definite positive, anche in teoria. Se viene utilizzata la cancellazione a coppie, ad esempio, non vi è alcuna garanzia di semi-definitività positiva. Inoltre, un errore numerico accumulato può far fallire le matrici di covarianza del campione che dovrebbero essere semi-definite nozionalmente positive.

Così:

 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

Questo è successo nel primo esempio che ho provato (probabilmente dovrei fornire un seme ma non è così raro che dovresti provare molti esempi prima di averne uno).

Il risultato è risultato negativo , anche se dovrebbe essere algebricamente zero. Un diverso insieme di numeri potrebbe produrre un numero positivo o uno zero "esatto".

-

Esempio di mancanza moderata che porta alla perdita di semidefinità positiva mediante cancellazione a coppie:

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

1
+1: Ma soprattutto come commento per la tua formulazione: quando lo presenti, sembra che PSD-ness non sia garantito nel caso generale. Come mostrato nella risposta di sjm.majewski, hai bisogno di un caso "patologico" (non di rango massimo) e finisci con quel problema. (Sono pienamente d'accordo con il commento numerico) Puoi elaborare un problema un po 'più di valori mancanti in cui non puoi nemmeno garantire PSD anche se conto di errori numerici? (Suppongo che non ti preoccupi della scarsità di misurazioni ecc. Quando lo dici)
usεr11852 dice Reinstate Monic il

2
Naturalmente si verifica solo quando non è di rango pieno (o molto vicino ad esso). Guarda la definizione di PSD (e la menzione di @ sjm.majewski sulla relazione con la varianza), e questo è molto chiaro. Ma definirlo patologico sembra strano, dal momento che queste situazioni non di rango pieno si verificano sempre nella pratica. Questa non è una semplice pedanteria: influisce su insiemi di dati reali ogni giorno e di conseguenza genera qui domande regolari. Parlerò della mancanza e della cancellazione in coppia sopra, perché qui non c'è spazio.
Glen_b

2
n<pn<p

27

Σio,j=1nyioyjCov(Xio,Xj)=Vun'r(Σio=1nyioXio)0
yioXio

y1=1,y2=1,y3=-1X1=X,X2=Y,X3=Z=X+YΣio=13yioXio=00 .


Bello! Upvote;)
Un vecchio nel mare.

Questa dovrebbe essere la risposta accettata. La domanda pone solo delle "matrici di covarianza" che generalmente si riferiscono alla matrice di covarianza della popolazione di variabili casuali, non al campione.
user3303

Posso chiederti qual è la formula che hai usato nella tua risposta?
Aqqqq,

Se intendi la formula con varianza e covarianze, puoi derivarla dalla formula per il quadrato della somma (ovvero il quadrato della somma è uguale alla somma dei prodotti per tutte le coppie).
sjm.majewski,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.