Wie kann man die in King und Zeng (2001) beschriebenen Korrekturen für seltene Ereignisse vornehmen?


8

Ich habe einen Datensatz mit einer binären (Überlebens-) Antwortvariablen und 3 erklärenden Variablen ( A= 3 Ebenen, B= 3 Ebenen, C= 6 Ebenen). In diesem Datensatz sind die Daten mit 100 Personen pro ABCKategorie ausgewogen . Ich studierte bereits die Wirkung von diesen A, Bund CVariablen , die mit diesem Datensatz; ihre Auswirkungen sind signifikant.

Ich habe eine Teilmenge. In jeder ABCKategorie wurden 25 der 100 Personen, von denen ungefähr die Hälfte lebt und die Hälfte tot ist (wenn weniger als 12 leben oder tot sind, wurde die Anzahl mit der anderen Kategorie vervollständigt), weiter auf eine 4. Variable untersucht ( D). Ich sehe hier drei Probleme:

  1. Ich muss die Daten der in King und Zeng (2001) beschriebenen Korrekturen seltener Ereignisse gewichten , um zu berücksichtigen, dass die ungefähren 50% - 50% nicht gleich 0/1 Anteil in der größeren Stichprobe sind.
  2. Diese nicht zufällige Stichprobe von 0 und 1 führt zu einer unterschiedlichen Wahrscheinlichkeit, dass Personen in jeder der ABCKategorien befragt werden. Ich denke, ich muss echte Anteile aus jeder Kategorie verwenden und nicht den globalen Anteil von 0/1 in der großen Stichprobe .
  3. Diese 4. Variable hat 4 Ebenen, und die Daten sind in diesen 4 Ebenen wirklich nicht ausgeglichen (90% der Daten liegen innerhalb einer dieser Ebenen, z. B. Ebene D2).

Ich habe das Papier von King und Zeng (2001) sorgfältig gelesen sowie diese Lebenslauffrage , die mich zu Papier von King und Zeng (2001) führte, und später dieses andere , das mich dazu veranlasste, das logistfPaket auszuprobieren (ich benutze R). Ich habe versucht, das anzuwenden, was ich von King und Zheng (2001) verstanden habe, aber ich bin nicht sicher, ob das, was ich getan habe, richtig ist. Ich habe verstanden, dass es zwei Methoden gibt:

  • Ich habe verstanden, dass Sie für die vorherige Korrekturmethode nur den Achsenabschnitt korrigieren. In meinem Fall ist der Achsenabschnitt die A1B1C1Kategorie, und in dieser Kategorie beträgt das Überleben 100%, sodass das Überleben im großen Datensatz und in der Teilmenge gleich ist und daher die Korrektur nichts ändert. Ich vermute, dass diese Methode sowieso nicht auf mich zutreffen sollte, da ich keinen wahren Gesamtanteil habe, sondern einen Anteil für jede Kategorie, und diese Methode ignoriert dies.
  • Für die Gewichtungsmethode: Ich habe w i berechnet und nach dem, was ich in der Arbeit verstanden habe: "Alles, was Forscher tun müssen, ist, w i in Gleichung (8) zu berechnen , es als Gewicht in ihrem Computerprogramm auszuwählen und dann auszuführen ein Logit-Modell ". Also lief ich zuerst glmals:

    glm(R~ A+B+C+D, weights=wi, data=subdata, family=binomial)
    

    Ich bin sicher nicht , dass ich sollte enthalten A, Bund Cals erklärende Variablen, da ich sie normalerweise erwarten in diesem Substichprobe keinen Einfluss auf das Überleben haben (jede Kategorie enthält etwa 50% tot und lebendig). Auf jeden Fall sollte sich die Ausgabe nicht wesentlich ändern, wenn sie nicht signifikant sind. Mit dieser Korrektur erhalte ich eine gute Anpassung an das Niveau D2(das Niveau bei den meisten Personen), aber überhaupt nicht für andere Niveaus D( D2überwiegt). Siehe die Grafik oben rechts:

Passt Passend für ein nicht gewichtetes glmModell und ein glmmit w i gewichtetes Modell . Jeder Punkt repräsentiert eine Kategorie. Proportion in the big datasetist der wahre Anteil von 1 in der ABCKategorie im großen Datensatz, Proportion in the sub datasetist der wahre Anteil von 1 in der ABCKategorie im Unterdatensatz und Model predictionssind die Vorhersagen von glmModellen, die mit dem Unterdatensatz ausgestattet sind. Jedes pchSymbol repräsentiert eine bestimmte Ebene von D. Dreiecke sind eben D2.

Erst später, wenn ich logistfsehe , dass es eine gibt , denke ich, dass dies vielleicht nicht so einfach ist. Ich bin mir jetzt nicht sicher. Dabei logistf(R~ A+B+C+D, weights=wi, data=subdata, family=binomial)erhalte ich Schätzungen, aber die Vorhersagefunktion funktioniert nicht, und der Standardmodelltest gibt unendlich viele Chi-Quadrat-Werte (außer einem) und alle p-Werte = 0 (außer 1) zurück.

Fragen:

  • Habe ich King und Zeng (2001) richtig verstanden? (Wie weit bin ich davon entfernt, es zu verstehen?)
  • In meinen glmAnfall A, Bund Cerhebliche Auswirkungen haben. Das alles bedeutet, dass ich viel von den halben / halben Anteilen von 0 und 1 in meiner Teilmenge und unterschiedlich in den verschiedenen ABCKategorien abweiche - ist das nicht richtig?
  • Kann ich die Gewichtungskorrektur von King und Zeng (2001) anwenden, obwohl ich für jede Kategorie einen Wert von tau und einen Wert von anstelle globaler Werte habe?y¯ABC
  • Ist es ein Problem, dass meine DVariable so unausgeglichen ist, und wenn ja, wie kann ich damit umgehen? (Unter Berücksichtigung der Tatsache, dass ich für die Korrektur seltener Ereignisse bereits gewichten muss ... Ist eine "doppelte Gewichtung", dh eine Gewichtung der Gewichte, möglich?) Danke!

