Ok, ein für allemal, wie geht es dir (Betonung auf dich, weil ich sicher bin, dass es mehr als einen Weg gibt, dies zu erreichen) Kontrast-Code (Behandlung, Summe, Helmert usw.) und behalten Sie eine aussagekräftige Faktorbezeichnung (damit Sie sinnvolle Interpretationen von Effekten vornehmen können) in der glm-Funktion?R - Wie man Code-Faktoren kontrastiert und aussagekräftige Beschriftungen in der Ausgabezusammenfassung erhält
Ich verstehe, dass ich Level() verwenden kann, um zu verstehen, welche Faktorstufe die Referenz ist, aber das wird langweilig, wenn ich anfange, Faktoren mit 5 oder 10 Ebenen und deren Interaktionen einzubeziehen.
Hier ist ein kurzer Zwei-Faktor-Beispiel dafür, was ich meine
outcome <- c(1,0,0,1,1,0,0,0,1, 0, 0, 1)
firstvar <- c("A", "B", "C", "C", "B", "B", "A", "A", "C", "A", "C", "B")
secondvar <- c("D", "D", "E", "F", "F", "E", "D", "E", "F", "F", "D", "E")
df <- as.data.frame(cbind(outcome, firstvar, secondvar))
df$firstvar <- as.factor(df$firstvar)
df$secondvar <- as.factor(df$secondvar)
#not coded manually (and default appears to be dummy or treatment coding)
#gives meaningful factor labels in summary function
summary(glm(outcome ~ firstvar*secondvar, data=df, family="binomial"))
#effects coded
#does not give meaningful factor labels
contrasts(df$firstvar)=contr.sum(3)
contrasts(df$secondvar)=contr.sum(3)
summary(glm(outcome ~ firstvar*secondvar, data=df, family="binomial"))
#dummy coded
contrasts(df$firstvar)=contr.treatment(3);
contrasts(df$secondvar)=contr.treatment(3);
summary(glm(outcome ~ firstvar*secondvar, data=df, family="binomial"))
Jede und alle Vorschläge wird geschätzt. Dieses Problem hat mich eine Weile gestört, und ich bin mir sicher, dass es eine einfache (ish) Lösung gibt.
Thanks man! Wenn Sie sagen, dass Sie sich entschieden haben, "AC" und "BC" als Beschriftungen zu verwenden, wo haben Sie das im Code genannt? Ich bin es gewohnt, revel zu verwenden und meine Kontraste erneut zu verwenden, um den Referenzpegel zu klassifizieren. – gh0strider18
sollte ich haben war klarer, es ist in der 'einfügen (Namen (x [x> 0]), Namen (x [x <0]), sep =" - ")" Linie. Ich verwende den rowname des Wertes mit "1" minus der rowname mit dem Wert "-1". Die Paste setzt das "-" zwischen diesen Werten. – MrFlick