Immagino che la risposta dovrebbe essere sì, ma sento ancora che qualcosa non va. Dovrebbero esserci dei risultati generali in letteratura, qualcuno potrebbe aiutarmi?
Immagino che la risposta dovrebbe essere sì, ma sento ancora che qualcosa non va. Dovrebbero esserci dei risultati generali in letteratura, qualcuno potrebbe aiutarmi?
Risposte:
No.
Prendere in considerazione tre variabili, , Y e Z = X + Y . La loro matrice di covarianza, M , non è definita positiva, poiché esiste un vettore ( = ( 1 , 1 , - 1 ) ′ ) per il quale z ′ M z non è positivo.
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
.