Bearbeiten : Sehen Sie, was passiert, wenn ich A, B und C aus den Modellen entferne. Ich verstehe nicht, warum es solche Unterschiede gibt.

Passt2 Passt ohne A, B und C als erklärende Variablen in Modellen

Antworten:


2

Die logistf() Funktion implementiert keine logistische Regression für seltene Ereignisse, die von der relogit() Funktion im Zelig-Paket auf CRAN ausgeführt wird. Sie sollten das testen!


Ok, ich habe nachgesehen und kann relogit () nicht verwenden, da ich, wie gesagt, für jede ABC-Kategorie anstelle eines globalen Werts den Wert tau habe und mit dieser Funktion keinen Vektor von eingeben kann gleiche Länge wie mein Datensatz wie Tau. Nach dem, was ich über das Schreiben der Funktion verstanden habe, denke ich, dass das, was getan wird, richtig ist (außer dass ich den fortgeschritteneren Bias-Korrektur-Teil nicht gemacht habe ...).
Aurelie

2

Ich erkannte, dass meine Vergleiche von angepassten und tatsächlichen Proportionen in der ersten Grafik, obere rechte Ecke, nicht der beste Weg sind, um die Modellanpassung zu bewerten, da ich in den Big Data Proportionen für ABC-Kategorien berechnen kann, aber mit der Modellanpassung wo Alle vier Variablen sind enthalten, Proportionen werden für jede ABCD-Kategorie vorhergesagt.

Ich habe ein neues Modell in die Subdaten eingefügt, wo ich D entfernt habe:

glm(R~A+B+C, family=binomial, data=subdata)

Damit ich die Vorhersagen dieses Modells, das mit dem Subdataset ausgestattet ist, und die wahren Proportionen im großen Datensatz vergleichen und beurteilen kann, ob meine Gewichtung das tut, was ich von ihr erwarte.

Das Ergebnis ist:

passt3 Vorhersagen des neuen Modells gegen Proportionen im großen Datensatz.

Jetzt denke ich, die Antwort lautet: Ja, definitiv.

Daher beantwortete dies meine Fragen 1 (ich verstehe King und Zheng (2001), zumindest die Gewichtungsmethode) und 3 (ich kann die Gewichtungskorrektur von King und Zheng (2001) anwenden, obwohl ich einen Wert von und einen Wert von für jede ABC-Kategorie anstelle von globalen Werten).τy¯

Die beiden anderen Fragen waren:

  • Warum ist es so wichtig, A, B und C in das Modell aufzunehmen, um eine gute Anpassung zu erhalten, und warum ihre Wirkung signifikant ist. Liegt es daran, wie ich vorgeschlagen habe, dass ich viel von den halben / halben Anteilen von 0 und 1 in meiner Teilmenge und unterschiedlich in den verschiedenen ABC-Kategorien abweiche?

    -> Ich denke, meine Erwartung, dass die Aufnahme von A + B + C in das Modell keine Auswirkung haben sollte, da alle ABC-Kategorien ungefähr die Hälfte der 0- und 1-Beobachtung enthalten sollten, würde mit einem nicht gewichteten linearen Modell zutreffen (tatsächlich, wenn Sie meine vergleichen Bei zwei Grafiken in der oberen linken Ecke gibt es keinen großen Unterschied zwischen ihnen ... aber dennoch haben B und C einen signifikanten Effekt in diesem nicht gewichteten linearen Modell. Ich werde dies als Folge der Abweichung von den 50 betrachten / 50), aber nicht unbedingt mit einem gewichteten linearen Modell.

  • Ist es ein Problem, dass meine D-Variable so unausgeglichen ist, und wenn ja, wie kann ich damit umgehen? (Ist "Doppelgewichtung", dh Gewichtung der Gewichte, möglich?).

    -> Ich denke darüber nach, die Anova-Funktion der 'car'Bibliothek für eine logistische Regression (Angabe 'test.statistic="LR"') zu verwenden. In diesem Fall gewichtet die Funktion die Zellen direkt, um SS vom Typ II zu erstellen, sodass ich die 'weight'Option für die Korrektur seltener Ereignisse beibehalten kann.


Ich habe gerade diese CV-Frage gesehen , die darauf hindeutet, dass die Verwendung der Anova-Funktion aus der Fahrzeugbibliothek mit dem LR-Test nicht angepasst ist. Ich werde diesen Lebenslauf-Link sorgfältig lesen, um Antworten zu finden.
Aurelie

Ich habe die 'logistf'-Funktion eingehender untersucht, da sie anscheinend die Methode enthält, die die testgewichteten Modelle als Bedeutung bezeichnen. Die Koeffizienten, die ich mit der Funktion 'logistf' erhalte, liegen sehr nahe an den Koeffizienten, die ich mit der Funktion 'glm' erhalte (wenn ich zurück in ungerade Verhältnisse transformiere und zeichne, erhalte ich die Linie ax = y).
Aurelie

Obwohl es keine Methode gibt, um die 'logistf'-Vorhersagen und angepassten Werte zu erhalten, würde die Darstellung der' logistf'-angepassten Werte wie die letzte Darstellung aussehen, die ich bereitgestellt habe (die Anpassung ist gut).
Aurelie
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.