Der beste Weg in R, um auszuwählen, welches Niveau die Basiskategorie für einen Faktor in einer LM -Regression ist
Frage
Angenommen, ich möchte eine Regression verwenden lm
und ein factor
als rechte Seite Variable. Was ist der beste Weg, um zu wählen, welches Niveau im Faktor die Basiskategorie ist (die ausgeschlossen ist, um eine Multikollinearität zu vermeiden). Beachten Sie, dass ich nicht daran interessiert bin, den Abfangen auszuschließen, weil ich viele Faktoren habe.
Ich möchte auch eine formelbasierte Lösung, nicht eine, die auf die Daten wirkt. Frame, obwohl Sie glauben, dass Sie eine wirklich gute Lösung dafür haben, posten Sie sie bitte auch.
Meine Lösung ist:
base_cat <- function(x) c(x,1:(x-1),(x+1):100)
a_reg <- lm(y ~ x1 + x2 + factor(x3, levels=base_cat(30)) #suppose that x3 has draws from the integers 1 to 100.
Die ausgelassene Kategorie von lm
ist die erste Ebene des Faktor base_cat()
ist der erste und setzt den Rest danach.
Irgendwelche anderen Ideen?
Lösung
Die Funktion relevel
tut genau das. Sie übergeben ihm einen ungeordneten Faktor und den Namen der Referenzstufe und es gibt einen Faktor mit dieser Ebene als erste zurück.