Ich habe dieses Dataset, das ich logistische Regression gegen in R mache. Ich habe mehrere Fragen über die Ausgabe, die ein Ergebnis von meinem mangelnden Verständnis von Statistik und R und dann sein kann eine Frage über die Reduzierung des Modells auf p-Wert der aktuellen Ausgabe.refitting Glm-Modell in R basierend auf vorherigen Modell-Ausgabe
Der Befehl I gegeben ist:
model = glm(col1 ~ 1+(col2+col3+col4+col5+col6+col7)^2, family=binomial, data=ds)
summary(model)
Die Säulen
col1 has values of 0 and 1
col2 is an integer
col3 is an integer
col4 is an integer
col5 has values of horrible, bad, good, excellent
col6 has values of a, b, c
col7 has values of true and false
Ein Segment des Koeffizienten und p-Wertausgabe
col1 0.2824
col2 0.3457
col3 0.7845
col4 0.1451
col5horrible 0.0541*
col5bad 0.5641
col5excellent 0.2354
col6a 0.0025**
col6b 0.6245
col7TRUE 0.4145
col1:col2 0.0124*
col1:col3 0.8401
col1:col4 0.3154
col1:col5horrible 0.0054**
col1:col5bad 0.2149
col1:col5excellent 0.0035**
col1:col6a 0.2487
col1:col6b 0.0354*
col1:col7TRUE 0.5647
die erste die folgenden Daten enthalten, Was ich bemerkte, war, dass für col5, col6 und col7 die Ausgabe nicht nur der Spaltenname war wie für col1, col2, col3 und col4, aber war ColnameValue. Die zweite Sache, die mir auffiel, war, dass für die Spalten, in denen ein Wert an den Spaltennamen angehängt wurde, nicht alle möglichen Werte an den Spaltennamen angehängt wurden, sondern tatsächlich für col5, col6 und col7 jeweils ein Wert fehlte.
Fragen zum Verständnis
- was ~ 1 in der GLM-Funktion? Ich habe noch nie zuvor 1 benutzt, also bin ich mir nicht sicher, wie ich das lesen soll.
- Warum werden Spaltenwerte an die Spaltennamen in der Zusammenfassungsausgabe angehängt?
- Warum werden alle möglichen Werte für eine Spalte nicht an den Spaltennamen angehängt, an dem der Spaltenname einige der Werte angehängt hat?
-Code Frage
ich das Modell reduzieren will, um zu sehen, ob es besser geeignet sein kann. Der Vorschlag war, Prädiktoren aus dem aktuellen Modell zu entfernen, die über einem bestimmten p-Wert lagen. Hier ist, was ich bisher habe, aber ich bin mir nicht sicher, was ich als nächstes tun soll, sobald ich die Spaltennamen habe und wie man die Spalten mit ColnameValue in ein Modell bringt.
p=coef(summary(model))[,4]
colnames=names(p[p<0.1])
colnames
COLNAMES Ausgang
"col5horrible"
"col6a"
"col1:col5horrible"
"col1:col5excellent"
"col1:col6b"
Was wäre mein nächster Schritt, oder gibt es einen besseren Weg, dies zu tun? Wie gehe ich mit der Tatsache um, dass der Wert an den Spaltennamen angehängt ist?
EDIT
Basierend auf der Antwort von schalange posted unten I Dummy-Variablen in R. Auf dieser post sah es für die Erstellung von Dummy-Variablen mehrere Methoden waren. Für nicht-numerische Spalten: col5, col6 und col7, die alle einen vordefinierten Satz von Werten haben, führte ich die Funktion createDummyFeatures und führte dann glm für die Spalten aus, die aus dem ursprünglichen Modell mit p-Wert < 0.1 kamen. Ist dies der richtige Ansatz, um das ursprüngliche Modell auf der Grundlage der p-Werte für die Koeffizienten zu reduzieren?
danke für einige zusätzliche Begriffe zu google, da ich nicht genug von den Fachbegriffen weiß und keine nützlichen Suchen bekam. Ich werde mir eine Dummy-Falle ansehen. Ich habe versucht, eine gute Ressource zu finden, die die logistische Regression und die Ausgabe in R für Laien erklären kann, also ist alles hilfreich. Bezogen auf den Datensatz sind die Werte HORRIBLE BAD GOOD und EXCELLENT Rankings eines Produktes, col6-Werte sind die Art eines Produktes. Das sind hilfreiche Informationen über die bessere Anpassung des Modells und mein Verständnis war aus. –
Für die Zuweisung muss ich immer noch eine reduzierte Version zum Vergleich mit dem ursprünglichen tun und Vorschlag war es, Variablen basierend auf dem p-Wert des ursprünglichen Modells zu reduzieren. Ihre Erklärung def macht Sinn, dass R keine Ahnung hat, wie nicht-numerische Daten zu interpretieren sind. Irgendwelche Vorschläge, wie ich nur die Koeffizienten nutzen kann, die unter einem bestimmten p-Wert liegen? –