La mejor manera en R para elegir qué nivel es la categoría base para un factor en una regresión de LM

StackOverflow https://stackoverflow.com/questions/7828396

  •  27-10-2019
  •  | 
  •  

Pregunta

Supongamos que quiero ejecutar una regresión usando lm y un factor Como variable del lado derecho. ¿Cuál es la mejor manera de elegir qué nivel en el factor es la categoría base (la que está excluida para evitar la multicolinealidad)? Tenga en cuenta que no estoy interesado en excluir la intersección porque tengo muchos factores.

También me gustaría una solución basada en fórmula, no una que actúe en el marco de datos.

Mi solución es:

base_cat <- function(x) c(x,1:(x-1),(x+1):100) 
a_reg <- lm(y ~ x1 + x2 + factor(x3, levels=base_cat(30)) #suppose that x3 has draws from the integers 1 to 100.

La categoría de izquierda por lm es el primer nivel en el factor, por lo que esto solo reordena los niveles para que el especificado en base_cat() es el primero y pone el resto después.

¿Alguna otra idea?

¿Fue útil?

Solución

La función relevel hace precisamente esto. Pasas un factor desordenado y el nombre del nivel de referencia y devuelve un factor con ese nivel como el primero.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top