Was sind Alias-Koeffizienten?

24

Beim Erstellen eines Regressionsmodells in R ( lm) erhalte ich häufig diese Meldung

"there are aliased coefficients in the model"

Was genau bedeutet das?

Auch aus diesem Grund predict()gibt auch eine Warnung.

Obwohl dies nur eine Warnung ist, möchte ich wissen, wie wir Alias-Koeffizienten erkennen / entfernen können, bevor wir ein Modell erstellen.

Welche Konsequenzen kann es haben, wenn diese Warnung vernachlässigt wird?

Mohit Verma
quelle

Antworten:

32

Ich vermute das ist kein Fehler von lm, sondern eher vif(aus Paket car). Wenn ja, glaube ich, sind Sie auf perfekte Multikollinearität gestoßen . Zum Beispiel

x1 <- rnorm( 100 )
x2 <- 2 * x1
y <- rnorm( 100 )
vif( lm( y ~ x1 + x2 ) )

erzeugt deinen Fehler.

In diesem Zusammenhang bezieht sich "Alias" auf die Variablen, die linear von anderen abhängig sind (dh eine perfekte Multikollinearität verursachen).

Der erste Schritt zur Lösung besteht darin, zu identifizieren, welche Variablen die Schuldigen sind. Lauf

alias( lm( y ~ x1 + x2 ) )

um ein Beispiel zu sehen.

Tamas Ferenci
quelle
Vielen Dank. Ist "Multikollinearität" dasselbe wie "Alias-Koeffizienten"?
Mohit Verma
1
@MohitVerma: In dieser Terminologie bezieht sich "Alias" auf die Variablen, die linear abhängig sind (dh eine perfekte Multikollinearität verursachen). Siehe stat.ethz.ch/R-manual/R-patched/library/stats/html/alias.html . Ich aktualisiere die Antwort damit.
Tamas Ferenci
3

Dies tritt häufig auf, wenn Ihre Regressionsmatrix Singularitäten enthält X'X(NA-Werte in der Zusammenfassung der Regressionsausgabe).

Die Basis R lm()erlaubt als Standard singuläre Werte / perfekte Multikollinearität singular.ok = TRUE. Andere Pakete / Funktionen sind konservativer.

Die Standardeinstellung für die linearHypothesis()Funktion im carPaket lautet beispielsweise singular.ok = FALSE. Wenn Sie eine perfekte Multikollinearität in Ihrer Regression haben, linearHypothesis()wird der Fehler "Es gibt Alias-Koeffizienten im Modell" zurückgegeben. Um diesen Fehler zu beheben, setzen Sie singular.ok = TRUE. Seien Sie jedoch vorsichtig, da dies die perfekte Multikollinearität in Ihrer Regression maskieren kann.

Ausrüster
quelle
0

Vielleicht zu gut, um es für einige zu wissen: Ich habe diesen Fehler auch erhalten, als ich einer Regression Dummies hinzugefügt habe. R lässt automatisch einen Dummy aus, dies führt jedoch zu einem Fehler im vif-Test. Daher besteht eine Lösung für einige möglicherweise darin, einen Dummy manuell zu entfernen.

Klopfen
quelle