Ich habe eine logistische Regression mit dem folgenden Code erstellt:
full.model.f = lm(Ft_45 ~ ., LOG_D)
base.model.f = lm(Ft_45 ~ IP_util_E2pl_m02_flg)
step(base.model.f, scope=list(upper=full.model.f, lower=~1),
direction="forward", trace=FALSE)
Ich habe dann die Ausgabe verwendet, um ein endgültiges Modell zu erstellen:
final.model.f = lm(Ft_45 ~ IP_util_E2pl_m02_flg + IP_util_E2_m02_flg +
AE_NumVisit1_flg + OP_NumVisit1_m01_flg + IP_TotLoS_m02 +
Ft1_45 + IP_util_E1_m05_flg + IP_TotPrNonElecLoS_m02 +
IP_util_E2pl_m03_flg + LTC_coding + OP_NumVisit0105_m03_flg +
OP_NumVisit11pl_m03_flg + AE_ArrAmb_m02_flg)
Dann habe ich die Ergebnisse für einen anderen Datensatz unter Verwendung der Vorhersagefunktion vorhergesagt:
log.pred.f.v <- predict(final.model.f, newdata=LOG_V)
Ich konnte eine ansprechende ROC-Kurve erstellen und eine Tabelle erstellen, um die Sensitivität und Spezifität zu ermitteln, mit der ich die erwarteten Antworten erhalte.
Ich versuche jedoch, für jede Datenzeile die Wahrscheinlichkeit von Ft_45 auf 1 zu bestimmen. Wenn ich mir die Ausgabe von log.pred.fv ansehe, erhalte ich zum Beispiel Folgendes:
1 -0.171739593
2 -0.049905948
3 0.141146419
4 0.11615669
5 0.07342591
6 0.093054334
7 0.957164383
8 0.098415639
.
.
.
104 0.196368229
105 1.045208447
106 1.05499112
Da ich nur vorläufig verstehe, was ich tue, habe ich Schwierigkeiten zu verstehen, wie ich negative und höhere Werte als 1 interpretieren kann, da ich eine Wahrscheinlichkeit zwischen 0 und 1 erwarten würde.
Meine Frage ist also, ob ich nur einen Schritt verpasse, in dem ich die Ausgabe transformieren muss, oder ob ich völlig daneben gegangen bin. Vielen Dank im Voraus für jede Hilfe, die Sie anbieten können.
quelle
probs <- exp(predict(logit, type = "response" , newdata=data)
oder zumindest `probs <- 1 / (1 + exp (-pred))Ein Blick auf die Dokumentation von
predict.glm
scheint so einfach zu sein wie die Verwendung eines zusätzlichen Parameters inpredict
call:Siehe Dokumentation:
quelle