Modellauswahl und Modellleistung in der logistischen Regression


9

Ich habe eine Frage zur Modellauswahl und Modellleistung bei der logistischen Regression. Ich habe drei Modelle, die auf drei verschiedenen Hypothesen basieren. Die ersten beiden Modelle (nennen wir sie z und x) haben nur eine erklärende Variable in jedem Modell, und das dritte (nennen wir es w) ist komplizierter. Ich verwende AIC für die Variablenauswahl für das w-Modell und dann AIC für den Vergleich, welches der drei Modelle die abhängige Variable am besten erklärt. Ich habe festgestellt, dass das w-Modell den niedrigsten AIC aufweist, und möchte nun einige Leistungsstatistiken für dieses Modell erstellen, um eine Vorstellung von der Vorhersagekraft des Modells zu erhalten. Ich weiß nur, dass dieses Modell besser ist als die beiden anderen, aber nicht, wie gut es ist.

Da ich alle Daten verwendet habe, um das Modell zu lernen (um alle drei Modelle vergleichen zu können), wie gehe ich mit der Modellleistung vor? Nach dem, was ich gesammelt habe, kann ich nicht einfach eine k-fache Kreuzvalidierung für das endgültige Modell durchführen, das ich aus der Modellauswahl mit AIC erhalten habe, sondern muss mit allen erklärenden Variablen von vorne beginnen. Ist das richtig? Ich würde denken, dass es das endgültige Modell ist, das ich mit AIC ausgewählt habe, und ich möchte wissen, wie gut es funktioniert, aber mir ist klar, dass ich alle Daten trainiert habe, damit das Modell möglicherweise voreingenommen ist. Wenn ich also von vorne mit allen erklärenden Variablen in allen Falten beginnen sollte, erhalte ich für einige Falten unterschiedliche endgültige Modelle. Kann ich einfach das Modell aus der Falte auswählen, das die beste Vorhersagekraft bietet, und dieses auf den vollständigen Datensatz anwenden, um es zu vergleichen AIC mit den beiden anderen Modellen (z und x)? Oder wie geht das?

Der zweite Teil meiner Frage ist eine grundlegende Frage zur Überparametrisierung. Ich habe 156 Datenpunkte, 52 sind 1, der Rest sind 0. Ich habe 14 erklärende Variablen zur Auswahl für das w-Modell. Mir ist klar, dass ich aufgrund von Überparametrisierung nicht alle einbeziehen kann. Ich habe gelesen, dass Sie nur 10% der Gruppe der abhängigen Variablen mit den wenigsten Beobachtungen verwenden sollten wäre nur 5 für mich. Ich versuche, eine Frage in der Ökologie zu beantworten. Ist es in Ordnung, die Startvariablen auszuwählen, die meiner Meinung nach die abhängigen am besten einfach anhand der Ökologie erklären? Oder wie wähle ich die erklärenden Ausgangsvariablen aus? Es fühlt sich nicht richtig an, einige Variablen vollständig auszuschließen.

Ich habe also wirklich drei Fragen:

  • Könnte es in Ordnung sein, die Leistung an einem Modell zu testen, das anhand des vollständigen Datensatzes mit Kreuzvalidierung trainiert wurde?
  • Wenn nicht, wie wähle ich das endgültige Modell bei der Kreuzvalidierung aus?
  • Wie wähle ich die Startvariablen aus, damit ich sie überparametrieren möchte?

Entschuldigung für meine unordentlichen Fragen und meine Unwissenheit. Ich weiß, dass ähnliche Fragen gestellt wurden, aber ich fühle mich immer noch ein wenig verwirrt. Schätzen Sie alle Gedanken und Vorschläge.

Antworten:


7

Es ist wahr, dass es besser ist, einen Testdatensatz zur Validierung Ihres Modells zu verwenden. Sie können jedoch immer noch sagen, wie gut Ihr Modell mit Ihren Daten funktioniert hat, solange Sie ehrlich sind, was Sie getan haben. Was Sie nicht wirklich tun können, ist zu sagen, dass dies bei anderen Daten gut funktioniert: Dies wird wahrscheinlich nicht der Fall sein. Leider deuten viele veröffentlichte Artikel zumindest auf diese falsche Vorstellung hin.

Du fragst

Ist es in Ordnung, die Startvariablen auszuwählen, die meiner Meinung nach die abhängigen am besten einfach anhand der Ökologie erklären?

Es ist nicht nur in Ordnung, es ist auch besser als jedes automatisierte Schema. In der Tat könnten dies auch die endgültigen Variablen sein. Es hängt etwas vom Umfang des Fachwissens ab. Wenn nicht viel über das bekannt ist, was Sie erforschen, ist möglicherweise ein explorativerer Ansatz erforderlich. Aber wenn Sie guten Grund zu der Annahme haben, dass bestimmte Variablen im Modell enthalten sein sollten, setzen Sie sie auf jeden Fall ein. Und ich würde argumentieren, sie dort zu belassen, auch wenn sie nicht signifikant sind.


