Si tengo una variable con 4 niveles, en teoría necesito usar 3 variables ficticias. En la práctica, ¿cómo se lleva a cabo esto realmente? ¿Uso 0-3, uso 1-3 y dejo en blanco los 4? ¿Alguna sugerencia?
NOTA: voy a estar trabajando en R.
ACTUALIZACIÓN: ¿Qué sucedería si solo uso una columna que usa 1-4 correspondiente a AD? ¿Funcionará o introducirá problemas?
r
regression
categorical-data
categorical-encoding
Chillido búho
fuente
fuente
Respuestas:
En la práctica, generalmente uno deja que el software de su elección maneje la creación y manipulación de variables ficticias. Hay varias formas de manejarlo; Aquí hay varias posibilidades comunes para un conjunto de datos con cuatro observaciones, una en cada nivel de A, B, C y D. Estas son parametrizaciones diferentes; dan como resultado exactamente el mismo ajuste del modelo, pero con diferentes interpretaciones de los parámetros. Uno puede convertir fácilmente de uno a otro usando álgebra básica; tenga en cuenta que todas son combinaciones lineales entre sí; de hecho, se puede usar cualquier combinación lineal.
Utilice las diferencias del primer nivel (predeterminado en R):
Utilice las diferencias del último nivel (predeterminado en SAS):
Use contrastes de "suma":
Utilice contrastes "helmert":
fuente
Supongamos que sus niveles variables son A, B, C y D. Si tiene un término constante en la regresión, debe usar tres variables ficticias, de lo contrario, debe tener las cuatro.
Hay muchas formas matemáticamente equivalentes de implementar las variables ficticias. Si tiene un término constante en la regresión, una forma es elegir uno de los niveles como el nivel "de referencia" y comparar los otros tres. Digamos, por razones concretas, que el nivel de línea de base es A. Luego, su primera variable ficticia toma el valor 1 siempre que el nivel sea B y 0 de lo contrario; el segundo toma el valor 1 cuando el nivel es C y 0 de lo contrario, y el tercero toma el valor 1 cuando el nivel es D y 0 de lo contrario. Debido a que su término constante es igual a 1 todo el tiempo, el coeficiente estimado de la primera variable ficticia será la estimación de la diferencia entre el nivel B y A, y de manera similar para las otras variables ficticias.
Si no tiene un término constante, puede usar cuatro variables ficticias, construidas como en el ejemplo anterior, simplemente agregando una para el nivel A.
fuente
En R, defina la variable como un factor y la implementará por usted:
que vuelve
La documentación para 'lm', 'factor' y 'fórmula' en R completa algunos de los detalles.
fuente
lm(y ~ as.factor(x))
Whuber le dijo en los comentarios que codificar una codificación 0-3 o 1-4 en lugar de crear variables ficticias no es lo que desea. Esto es intentarlo. Espero poder explicar qué harías con ese modelo y por qué está mal.
Si codifica una variable X tal que si A entonces X = 1, si B entonces X = 2, si C entonces X = 3, si D entonces X = 4, entonces cuando haga la regresión solo obtendrá un parámetro. Digamos que terminó siendo que el parámetro estimado asociado con X era 2. Esto le indicaría que la diferencia esperada entre la media de B y la media de A es 2. También le dice que la diferencia esperada entre la media de C y la media de B es 2. Algunas para D y C. Estaría forzando las diferencias en las medias para que estos grupos sigan este patrón muy estricto. Ese único parámetro le dice exactamente cómo se relacionan todos sus grupos.
Entonces, si hiciste este tipo de codificación, deberías asumir que no solo obtuviste el orden correcto (porque en este caso si esperas un aumento de A a B, entonces debes esperar un aumento de B a C y de C a D), ¡pero también debes asumir que esa diferencia es la misma!
Si, en cambio, realiza la codificación ficticia sugerida, está permitiendo que cada grupo tenga su propia media, sin restricciones. Este modelo es mucho más sensible y responde las preguntas que desea.
fuente