Ok a tutti, una volta per tutte, come si fa (enfasi su di te, perché sono sicuro che c'è più di un modo per ottenerlo) codice di contrasto (trattamento, somma, helmert, ecc.) e conservare un'etichetta fattoriale significativa (in modo da poter interpretare in modo significativo gli effetti) nella funzione glm?R - Come contrastare i fattori del codice e conservare le etichette significative nel sommario dell'output
Capisco che posso usare level() per capire quale livello di fattore è il riferimento, ma che diventa noioso quando comincio a coinvolgere fattori con 5 o 10 livelli e le loro interazioni.
Ecco un rapido esempio due fattore di ciò che intendo
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"))
C'è ne e tutti i suggerimenti saranno apprezzati. Questo problema mi ha infastidito per un po 'e sono sicuro che esiste una soluzione semplice (ish).
Grazie uomo! Quando dici che "hai deciso di usare" AC "e" BC "come etichette, dove l'hai chiamato nel codice? Sono abituato a usare relevel e rieseguire i miei contrasti per classificare il livello di riferimento. – gh0strider18
Dovrei avere è stato più chiaro: è in 'paste (nomi (x [x> 0]), nomi (x [x <0]), sep =" - ")' linea. Io uso il rowname del valore con "1" meno il rowname con valore "-1". La pasta mette il "-" tra questi valori. – MrFlick