1

Wenn Sie eine Modellauswahl treffen, ist es meiner Meinung nach besser, jedes Modell gründlich zu suchen und zu gewichten, als Kirschen zu pflücken. Sie haben nur 14 Variablen, was sicherlich machbar ist - 16384 verschiedene Modelle sind nicht unerschwinglich groß, insbesondere weil die Stichprobengröße klein ist. Ich würde mir auch normalisierte Gewichte ansehen, definiert durch:

wm=[lexp(12[AIClAICm])]1

11

Sie können AIC auch durch BIC oder einen anderen auf Strafen basierenden IC ersetzen, um festzustellen, wie stark die Gewichte von der verwendeten spezifischen Komplexitätsstrafe abhängen.


Die Verwendung von AIC bei allen möglichen Modellen ist ein Prozess mit extremer Vielfalt, für den ich mich über die Leistung wundere. Allgemein gesprochen ist es nicht immer logisch, dies als ein Problem der variablen Auswahl zu betrachten, sondern als ein Problem der Bestrafung (Schrumpfung).
Frank Harrell

Gibt es einen Prozess, der bei der Modellauswahl keine extreme Vielfalt aufweist? Sie haben es mit einem massiven diskreten Raum zu tun - dies führt immer zu einer großen Anzahl von Vergleichen. Ich denke, die Frage ist eher, ob der implizite Vorrang vor den Modellen vernünftig ist oder nicht.
Wahrscheinlichkeitslogik

Gut ausgedrückt. Aber ich halte die meisten Modellauswahlübungen für unnötig (dh Sparsamkeit ist nicht dein Freund) und das Ergebnis, überhaupt keine Vorgesetzten zu haben.
Frank Harrell

Ich stimme auch zu, ich denke, Bayes-Faktoren werden am besten für Fragen der Modellstruktur verwendet, beispielsweise für die Verwendung der Normalverteilung oder der t-Verteilung. Sie sind für die kovariate Selektion nicht unbrauchbar, aber im Vergleich zum Schrumpfen ineffizient.
Wahrscheinlichkeitslogik

Entschuldigen Sie meinen späten Kommentar, aber kennen Sie eine einfache Möglichkeit, dies in R zu berechnen? Ich habe die AIC: s in einer Liste oder Matrix. Ich bin ziemlich neu in R, daher ist jeder komplizierte Funktionsaufbau schwierig. Vielen Dank!
mael

0

Antwort "Könnte es in Ordnung sein, die Leistung eines Modells zu testen, das mit Kreuzvalidierung auf den vollständigen Datensatz trainiert wurde?" NEIN, ich denke nicht, dass das in Ordnung ist. Sie sollten alle 3 Modelle an dieselbe Teilmenge Ihres Datensatzes anpassen. Führen Sie dann die Kreuzvalidierung durch, um festzustellen, welche besser ist.


1
Wenn ich Sie also richtig verstehe, sollte ich nur ein Trainings- und ein Test-Set für alle Modelle verwenden? Kann ich meine 5 Variablen dann noch für das letzte Modell verwenden oder besteht die Gefahr einer Überparametrisierung? Und ist es nicht ein Risiko mit nur einem Trainings- und Testsatz - da es sehr davon abhängt, wo die Aufteilung mit den relativ wenigen Daten sein wird, die ich habe - oder ist das kein Grund zur Sorge? Andernfalls scheint dies der richtigste Weg zu sein.
mael

0

Könnte es in Ordnung sein, die Leistung an einem Modell zu testen, das anhand des vollständigen Datensatzes mit Kreuzvalidierung trainiert wurde?

Ich denke nicht. Vielleicht wäre eine bessere Methode, jedes der drei Modelle durch wiederholte Kreuzvalidierung zu bewerten. Da Sie Ihre Funktionen aufgrund von Vorkenntnissen ausgewählt haben, müssen Sie sich keine Gedanken über die Auswahl der Funktionen machen. Mit dieser Methode können Sie die Leistung des Modells bewerten.

Wenn nicht, wie wähle ich das endgültige Modell bei der Kreuzvalidierung aus?

Nachdem Sie die Leistung Ihres Modells durch wiederholte Kreuzvalidierung bewertet haben, können Sie das endgültige Modell anhand aller verfügbaren Daten trainieren.

Wie wähle ich die Startvariablen aus, damit ich sie überparametrieren möchte?

Wenn ich das richtig verstehe: Wie von einem Mitwirkenden oben vorgeschlagen, können Sie Ihre Features entweder basierend auf den Vorkenntnissen des Bereichs hinzufügen oder Sie müssen eine Feature-Auswahl innerhalb der Kreuzvalidierung durchführen, um eine Überanpassung zu vermeiden. Das gleiche Verfahren zur Auswahl von Merkmalen würde dann beim Training des endgültigen Modells auf alle Daten angewendet. Sie können dieses Modell nicht verwenden, um die allgemeine Leistung des Modells zu melden. Dies muss aus der Kreuzvalidierungsschätzung stammen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.