Tengo una variable independiente llamada "calidad"; Esta variable tiene 3 modalidades de respuesta (mala calidad; calidad media; alta calidad). Quiero introducir esta variable independiente en mi regresión lineal múltiple. Cuando tengo una variable independiente binaria (variable ficticia, puedo codificar 0
/ 1
) es fácil introducirla en un modelo de regresión lineal múltiple.
Pero con 3 modalidades de respuesta, he intentado codificar esta variable de esta manera:
Bad quality Medium quality High quality
0 1 0
1 0 0
0 0 1
0 1 0
Pero hay un problema cuando trato de hacer mi regresión lineal múltiple: la modalidad Medium quality
me da NA
:
Coefficients: (1 not defined because of singularities)
¿Cómo puedo codificar esta variable "calidad" con 3 modalidades? ¿Tengo que crear una variable como factor ( factor
in R
) pero luego puedo introducir este factor en una regresión lineal múltiple?
Respuestas:
El problema que tiene (es decir, "singularidades") puede considerarse como una instancia de multicolinealidad . La multicolinealidad a menudo se define como:
Esta es, de hecho, una definición bastante estricta; es multicolinealidad perfecta , y puede tener fácilmente un problema con multicolinealidad sin que ninguna de sus variables sea una combinación lineal perfecta de otras. Además, rara vez se produce una multicolinealidad perfecta. Sin embargo, se ha topado con un caso en el que puede ocurrir. Veamos cómo podemos predecir perfectamente aY X1 X2
medium quality
partir de nuestro conocimiento de las otras dos categorías (haremos esto con un modelo de regresión dondemedium quality
es , y & son X 1 y X 2 , respectivamente): Y = β 0 + β 1bad quality
high quality
Tenga en cuenta que no hay un término de error, ε , especificado, porque podemos predecir esto perfectamente. Para hacerlo, establecemos β 0 = 1 , β 1 = - 1 y β 2 = - 1 . Ahora, cuando tienes, entonces X 1 = 1 , que cancela β 0 (
bad quality
medium quality
R
, puede usar unfactor
yR
hará todo esto por usted: se hará correctamente y es mucho más conveniente; sin embargo, vale la pena entender que esto es lo que está sucediendo 'detrás de escena'.fuente
lm
fórmula (+ 0
), ¿funcionaría?@gung ha explicado la teoría claramente. Aquí hay un ejemplo práctico para ilustrar:
Esto nos muestra que el nivel de referencia (todos0 0 s) es
bad
como se ve aquí en la fila 4:Ahora, si codificamos las variables ficticias nosotros mismos e intentamos ajustar un modelo con todas ellas:
Obtenemos el error esperado:
singular fit encountered
fuente
factor
generalmente se encargará de la codificación variable ficticia para usted, pero es bueno estar al tanto de lo que está sucediendo 'bajo el capó'.