Angenommen, ich möchte einen binären Klassifikator erstellen. Ich habe mehrere tausend Features und nur ein paar 10er Samples. Ich habe einen guten Grund zu der Annahme, dass die Klassenbezeichnung mit nur wenigen Funktionen genau vorhergesagt werden kann, aber ich habe keine Ahnung, welche . Ich möchte auch, dass die endgültige Entscheidungsregel einfach zu interpretieren / erklären ist, was eine kleine Anzahl von Funktionen erforderlich macht. Bestimmte Untergruppen meiner Funktionen sind stark korreliert, sodass die Auswahl der aussagekräftigsten Funktionen unabhängig voneinander nicht funktioniert. Ich möchte auch in der Lage sein, Hypothesentests für meine Funktionen sinnvoll durchzuführen.
Ist das folgende schrittweise Regressionsverfahren unter diesen Bedingungen sinnvoll:
Wählen Sie unter Berücksichtigung der bereits im Modell vorhandenen Features (oder nur des Abschnitts bei der ersten Iteration) das Feature aus, das beim Hinzufügen zum Modell das größte Log-Likelihood-Verhältnis erzeugt. Verwenden Sie den Likelihood-Ratio-Chi-Quadrat-Test, um einen nominalen P-Wert für jeden in dieser Auswahl durchgeführten Hypothesentest zu berechnen. Die Null hier ist, dass das Hinzufügen der zusätzlichen Variablen zum Modell keine zusätzliche Vorhersagefähigkeit bietet. Die Alternative ist, dass sie die Vorhersagefähigkeit erhöht
Behandle die in Schritt 1 jeder Iteration getesteten Hypothesen als eine Familie und berechne die Rate falscher Entdeckungen für den kleinsten P-Wert (für das ausgewählte Merkmal) mit etwas wie Benjamini-Hochberg.
Springe zu 1, es sei denn, einige Stoppkriterien sind erfüllt.
Geben Sie die falschen Erkennungsraten für die einzelnen Features an, jedoch nicht den P-Wert für das gesamte Modell (da dieser Wert massiv erhöht wird). Jeder dieser mehrfach testkorrigierten P-Werte repräsentiert die statistische Signifikanz dieses Merkmals bei allen zuvor zum Modell hinzugefügten Merkmalen.
Vermeidet man so etwas unter diesen Umständen erfolgreich alle typischen Kritikpunkte der schrittweisen Regression? Sind die auf diese Weise berechneten Falscherkennungsraten angemessen?
Antworten:
Ich würde Ihnen dieses Verfahren nicht empfehlen. Meine Empfehlung lautet: Dieses Projekt abbrechen. Gib einfach auf und geh weg. Sie haben keine Hoffnung, dass dies funktioniert.
Quelle für Bild
Abgesehen von den Standardproblemen bei der schrittweisen Auswahl (siehe hier ) haben Sie in Ihrem Fall sehr wahrscheinlich perfekte Vorhersagen aufgrund der Trennung in einem so hochdimensionalen Raum.
Ich habe keine genauen Angaben zu Ihrer Situation, aber Sie geben an, dass Sie "nur wenige Zehnerproben" haben. Lassen Sie uns gemeinnützig sein und sagen, Sie haben 90. Sie sagen weiter, Sie haben "mehrere tausend Funktionen". Stellen wir uns vor, Sie haben "nur" 2.000. Nehmen wir der Einfachheit halber an, dass alle Ihre Funktionen binär sind. Sie "glauben, dass die Klassenbezeichnung mit nur wenigen Features genau vorhergesagt werden kann", nehmen wir an, dass Sie nach Sätzen mit maximal 9 Features suchen. Zuletzt stellen wir uns vor, dass die Beziehung deterministisch ist, sodass die wahre Beziehung in Ihren Daten immer perfekt vorhanden ist. (Wir können diese Zahlen und Annahmen ändern, aber das sollte das Problem nur verschlimmern.) Nun, Wie gut könnten Sie diese Beziehung unter diesen (großzügigen) Bedingungen wiederherstellen? Das heißt, wie oft würde der richtige Satz der einzige sein, der eine perfekte Genauigkeit ergibt? Oder anders ausgedrückt, wie viele Sätze von neun Features passen auch zufällig alleine?
Einige (zu) einfache Berechnungen und Simulationen sollten Hinweise auf diese Frage liefern. Erstens, mit 9 Variablen, von denen jede 0 oder 1 sein kann, könnte eine Beobachtung Muster zeigen , aber Sie werden nur 90 Beobachtungen haben. Somit ist es durchaus möglich, dass für eine gegebene Menge von 9 Binärvariablen jede Beobachtung eine andere Menge von Prädiktorwerten aufweist - es gibt keine Wiederholungen. Ohne Wiederholungen mit denselben Prädiktorwerten, bei denen einige y = 0 und einige y = 1 haben, haben Sie eine vollständige Trennung, und eine perfekte Vorhersage jeder Beobachtung ist möglich.29=512
Unten habe ich eine Simulation (in R codiert), um zu sehen, wie oft Sie möglicherweise keine Muster von x-Werten mit sowohl 0 als auch 1 haben. Die Art und Weise, wie es funktioniert, ist, dass ich eine Reihe von Zahlen von 1 bis 512 erhalte, die die möglichen Muster darstellen, und sehe, ob eines der Muster in der ersten 45 (das können die Nullen sein) mit einem der Muster in der zweiten 45 übereinstimmt (das könnte die 1 sein). Dies setzt voraus, dass Sie über perfekt ausgewogene Antwortdaten verfügen, die Ihnen den bestmöglichen Schutz gegen dieses Problem bieten. Beachten Sie, dass einige replizierte x-Vektoren mit unterschiedlichen y-Werten Sie nicht wirklich aus dem Wald bringen, sondern nur bedeuten, dass Sie nicht jede einzelne Beobachtung in Ihrem Datensatz perfekt vorhersagen können, was der sehr strenge Standard I ist benutze hier.
Die Simulation schlägt vor, dass Sie dieses Problem mit ungefähr 1,8% der Sätze von 9 x-Variablen haben würden. Wie viele 9er-Sets gibt es? Streng genommen wäre das (da wir festgelegt haben, dass die wahren 9 deterministischen Kausalvariablen in Ihrer Menge sind). Viele dieser Sätze werden sich jedoch überlappen. Es wird nicht überlappende 9er-Sätze in einer bestimmten Partition Ihrer Variablen geben (wobei viele solcher Partitionen möglich sind). Daher können wir innerhalb einer bestimmten Partition Sätze von 9 x-Variablen erwarten , die jede Beobachtung in Ihrem Datensatz perfekt vorhersagen. 1991 / 9 ≈ 221 221 × 0,018 ≈ 41991 choose 9=1.3×1024 1991/9≈221 221×0.018≈4
Beachten Sie, dass diese Ergebnisse nur für Fälle gelten, in denen Sie einen relativ größeren Datensatz haben (innerhalb der "Zehner"), eine relativ kleinere Anzahl von Variablen (innerhalb der "Tausender"), und nur nach Fällen suchen, in denen jede einzelne Beobachtung perfekt vorhergesagt werden kann ( Es wird noch viele weitere Sets geben, die nahezu perfekt sind. Es ist unwahrscheinlich, dass Ihr tatsächlicher Fall "so gut" ausfällt. Darüber hinaus haben wir festgelegt, dass die Beziehung vollkommen deterministisch ist. Was würde passieren, wenn in der Beziehung zufälliges Rauschen auftritt? In diesem Fall haben Sie immer noch ~ 4 (null) Sätze, die Ihre Daten perfekt vorhersagen, aber der richtige Satz ist möglicherweise nicht darunter .
Tl; dr , der grundlegende Punkt hier ist, dass Ihr Variablensatz viel zu groß / hochdimensional und Ihre Datenmenge viel zu klein ist, als dass irgendetwas möglich wäre. Wenn es wirklich stimmt, dass Sie "Dutzende" von Samples, "Tausende" von Variablen und absolut keine Ahnung haben, welche Variablen richtig sein könnten, haben Sie keine Hoffnung, mit irgendeiner Prozedur irgendwohin zu gelangen. Mach noch etwas mit deiner Zeit.
quelle
Für die Zwecke meiner Antwort bezeichne ich die interessierende binäre Variable als und die Prädiktoren X i j ; ( j = 1 , … , p ) und nehme an, dass Y Werte von Y = 0 und Y = 1 hat . Es ist auch zweckmäßig, γ m zu definieren , um das Modell m anzuzeigen ; ( m = 1Yi ;(i=1,…,n) Xij ;(j=1,…,p) Y Y=0 Y=1 γm , so dass & ggr; T m X i j gleich X i j ist, wenn sich diej-teVariable imm-tenModell befindet, undandernfalls 0 .m ;(m=1,..,M) γTmXij Xij 0
Ich würde eine Änderung an Ihrer Methode vornehmen und eine Begründung geben. Sie verwenden ein Klassifikatormodell, das heißt, Sie möchten den Wert einer kategorialen Variablen für die Zukunft vorhersagen. Daher sollten Sie wirklich eine Vorhersageregel definieren (wenn Sie eine neue Menge von Prädiktoren , wie werden Sie vorhersagen, ob Y = 1 ist oder Y = 0 ).Xj Y=1 Y=0
Daher würde ich vorschlagen, die Vorhersage direkt zu bewerten und nicht das Wahrscheinlichkeitsverhältnis. Die vorhergesagte Beobachtung sollte jedoch nicht in die Schätzung des Modells einbezogen werden (da dies genau die Situation ist, mit der Sie konfrontiert sind, wenn Sie Ihr Modell tatsächlich verwenden). Also mach einen neuen Schritt 1) (fett ist mein Änderungsvorschlag). 1) Wählen Sie unter Berücksichtigung der bereits im Modell vorhandenen Features (oder nur des Abschnitts bei der ersten Iteration) das Feature aus, das beim Hinzufügen zum Modell die besten Vorhersagen liefert .
Jetzt musst du dich entscheiden
Ich werde für jedes einen Vorschlag machen:
Schrittweise kann es riskant sein, "lokale Maxima" anstelle von "globalen Maxima" zu finden, insbesondere, weil Sie über eine so große Anzahl von Prädiktoren verfügen (dies ist ein großer "Optimierungsbereich", der wahrscheinlich multimodal ist - das heißt, es gibt viele "beste" Modelle)
Ich denke, Sie werden es viel einfacher finden, Ihre Wahl des endgültigen Modells einem Nicht-Statistiker zu rechtfertigen, als zu erklären, warum der p-Wert anzeigt, dass das Modell gut ist.
Zwei abschließende Bemerkungen:
quelle