Que sont les «coefficients aliasés»?

24

Lors de la construction d'un modèle de régression dans R ( lm), je reçois fréquemment ce message

"there are aliased coefficients in the model"

Qu'est-ce que ça veut dire exactement?

En outre, à cause de cela, predict()donne également un avertissement.

Bien que ce ne soit qu'un avertissement, je veux savoir comment détecter / supprimer des coefficients alias avant de construire un modèle.

Aussi, quelles sont les conséquences probables de la négligence de cet avertissement?

Mohit Verma
la source

Réponses:

32

Je soupçonne que ce n'est pas une erreur de lm, mais plutôt vif(du paquet car). Si c'est le cas, je pense que vous êtes tombé sur une parfaite multicolinéarité . Par exemple

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

produit votre erreur.

Dans ce contexte, «alias» fait référence aux variables qui dépendent linéairement des autres (c'est-à-dire provoquent une multicolinéarité parfaite).

La première étape vers la solution consiste à identifier quelle (s) variable (s) sont le (s) coupable (s). Courir

alias( lm( y ~ x1 + x2 ) )

pour voir un exemple.

Tamas Ferenci
la source
Merci. La «multicolinéarité» est-elle la même chose que d'avoir des «coefficients aliasés»?
Mohit Verma
1
@MohitVerma: Dans cette terminologie, '' alias '' fait référence aux variables qui sont linéairement dépendantes (c'est-à-dire provoquent une multicolinéarité parfaite). Voir stat.ethz.ch/R-manual/R-patched/library/stats/html/alias.html . Je mets à jour la réponse avec ceci.
Tamas Ferenci
3

Cela se produit souvent lorsque vous avez des singularités dans votre X'Xmatrice de régression (valeurs NA dans le résumé de la sortie de régression).

La base R lm()permet des valeurs singulières / une multicolinéarité parfaite par défaut singular.ok = TRUE. D'autres packages / fonctions sont plus conservateurs.

Par exemple, pour la linearHypothesis()fonction dans le carpackage, la valeur par défaut est singular.ok = FALSE. Si vous avez une parfaite multicolinéarité dans votre régression, linearHypothesis()retournera une erreur "il y a des coefficients alias dans le modèle". Pour gérer cette erreur, définissez singular.ok = TRUE. Soyez prudent, car cela peut masquer une parfaite multicolinéarité dans votre régression.

chandler
la source
0

peut-être trop bon à savoir pour certains: j'ai également cette erreur lorsque j'ai ajouté des variables muettes à une régression. R omet automatiquement un mannequin, mais cela provoque une erreur dans le test vif. donc, pour certains, une solution pourrait être de supprimer un mannequin manuellement.

Tapoter
la source