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 qualityme 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 ( factorin 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 qualitypartir de nuestro conocimiento de las otras dos categorías (haremos esto con un modelo de regresión dondemedium qualityes , y & son X 1 y X 2 , respectivamente): Y = β 0 + β 1bad qualityhigh qualityTenga 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 qualitymedium qualityR, puede usar unfactoryRhará 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
lmfó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
badcomo 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 encounteredfuente
factorgeneralmente se encargará de la codificación variable ficticia para usted, pero es bueno estar al tanto de lo que está sucediendo 'bajo el capó'.