Si se usa una variable de factor (por ejemplo, género con los niveles M y F) en la fórmula glm, se crean variables ficticias, y se pueden encontrar en el resumen del modelo glm junto con sus coeficientes asociados (por ejemplo, genderM)
Si, en lugar de confiar en R para dividir el factor de esta manera, el factor se codifica en una serie de variables numéricas 0/1 (por ejemplo, genderM (1 para M, 0 para F), genderF (1 para F, 0 para M) y estas variables se usan como variables numéricas en la fórmula glm, ¿el resultado del coeficiente sería diferente?
Básicamente, la pregunta es: ¿utiliza R un cálculo de coeficiente diferente cuando trabaja con variables de factores versus variables numéricas?
Pregunta de seguimiento (posiblemente respondida por lo anterior): además de la eficiencia de dejar que R cree variables ficticias, ¿hay algún problema con la codificación de factores como una serie de variables numéricas 0,1 y con el uso de las del modelo?
Respuestas:
Las variables categóricas (llamadas " factores " en R) deben representarse mediante códigos numéricos en modelos de regresión múltiple. Hay muchas maneras posibles de construir códigos numéricos de manera apropiada (vea esta gran lista en el sitio de ayuda de estadísticas de UCLA). De manera predeterminada, R usa la codificación de nivel de referencia (que R llama "contr.treatment"), y que es prácticamente la estadística predeterminada. Esto se puede cambiar para todos los contrastes para toda su sesión de R usando las opciones? O para análisis / variables específicas usando ? Contrastes o ? C (tenga en cuenta el capital). Si necesita más información sobre la codificación del nivel de referencia, lo explico aquí: Regresión basada, por ejemplo, en los días de la semana..
Algunas personas encuentran confusa la codificación de nivel de referencia, y no tiene que usarla. Si lo desea, puede tener dos variables para hombre y mujer; esto se llama nivel significa codificación. Sin embargo, si hace eso, tendrá que suprimir la intersección o la matriz del modelo será singular y la regresión no puede ajustarse como @Affine observa arriba y como explico aquí: la codificación de variables cualitativas conduce a singularidades . Para suprimir la intersección, modifique su fórmula agregando
-1
o+0
como así:y~... -1
oy~... +0
.El uso de nivel significa codificación en lugar de codificación de nivel de referencia cambiará los coeficientes estimados y el significado de las pruebas de hipótesis que se imprimen con su salida. Cuando tiene un factor de dos niveles (p. Ej., Masculino frente a femenino) y utiliza una codificación de nivel de referencia, verá la intercepción llamadat 0 t 0
(constant)
y solo una variable listada en la salida (tal vezsexM
). La intersección es la media del grupo de referencia (quizás las mujeres) ysexM
es la diferencia entre la media de los hombres y la media de las mujeres. El valor p asociado con la intersección es una prueba una muestra de si el nivel de referencia tiene una media de y el valor p asociado consexM
le dice si los sexos difieren en su respuesta. Pero si utiliza la codificación de nivel significa, tendrá dos variables enumeradas y cada valor p corresponderá a una prueba una muestra de si la media de ese nivel es . Es decir, ninguno de los valores p será una prueba de si los sexos difieren.fuente
young F
) y los otros niveles serán diferentes del nivel dado del factor 1 w / el nivel de referencia del otro factor y el grupo de ambos niveles de referencia. Por ejemplo,old
esold F
- `joven F, &
M` esyoung M
-young F
.R^2
diferencia sustancial entre ambos enfoques. Sé que es solo unR^2
, pero ¿hay alguna explicación para eso?Los coeficientes estimados serían los mismos sujetos a la condición en la que crea sus variables ficticias (es decir, las numéricas) consistentes con R. Por ejemplo: creemos datos falsos y ajustemos un factor de uso de Poisson glm. Tenga en cuenta que la
gl
función crea una variable de factor.Como el resultado tiene tres niveles, creo dos variables ficticias (ficticio.1 = 0 si el resultado = 2 y ficticio.2 = 1 si el resultado = 3) y lo reacondiciono usando estos valores numéricos:
Como puede ver, los coeficientes estimados son los mismos. Pero debe tener cuidado al crear sus variables ficticias si desea obtener el mismo resultado. Por ejemplo, si creo dos variables ficticias como (ficticio.1 = 0 si resultado = 1 y ficticio.2 = 1 si resultado = 2), los resultados estimados son diferentes de la siguiente manera:
Esto se debe a que cuando agrega
outcome
variables en glm.1, R por defecto crea dos variables ficticias, a saber,outcome2
youtcome3
y las define de manera similar adummy.1
ydummy.2
en glm.2, es decir, el primer nivel de resultado es cuando todas las demás variables ficticias (outcome2
youtcome3
) están configuradas para ser cero.fuente