Ich denke, die Antwort sollte ja sein, aber ich habe immer noch das Gefühl, dass etwas nicht stimmt. Es sollte einige allgemeine Ergebnisse in der Literatur geben, könnte mir jemand helfen?
Ich denke, die Antwort sollte ja sein, aber ich habe immer noch das Gefühl, dass etwas nicht stimmt. Es sollte einige allgemeine Ergebnisse in der Literatur geben, könnte mir jemand helfen?
Antworten:
Nein.
Betrachten wir drei Variablen , und . Ihre Kovarianzmatrix ist nicht eindeutig positiv, da es einen Vektor ( ) gibt, für den nicht positiv ist.Y Z = X + Y M z = ( 1 , 1 , - 1 ) ' z ' M z
Populationskovarianzmatrizen sind positiv semidefinit.
(Siehe Eigenschaft 2 hier .)
Gleiches sollte generell für Kovarianzmatrizen vollständiger Stichproben gelten (keine fehlenden Werte), da diese auch als diskrete Populationskovarianz angesehen werden können.
Aufgrund der Ungenauigkeit numerischer Gleitkommaberechnungen können jedoch gelegentlich auch algebraisch positive definite Fälle berechnet werden, die nicht einmal positiv semidefinit sind. Eine gute Auswahl an Algorithmen kann dabei helfen.
Allgemeiner gesagt, können Stichproben-Kovarianzmatrizen - abhängig davon, wie sie mit fehlenden Werten in einigen Variablen umgehen - auch theoretisch positiv sein oder nicht. Wenn zum Beispiel paarweise gelöscht wird, gibt es keine Garantie für eine positive Halbbestimmtheit. Darüber hinaus kann ein akkumulierter numerischer Fehler dazu führen, dass Stichproben-Kovarianzmatrizen, die im fiktiven Sinne positiv sein sollten, semidefinit bleiben.
Wie so:
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
Dies geschah im ersten Beispiel, das ich ausprobiert habe (ich sollte wahrscheinlich einen Samen liefern, aber es ist nicht so selten, dass Sie viele Beispiele ausprobieren müssen, bevor Sie einen bekommen).
Das Ergebnis fiel negativ aus , obwohl es algebraisch null sein sollte. Ein anderer Satz von Zahlen kann eine positive Zahl oder eine "exakte" Null ergeben.
-
Beispiel für ein moderates Fehlen, das durch paarweises Löschen zum Verlust der positiven Halbwertszeit führt:
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
Um zu verstehen, warum die Kovarianzmatrix einer Population immer positiv ist, beachten Sie : wobei einige reelle Zahlen und einige reelle Zufallsvariablen sind.
Dies erklärt auch, warum in dem von Glen_b gegebenen Beispiel die Kovarianzmatrix nicht eindeutig positiv war. Wir hatten und , also ist und Die Varianz einer Zufallsvariablen, die konstant ist, ist .X 1 = X , X 2 = Y , X 3 = Z = X + Y ≤ 3 i = 1 y i X i = 0 0