Der beste Weg in R, um auszuwählen, welches Niveau die Basiskategorie für einen Faktor in einer LM -Regression ist

StackOverflow https://stackoverflow.com/questions/7828396

  •  27-10-2019
  •  | 
  •  

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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top