R: Vorhersage (0,1) in die Logistische regression in glm()
Ich versuche, das Modell einer "was wäre wenn" - situation in einem binären logit-Modell. Ich bin der Schätzung der Wahrscheinlichkeit, an einem test, da der Schwierigkeitsgrad der Prüfung (1=einfachste, 5=härteste), mit Geschlecht als Kontrolle. (Die Daten hier). Studenten verwaltet werden, ist eine Prüfung, die ist in der Regel hart ("HIGH" in den Daten). Aus dieser können wir schätzen die Auswirkungen der test-Schwierigkeit auf die Wahrscheinlichkeit der Weitergabe:
model = glm(PASS ~ as.factor(SEX) + as.factor(HIGH), family=binomial(link="logit"), data=df)
summary(model)
Können wir uns auch die vorhergesagten Wahrscheinlichkeiten der Weitergabe mit:
predict.high = predict(model, type="response")
Die Frage ist, was ist, wenn die "LOW" - test gegeben wurden, statt? Um die neue Wahrscheinlichkeiten, die wir tun können:
newdata = rename.vars(subset(df, select=c(-HIGH)), 'LOW','HIGH')
predict.low = predict(model, newdata=newdata, type="response")
Aber wie kann ich wissen, wie viele zusätzliche Studenten bestanden haben würde, in diesem Fall? Ist es eine offensichtliche Schalter in glm()
ich bin nicht zu sehen?
- Ich bin nicht klar, was die HOHEN und NIEDRIGEN stellen. Ich denke, dass HOHE Reichweiten von 1 bis 5 und also nicht GERING. Das lässt mich vermuten, es sind 10 verschiedene tests. Auch, prüfen, ob Sie auf der Stats-forum.
- Mark, ich bin im wesentlichen die Durchführung der simulation, D. H. das ersetzen der tatsächlichen Werte von "HOCH" mit "NIEDRIG".
- Okay, es scheint, dass HIGH steht für 5 tests. Nach Schätzung der Wahrscheinlichkeit der Weitergabe dieser 5 tests, die Sie verwenden das gleiche Modell, um vorherzusagen, die Wahrscheinlichkeit der übergabe von 5 neuen tests vertreten durch NIEDRIGE. Ich lief den code mit Ihren Daten nach der Installation des Pakets 'gregmisc'. Jedoch, ich habe nicht mein Exemplar von Gelman und Hill (2006) mit mir. Ich habe meine Anmerkungen zu Versionen Ihrer code-und kann vielleicht Graben Sie es aus über das Wochenende und versuchen herauszufinden, die Antwort, wenn Ihre Frage nicht beantwortet wird, zunächst von jemand anderem.
- Vielen Dank im Voraus, Mark. Da Sie erwähnen, G&H, ich möchte auch den Hinweis auf bayesglm() in den "arm" - Paket. Es ist sehr, sehr flexibel.
- Vielleicht habe ich nicht ein kompletter Griff die Frage noch nicht, aber dieses Verfahren scheint nicht ganz angemessen. Die
PASS
variable spiegelt lediglich die Weitergabe der schwierige Prüfung, richtig? So die Vorhersage über Ihr Modell würde nur richtig sein für Schüler, die sich für die schwierige Prüfung. Stellen Sie sich zwei Fuß-Rennen, die beide einen kilometer lang. Man befindet sich auf flachen Boden, der andere auf einem steilen Hügel. Basierend auf der Teilnehmer-mal von dem flachen Boden Rennen, ich denke, du wärst hart gedrückt, um vorherzusagen, Ihre Zeit für die bergauf-Rennen. Aber wie ich schon schrieb, vielleicht habe ich nicht ein kompletter Griff die Frage auf der hand! - Ben... Sie können sich "HIGH" und "LOW" einfach als zwei alternativen zieht der zahlen für die gleichen "Schwierigkeiten" - variable. Ich bin mit dem "HIGH" - Werte zur Schätzung der Koeffizienten-Werte. Wenn ich stecken Sie das "HOHE" Werte in die geschätzte Gleichung, bekomme ich einen Satz von vorhergesagten Wahrscheinlichkeiten. Wenn ich die Stecker in den "NIEDRIGEN" Werten in der gleichen geschätzte Gleichung - ich werde einen anderen Satz von vorhergesagten Werten. Ich kann das Gefühl der Differenz, die durch die überlagerung von zwei vorhergesagten Dichte-plots. Aber meine Frage ist ob es möglich ist, bekommen die Differenz in zahlen ausgedrückt. Ich will sagen, dass die Verwendung der "HOCH" - Werte
- (das ging in die Schätzung des Koeffizienten", sage ich Voraus, dass 800 Studierende übergeben. Nun, wenn ich einen Stecker in den "NIEDRIGEN" Werte statt, 1000 Studenten übergeben. Ist das möglich zu tun, der in R?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich noch nicht versucht zu Graben, mein code für die Vorhersage, dass ich schrieb, basierend auf Gelman und Hill (2006), die, ich glaube mich zu erinnern simulation. Ich habe immer noch die Absicht, das zu tun. Ein Aspekt Ihrer Frage, schien einzigartig in meiner begrenzten Erfahrung war, die ich gewohnt war, um die Vorhersage für eine einzelne Beobachtung (in diesem Fall ein einziger Schüler ein Einzel-test). Sie scheinen jedoch Vorhersagen möchten, einen Unterschied zwischen zwei Datensätzen Vorhersagen. In anderen Worten, Sie wollen Vorhersagen, wie viele weitere Schüler übergeben, wenn gegeben, eine Reihe von 5 einfachen Prüfungen eher als die ein-Satz von 5 harten Prüfungen.
Ich bin mir nicht sicher, ob Gelman und Hill (2006) abgedeckt. Sie auch scheinen möchten, tun Sie dies mit einem frequentistischen Ansatz.
Ich denke, dass, wenn Sie Vorhersagen kann für eine einzelne Beobachtung, so dass Sie ein Konfidenzintervall für jede Beobachtung, dann kann man vielleicht schätzen die gewichtete Durchschnittliche Wahrscheinlichkeit der Weitergabe innerhalb jeder Gruppe und subtrahieren Sie die beiden gewichtete Durchschnitte. Die delta-Methode verwendet werden könnte, um schätzen eines Konfidenzintervalls auf der gewichteten Mittelwerte und deren Differenz.
Kovarianz zwischen vorhergesagten Beobachtungen kann davon ausgegangen werden, auf 0 zu implementieren, der Ansatz.
Angenommen, wenn eine Kovarianz von 0 ist nicht zufriedenstellend, dann vielleicht ein Bayes-Ansatz besser wäre. Wieder, ich bin nur vertraut mit der Vorhersage für eine einzelne Beobachtung. Mit einem Bayes-Ansatz habe ich vorausgesagt eine einzige Beobachtung, indem die unabhängigen Variablen, nicht aber die abhängige variable, für die Beobachtung zu prognostizieren. Ich nehme an, Sie könnten Vorhersagen für jede Beobachtung in der gleichen Bayes-run (Vorhersagen, jeder Schüler in der HIGH und LOW). Die gewichteten Durchschnitte der übergabe von tests für jede Gruppe und die Differenz in den gewichteten Durchschnitt sind die abgeleiteten Parameter und ich vermute, dass könnte sich direkt in den code für die Bayes-logistic regression. Dann würden Sie Ihr Punkt-Schätzung und die Schätzung der Varianz für die Wahrscheinlichkeit der Weitergabe jede Gruppe von tests für den Unterschied in der Wahrscheinlichkeit der Weitergabe jede Gruppe von tests. Wenn Sie möchten, dass der Unterschied in der Anzahl der Studenten bestehen jede Gruppe von tests, die vielleicht aufgenommen werden könnte in die Bayes-code als abgeleitete parameter auch.
Erkenne ich diese beantworten, so weit, hat mehr Konversation als gewünscht werden könnten. Ich bin einfach der mapping-Strategien zu versuchen, ohne die Zeit hatte, noch zu versuchen, die Umsetzung dieser Strategien. Alle R und WinBUGS-code zu implementieren, der sowohl die vorgeschlagenen Strategien kostet mich vielleicht ein paar Tage. (WinBUGS oder OpenBUGS aufgerufen werden kann, innerhalb R.) ich werde fügen Sie den code, um diese Antwort, als ich entlang gehen. Wenn jemand hält meine vorgeschlagenen Strategien und/oder bevorstehende code, falsch, ich hoffe, Sie fühlen sich frei, um darauf hin meine Fehler und Korrekturen bieten.
BEARBEITEN
Unten ist code, der generiert gefälschte Daten und analysiert diese Daten mit einem frequentistischen und Bayes-Ansatz. Ich habe nicht noch den code zum implementieren der oben genannten Ideen für die Vorhersage. Ich werde versuchen, fügen Sie die Bayes ' sche Vorhersage code in den nächsten 1-2 Tagen. Ich habe nur drei tests statt fünf. Die Art und Weise Sie den code unten geschrieben Sie können ändern, die Anzahl der Studierenden, n, um alle nicht-null-Zahl, die geteilt werden können in 6 gleichen ganzen zahlen.
Bevor ich versucht zu implementieren, der gewichtete-Durchschnitt-Ansatz zur Vorhersage ich wollte mich selbst davon zu überzeugen, dass es funktionieren könnte. Also ich ginned bis der folgende code, der zu zeigen scheint, kann Sie:
Hoffentlich in den nächsten paar Tagen kann ich versuchen die Vorhersage-code zu den oben genannten Bayes-code.
BEARBEITEN - Juni 27, 2012
Habe ich auch nicht vergessen zu diesem. Ich habe stattdessen traf auf mehrere Probleme:
Logistischen regression ist es möglich, vorherzusagen: a) die Wahrscheinlichkeit p, dass die Schüler in einer bestimmten Gruppe einen test, und b) dem Ergebnis eines bestimmten Schüler einen test (0 oder 1). Alle die 0 und 1 werden dann gemittelt. Ich bin mir nicht sicher, welche dieser zu nutzen. Die Punkt-Schätzung und SD der vorhergesagten p ist identisch mit der geschätzten p nach bekannten Untersuchungsergebnissen. Die Punkt-Schätzung der durchschnittlichen vorhergesagten 0 s und 1 s ist ein wenig anders und der SD der Durchschnitt 0 ist, und 1 ist viel größer. Ich glaube, ich will b, der Mittelwert der vorhergesagten 0 und 1 ist. Allerdings bin ich versucht, zu untersuchen, auf verschiedenen websites und Bücher, um sicher zu sein. Collett (1991) ist ein Beispiel, dass nicht beschäftigen computer-code, aber das klappte Beispiel umfasst ein halbes Dutzend Variablen, einschließlich 2 Interaktionen, und ich bin mit ein wenig Mühe, mein Bayes-Schätzungen, passend zu Ihren frequentistischen Schätzungen.
Mit vielen abgeleiteten Parameter des Programms ist es, eine lange Zeit zu laufen.
Offenbar OpenBUGS wurde Häufig abstürzt, glaube ich, auch ohne Vorhersage-code. Ich bin mir nicht sicher, ob das ist, weil das, was ich falsch mache oder aufgrund von änderungen in den neueren Versionen von R oder änderungen in neueren Versionen von R-Pakete oder vielleicht auch, weil ich versuche, um den code auszuführen, der mit einem 64-bit-R oder etwas anderes.
Werde ich versuchen, nach der Vorhersage von code schnell, aber alle der oben genannten Fragen haben sich verlangsamt mich nach unten.
Können Sie problemlos verwenden, diesen Ansatz zu finden, einen cut-off:
Dies ist eine deterministische Entscheidung basiert auf dem Metropolis-Hastings.