Was sagt mir eine nicht positiv definierte Kovarianzmatrix über meine Daten?

21

Ich habe mehrere multivariate Beobachtungen und möchte die Wahrscheinlichkeitsdichte über alle Variablen bewerten. Es wird angenommen, dass die Daten normal verteilt sind. Bei einer geringen Anzahl von Variablen funktioniert alles so, wie ich es erwarten würde. Wenn Sie jedoch zu einer höheren Zahl wechseln, wird die Kovarianzmatrix nicht mehr positiv.

Ich habe das Problem in Matlab auf Folgendes reduziert:

load raw_data.mat; % matrix number-of-values x number of variables
Sigma = cov(data);
[R,err] = cholcov(Sigma, 0); % Test for pos-def done in mvnpdf.

Wenn err> 0 ist, ist Sigma nicht eindeutig positiv.

Kann ich etwas tun, um meine experimentellen Daten in höheren Dimensionen auszuwerten? Verrät es mir irgendetwas Nützliches über meine Daten?

Ich bin ein bisschen ein Anfänger in diesem Bereich, also entschuldige mich, wenn ich etwas Offensichtliches verpasst habe.

ralight
quelle
Es hört sich so an, als wären Ihre Daten für die hochdimensionalen Darstellungen zu dünn. Planen Sie, Regressionsmodelle mit diesen Daten auszuführen?
Jonathan Thiele

Antworten:

30

Die Kovarianzmatrix ist nicht eindeutig positiv, weil sie singulär ist. Dies bedeutet, dass mindestens eine Ihrer Variablen als lineare Kombination der anderen Variablen ausgedrückt werden kann. Sie brauchen nicht alle Variablen, da der Wert von mindestens einer aus einer Teilmenge der anderen ermittelt werden kann. Ich würde vorschlagen, Variablen nacheinander hinzuzufügen und die Kovarianzmatrix bei jedem Schritt zu überprüfen. Wenn eine neue Variable eine Singularität erzeugt, löschen Sie sie und fahren Sie mit der nächsten fort. Schließlich sollten Sie eine Untergruppe von Variablen mit einer postiven definitiven Kovarianzmatrix haben.

Michael R. Chernick
quelle
19
+1. Es ist auch erwähnenswert, dass alle Kovarianzmatrizen positiv und alle positiv definierten Matrizen die Kovarianzmatrix einer multivariaten Verteilung sind. Daher ist es ein Oxymoron, wenn man sagt, dass die Kovarianzmatrix nicht positiv ist. Es scheint, dass das OP wirklich nur sagte, dass die Kovarianzmatrix der Stichprobe singulär war, was aus genau der Kollinearität (wie Sie gesagt haben) oder wenn die Anzahl der Beobachtungen geringer als die Anzahl der Variablen ist, geschehen kann .
Makro
3
Einige Statistikprogramme können veranlasst werden, dieses Problem automatisch zu beheben. Der regressBefehl von Stata löscht beispielsweise automatisch zusätzliche Variablen, wenn einige kollinear sind (und die Ausgabe kann in einer Form gespeichert werden, die diese Variablen identifiziert und eine nicht kollineare Teilmenge für die zukünftige Verwendung markiert). Eine wahrscheinliche Komplikation besteht jedoch darin, dass die Variablen nicht unbedingt kollinear sein müssen, sondern nahe genug, dass die Ausbreitung von Gleitkommafehlern bei der Cholesky-Zerlegung negative Eigenwertschätzungen hervorruft, wodurch die Variablen für alle praktischen Zwecke kollinear werden.
whuber
1
@whuber, es gibt ähnliche Funktionen auch in R- Regressionsmodelle löschen automatisch Variablen aus dem linearen Prädiktor, wenn es eine exakte Kollinearität gibt.
Makro
2
@whuber, es ist ein bisschen abgedreht, aber du kannst einen ähnlichen Trick machen. Wenn dies gIhr lineares Modell ist, colnames(model.matrix(g))[-which(is.na(coef(g))==TRUE)][-1]sollten die Namen der in das Modell eingegebenen Prädiktoren zurückgegeben werden, die nicht genau kollinear sind. Dies funktioniert, indem überprüft wird, welche Koeffizienten vorhanden waren NA(dies zeigt an, dass Reine Variable gelöscht wurde) und die entsprechenden Spaltennamen der Modellmatrix gefunden werden (Löschen der Intercept-Spalte). Übrigens funktioniert das nicht, wenn es keine kollinearen Terme gibt. Daher ist eine if-Anweisung erforderlich, which(is.na(coef(g))==TRUE)um zu überprüfen, ob sie nicht leer ist :)
Makro
8
@Macro Alle Kovarianzmatrizen sind positiv semidefinit. Wenn sie singulär sind, sind sie nicht positiv definit, weil x'Ax> 0 für alle Vektoren x für die Matrix A positiv definit ist. Im singulären Fall tritt x'Ax = 0 für einige x auf.
Michael R. Chernick
0

