J'ai une variable indépendante appelée "qualité"; cette variable a 3 modalités de réponse (mauvaise qualité; qualité moyenne; haute qualité). Je veux introduire cette variable indépendante dans ma régression linéaire multiple. Lorsque j'ai une variable indépendante binaire (variable fictive, je peux coder 0
/ 1
), il est facile de l'introduire dans un modèle de régression linéaire multiple.
Mais avec 3 modalités de réponse, j'ai essayé de coder cette variable comme ceci:
Bad quality Medium quality High quality
0 1 0
1 0 0
0 0 1
0 1 0
Mais il y a un problème quand j'essaie de faire ma régression linéaire multiple: la modalité Medium quality
me donne NA
:
Coefficients: (1 not defined because of singularities)
Comment coder cette variable "qualité" avec 3 modalités? Dois-je créer une variable comme facteur ( factor
in R
) mais puis-je introduire ce facteur dans une régression linéaire multiple?
Réponses:
Le problème que vous rencontrez (c'est-à-dire les "singularités") peut être considéré comme un exemple de multicolinéarité . La multicollinéarité est souvent définie comme:
Il s'agit, en fait, d'une définition assez stricte; c'est une multicolinéarité parfaite , et vous pouvez facilement avoir un problème de multicolinéarité sans qu'aucune de vos variables ne soit une combinaison linéaire parfaite des autres. De plus, une multicolinéarité parfaite se produit rarement. Cependant, vous êtes tombé sur un cas où cela peut se produire. Voyons comment nous pouvons parfaitement prédire àY X1 X2
medium quality
partir de notre connaissance des deux autres catégories (nous le ferons avec un modèle de régression oùmedium quality
est , et & sont X 1 & X 2 , respectivement): Y = β 0 + β 1bad quality
high quality
Notez qu'il n'y a pas de terme d'erreur, ε , spécifié, car nous pouvons le prédire parfaitement. Pour ce faire, nous fixons β 0 = 1 , β 1 = - 1 et β 2 = - 1 . Maintenant, quand vous avez, alors X 1 = 1 , ce qui annule β 0 ( 1
bad quality
medium quality
R
factor
R
fera tout cela pour vous - ce sera fait correctement, et c'est beaucoup plus pratique - néanmoins, il vaut la peine de comprendre que c'est ce qui se passe «dans les coulisses».la source
lm
formule (+ 0
) cela fonctionnerait-il?@gung a clairement expliqué la théorie. Voici un exemple pratique pour illustrer:
bad
Maintenant, si nous codons nous-mêmes les variables fictives et essayons d'adapter un modèle en les utilisant toutes:
Nous obtenons l'erreur attendue:
singular fit encountered
la source
factor
s'occupe généralement du codage des variables factices pour vous, mais bon de savoir ce qui se passe «sous le capot».