ich bin leider ein absoluter R-Neuling und befasse mich aktuell mit der logistischen Regression.
Im Grunde komme ich auch zu einem Ergebnisse, aber um es zu optimieren möchte ich einen anderen weg ausprobieren, für den mir leider die Programmierkenntnisse fehlen. Auch im Netz habe ich leider keine Methode gefunden, die mein Problem lösen könnte.
Folgende Idee:
ich habe ca. 5 unabhängige Variablen für mein Modell. Ich möchte am Ende ZWEI (oder evtl. drei) Modelle haben, die abhängig von der Ausprägung einer nominalen Variable auf meine Prognosedaten angewendet werden. Als Output benötige ich EINE .csv Datei, in der die Prognosedaten in exakt der gleichen Reihenfolge ausgegeben werden, wie in der Datenquelle. Wenn ich manuell drei getrennte Modelle erzeuge, indem ich die Daten vorher entsprechend filtere, komme ich auf gute Ergebnisse. Aber ich muss leider diese Ausgabedatei so erzeugen, dass eine neue csv. Datei entsteht, in der die Werte in der gleichen Reihenfolge, wie in der Anwendungsdatei aufgelistet werden.
Variable eist nominal-skaliert mit 3-leveln
glm() soll mir nun drei Modelle berechnen, für jede Ausprägung von Variable e ein spezifisches mit den restlichen vier Variablen.
Oder ich bleibe bei meiner händischen Filterung und vier Modellen, dann benötige ich aber eine Lösung für predict(), damit es je nach Ausprägung von Variable e ein anderes Modell anwendet ...
Version 1
Code: Alles auswählen
#Modellbildung - 3 verschiedene Modelle je nach Ausprägung von e (nominal 3-lvl) ?!
Modell <- glm(y ~ a+ b+ c+ d+ e, family="binomial", data = Training)
# Ausgegeben wird die geschätzte Wahrscheinlichkeit
Ergebnis<- predict(Modell, newdata = Anwendung, type = "response")
# Zuordung zu Ja / Nein
Ergebnis <- ifelse(Ergebnis > 0.5, "Ja", "Nein")
Version 2
Code: Alles auswählen
#Modellbildung
Training.m <- filter(Training, e=="m")
Training.n <- filter(Training, e=="n")
Training.o <- filter(Training, e=="o")
Modell.m <- glm(y ~ a + b + c + d, family="binomial", data = Training.m)
Modell.n <- glm(y ~ a + b + c + d, family="binomial", data = Training.n)
Modell.o <- glm(y ~ a + b + c + d, family="binomial", data = Training.o)
# Ausgegeben wird die geschätzte Wahrscheinlichkeit - predict() muss zwischen Modell m, n und o unterscheiden.
Ergebnis<- predict(Modell, newdata = Anwendung, type = "response")
# Zuordung zu Ja / Nein
Ergebnis <- ifelse(Ergebnis > 0.5, "Ja", "Nein")
wäre euch für eure Hilfe echt sehr Dankbar.
viele Grüße
Richard