Es ist ein gültiges Ergebnis. Die Schätzung für diese Komponente der Kovarianzmatrix ist Null, was durchaus zutreffen kann! Dies kann zu Berechnungsschwierigkeiten führen, aber einige Algorithmen in R (ich weiß nicht, wie Matlab funktioniert) können dies bewältigen. Ich verstehe nicht, warum sich die Leute darüber aufregen und darauf bestehen, sparsamere Modelle zu finden.

AS
quelle
-1

Ein Punkt, von dem ich glaube, dass er oben nicht angesprochen wird, ist, dass es möglich ist, eine nicht positive definitive Kovarianzmatrix aus empirischen Daten zu berechnen, selbst wenn Ihre Variablen nicht perfekt linear zusammenhängen. Wenn Sie nicht über ausreichende Daten verfügen (insbesondere, wenn Sie versuchen, eine hochdimensionale Kovarianzmatrix aus einer Reihe paarweiser Vergleiche zu erstellen) oder wenn Ihre Daten keiner multivariaten Normalverteilung folgen, kann dies zu paradoxen Beziehungen führen unter Variablen wie cov (A, B)> 0; cov (A, C)> 0; cov (B, C) <0.

In einem solchen Fall kann ein multivariates normales PDF nicht angepasst werden, da es keine multivariate Normalverteilung gibt, die diese Kriterien erfüllt - cov (A, B)> 0 und cov (A, C)> 0 implizieren notwendigerweise, dass cov (B, C) )> 0.

Das heißt, eine nicht positive definite Matrix bedeutet nicht immer, dass Sie kollineare Variablen einschließen. Es könnte auch darauf hindeuten, dass Sie versuchen, eine Beziehung zu modellieren, die aufgrund der von Ihnen gewählten parametrischen Struktur unmöglich ist.

Adam Clark
quelle
1
Ihre Antwort ist auf so vielen Ebenen falsch. Man betrachte jedenfalls eine Kovarianzmatrix mit Einsen in der Diagonale und 1/2 für cov (1. und 2. Komponente), 1/2 für cov (1. und 3. Komponente) und -1/2 für cov (2. und 3. Komponente). . Die Kovarianzmatrix hat Eigenwerte von ungefähr 0,15, 1,35, 1,50, was ein Gegenbeispiel zur Behauptung in Ihrem zweiten Absatz darstellt.
Mark L. Stone
@ MarkL.Stone, du hast Recht mit dem 2. Absatz, aber ich frage mich, ob einiges davon mehrdeutig ist und unter einer großzügigen Interpretation gespeichert werden könnte. Ich frage mich beispielsweise, ob in Absatz 1 "Nicht genügend Daten vorhanden sind ... Der Versuch, eine hochdimensionale Kovarianzmatrix aus einer Reihe paarweiser Vergleiche zu erstellen" sich darauf bezieht, dass viele Daten fehlen und die paarweisen vollständigen Beobachtungen verwendet werden um jedes Element in der Kovarianzmatrix zu berechnen.
gung - Reinstate Monica