Die Anpassung einer logistischen Regression mit lme4 endet mit
Error in mer_finalize(ans) : Downdated X'X is not positive definite.
Eine wahrscheinliche Ursache für diesen Fehler ist offenbar ein Rangmangel. Was ist ein Rangmangel und wie soll ich damit umgehen?
caret
hat eine aufgerufene Funktion,findLinearCombos
die Ihnen sagt, welche Variablen problematisch sind.Antworten:
Ein Rangdefizit in diesem Zusammenhang besagt, dass Ihre Daten nicht genügend Informationen enthalten, um das von Ihnen gewünschte Modell einzuschätzen. Es stammt aus vielen Ursprüngen. Ich werde hier eher über das Modellieren in einem relativ allgemeinen Kontext als über explizite logistische Regression sprechen, aber alles gilt immer noch für den spezifischen Kontext.
Der Mangel kann einfach auf zu wenig Daten zurückzuführen sein. Im Allgemeinen können Sie n Parameter mit weniger als n Datenpunkten nicht eindeutig schätzen. Das bedeutet nicht, dass Sie nur n Punkte benötigen. Wenn dabei ein Rauschen auftritt, erhalten Sie eher schlechte Ergebnisse. Sie benötigen mehr Daten, um dem Algorithmus bei der Auswahl einer Lösung zu helfen, die alle Daten in einem Minimum an Fehlern darstellt. Aus diesem Grund verwenden wir die kleinsten Quadrate. Wie viele Daten benötigen Sie? Diese Frage wurde mir in früheren Leben immer gestellt, und die Antwort war mehr als Sie oder so viel, wie Sie bekommen können. :)
Manchmal haben Sie möglicherweise mehr Daten als Sie benötigen, aber einige (zu viele) Punkte sind Replikate. Die Replikation ist in dem Sinne GUT, dass sie zur Reduzierung des Rauschens beiträgt, aber nicht zur Erhöhung des numerischen Ranges. Angenommen, Sie haben nur zwei Datenpunkte. Sie können kein eindeutiges quadratisches Modell durch die Punkte schätzen. Mit einer Million Wiederholungen jedes Punktes können Sie immer noch nicht mehr als eine gerade Linie durch ein Paar von Punkten ziehen. Im Wesentlichen werden durch die Replikation keine Informationen hinzugefügt. Alles, was Sie tun müssen, ist das Rauschen an Orten zu verringern, an denen Sie bereits Informationen haben.
Manchmal haben Sie Informationen an den falschen Stellen. Beispielsweise können Sie ein zweidimensionales quadratisches Modell nicht anpassen, wenn Sie nur Punkte haben, die alle in zwei Dimensionen auf einer geraden Linie liegen. Angenommen, Sie haben Punkte, die nur entlang der Linie x = y in der Ebene verstreut sind, und Sie möchten ein Modell für die Oberfläche z (x, y) anpassen. Selbst mit Millionen von Punkten (nicht einmal Wiederholungen) verfügen Sie über ausreichende Informationen, um mehr als ein konstantes Modell intelligent abzuschätzen. Erstaunlicherweise ist dies ein häufiges Problem, das ich bei Stichprobendaten gesehen habe. Der Benutzer wundert sich, warum er kein gutes Modell bauen kann. Das Problem steckt in den Daten, die sie abgetastet haben.
Manchmal ist es einfach die Wahl des Modells. Dies kann als "nicht genügend Daten" angesehen werden, aber von der anderen Seite. Sie möchten ein kompliziertes Modell schätzen, haben jedoch nicht genügend Daten dafür angegeben.
In allen oben genannten Fällen besteht die Antwort darin, mehr Daten zu erhalten, die intelligent von Orten abgetastet werden, die Informationen über den derzeit fehlenden Prozess liefern. Die Versuchsplanung ist ein guter Anfang.
Jedoch sind selbst gute Daten manchmal unzureichend, zumindest zahlenmäßig. (Warum passieren schlechte Dinge mit guten Daten?) Das Problem hier kann modellbezogen sein. Es kann in nichts anderem als einer schlechten Auswahl von Einheiten liegen. Dies kann auf die Computerprogrammierung zurückzuführen sein, die zur Behebung des Problems durchgeführt wurde. (Ugh! Wo soll ich anfangen?)
Lassen Sie uns zunächst über Einheiten und Skalierung sprechen. Angenommen, ich versuche, ein Problem zu lösen, bei dem eine Variable VIELE Größenordnungen größer ist als eine andere. Angenommen, ich habe ein Problem mit meiner Größe und meiner Schuhgröße. Ich werde meine Größe in Nanometern messen. Meine Größe wäre also ungefähr 1,78 Milliarden (1,78e9) Nanometer. Natürlich messe ich meine Schuhgröße in Kilo-Parsec, also 9,14e-21 Kilo-Parsec. Bei der Regressionsmodellierung dreht sich bei der linearen Regression alles um die lineare Algebra, die lineare Kombinationen von Variablen umfasst. Das Problem hierbei ist, dass sich diese Zahlen um sehr viele Größenordnungen (und nicht einmal die gleichen Einheiten) unterscheiden. Die Mathematik schlägt fehl, wenn ein Computerprogramm versucht, Zahlen zu addieren und zu subtrahieren, die um so viele Größenordnungen variieren (für eine doppelte Genauigkeit) Nummer,
Der Trick besteht normalerweise darin, gemeinsame Einheiten zu verwenden, aber bei einigen Problemen ist dies auch dann ein Problem, wenn Variablen um zu viele Größenordnungen variieren. Wichtiger ist es, Ihre Zahlen so zu skalieren, dass sie in der Größe ähnlich sind.
Als nächstes sehen Sie möglicherweise Probleme mit großen Zahlen und kleinen Abweichungen bei diesen Zahlen. Angenommen, Sie versuchen, ein Polynommodell mittlerer Ordnung mit Daten zu erstellen, bei denen alle Eingaben im Intervall [1,2] liegen. Das Quadrieren, Würfeln usw. von Zahlen in der Größenordnung von 1 oder 2 verursacht keine Probleme, wenn mit doppelter Genauigkeit arithmetisch gearbeitet wird. Alternativ können Sie jeder Zahl 1e12 hinzufügen. Theoretisch wird die Mathematik dies zulassen. Alles, was es tut, ist die Verschiebung eines Polynommodells, das wir auf der x-Achse erstellen. Es hätte genau die gleiche Form, würde aber mit 1e12 nach rechts übersetzt. In der Praxis wird die lineare Algebra aufgrund von Rangmangelproblemen kläglich versagen. Sie haben nur die Daten übersetzt, aber plötzlich tauchen einzelne Matrizen auf.
Normalerweise ist der Kommentar ein Vorschlag zum "Zentrieren und Skalieren Ihrer Daten". Effektiv bedeutet dies, dass die Daten so verschoben und skaliert werden müssen, dass sie einen Mittelwert nahe Null und eine Standardabweichung von ungefähr 1 aufweisen. Dies verbessert die Konditionierung der meisten Polynommodelle erheblich und verringert die Rangdefizitprobleme.
Weitere Gründe für Rangmängel liegen vor. In einigen Fällen wird es direkt in das Modell eingebaut. Angenommen, ich gebe die Ableitung einer Funktion an. Kann ich daraus eindeutig auf die Funktion selbst schließen? Natürlich nicht, denn Integration beinhaltet eine Integrationskonstante, einen unbekannten Parameter, der im Allgemeinen durch Kenntnis des Werts der Funktion zu einem bestimmten Zeitpunkt abgeleitet wird. Tatsächlich tritt dies manchmal auch bei Schätzungsproblemen auf, bei denen die Singularität eines Systems von der fundamentalen Natur des untersuchten Systems abgeleitet wird.
Ich habe sicherlich einige der vielen Gründe für einen Rangmangel in einem linearen System ausgelassen, und ich habe jetzt zu lange mitgeschwatzt. Hoffentlich habe ich es geschafft, die von mir behandelten Fragen in einfachen Worten zu erläutern und das Problem zu lösen.
quelle
Für die Definition des Rangs einer Matrix können Sie sich auf jedes gute Lehrbuch über lineare Algebra beziehen oder sich die Wikipedia-Seite ansehen .
Eine Matrix wird als voller Rang bezeichnet, wenn , und ihre Spalten sind keine lineare Kombination voneinander. In diesem Fall ist die Matrix positiv definit, was impliziert, dass sie eine Inverse .n×p X n≥p p×p XTX (XTX)−1
Wenn nicht den vollen Rang hat, wird eine der Spalten von den anderen vollständig erklärt, in dem Sinne, dass es eine lineare Kombination der anderen ist. Ein einfaches Beispiel ist das Duplizieren einer Spalte. Dies kann auch passieren, wenn Sie eine 0-1-Variable haben und eine Spalte nur aus 0 oder nur 1 besteht. In diesem Fall ist der Rang der Matrix kleiner als und hat keine Inverse.X X n XTX
Da die Lösung vieler Regressionsprobleme (einschließlich der logistischen Regression) das Berechnungsintermediat , ist es dann unmöglich, die Parameter des Modells abzuschätzen. Aus Neugier können Sie hier überprüfen , wie dieser Begriff in die Formel der multiplen linearen Regression eingebunden ist.(XTX)−1
Das war es für absoluten Rangmangel. Aber manchmal zeigt sich das Problem, wenn die Matrix "fast" nicht den vollen Rang hat, wie von @woodchips ausführlich beschrieben. Dieses Problem wird üblicherweise als Multikollinearität bezeichnet . Dieses Problem ist ziemlich häufig. Weitere Informationen zum Umgang mit diesem Problem finden Sie hier und da in verwandten Beiträgen .X
quelle
Die Antwort von user974 ist vom Modell her fantastisch, und die von gui11aume ist vom mathematischen Standpunkt aus fantastisch. Ich möchte die frühere Antwort streng aus einer gemischten Modellierungsperspektive verfeinern : speziell aus einer verallgemeinerten gemischten Modellierungsperspektive (GLMM). Wie Sie sehen, haben Sie auf die R-Funktion verwiesen, die
mer_finalize
im fantastischenlme4
Paket enthalten ist. Sie sagen auch, dass Sie ein logistisches Regressionsmodell anpassen.Es gibt viele Probleme, die bei solchen Arten von numerischen Algorithmen auftreten. Die Frage der Matrixstruktur der Modellmatrix fester Effekte ist sicherlich eine Überlegung wert, wie der Benutzer974 anspielt. Dies ist jedoch sehr einfach zu beurteilen. Berechnen
model.matrix
Sie einfach Ihre Argumenteformula=
unddata=
Argumente in einem Modell und nehmen Sie deren Determinante mithilfe derdet
Funktion. Zufällige Effekte erschweren jedoch die Interpretation, die numerische Schätzroutine und den Rückschluss auf die festen Effekte erheblich (was Sie normalerweise als Regressionskoeffizienten in einem "regulären" Regressionsmodell betrachten).Angenommen, Sie haben im einfachsten Fall nur ein zufälliges Abfangmodell. Dann denken Sie im Grunde, dass es Tausende von nicht gemessenen Heterogenitätsquellen gibt, die in wiederholten Messungen innerhalb von Clustern konstant gehalten werden. Sie schätzen einen "großen" Abschnitt, berücksichtigen aber die Heterogenität, indem Sie davon ausgehen, dass die clusterspezifischen Abschnitte eine mittlere Normalverteilung haben. Die Abschnitte werden iterativ geschätzt und zum Aktualisieren der Modelleffekte verwendet, bis die Konvergenz erreicht ist (die Log-Wahrscheinlichkeit - oder eine Annäherung daran - wird maximiert). Das gemischte Modell ist sehr einfach vorzustellen, aber mathematisch gesehen ist die Wahrscheinlichkeit sehr komplex und anfällig für Probleme mit Singularitäten, lokalen Minima und Grenzpunkten (Odds Ratios = 0 oder unendlich). Gemischte Modelle haben keine quadratischen Wahrscheinlichkeiten wie kanonische GLMs.
Leider haben Venerables und Ripley nicht viel in die Diagnose von Konvergenzfehlern investiert. Es ist praktisch unmöglich, über die Vielzahl möglicher Fehler zu spekulieren, die zu einer solchen Nachricht führen. Betrachten Sie dann die Diagnosetypen, die ich unten verwende:
Alternativ können Sie verschiedene Modellierungsansätze in Betracht ziehen:
quelle