Cambiar el grupo de referencia para la variable predictora categórica en la regresión logística

Estoy ejecutando una regresión logística con una variable predictora categórica con niveles 0-6. Por defecto, R considera el nivel 0 como el grupo de referencia.

¿Cómo puedo decirle a R que use, por ejemplo, el nivel 3 en lugar del nivel 0 como referencia sin cambiar el nombre de los niveles?

preguntado el 12 de junio de 12 a las 19:06

¿Hay alguna solución que funcione con las etiquetas? Por ejemplo, si los niveles son "a", "b", ..., "g", R utiliza el orden alfabético. Cómo utilizar "d" ¿como referencia? Yo he tratado C(F, contr.treatment, base="a") pero no funciona. -

C(F, contr.treatment, base=which(levels(F) == "d")) funciona pero no es elegante.` -

@MathieuDubois, mi solución perezosa es engañar a la alfabetización dando a las categorías nombres como "aCategory1", "bCategory2", etc. -

4 Respuestas

Use el C función para definir sus contrastes en el marco de datos.

Si su marco de datos es DF y la variable factorial es fct, entonces

DF$fct <- C(DF$fct, contr.treatment, base=3)

(no probado).

Respondido el 12 de junio de 12 a las 20:06

Esto es muy fácil con los paquetes de Frank Harrell (que permite muchas funciones adicionales).
Por ejemplo, para un marco de datos llamado 'df'

library(Hmisc) 
library(rms)
dd=datadist(df)
options(datadist='dd')
(m=lrm(y ~ catvar, data=df)) #uses the mode as the reference group
summary(m, catvar=3) #using level=3 as the reference group
summary(m, catvar=0) #using level=0 as the reference group

(Y, algunos datos de muestra habrían estado bien - siempre puedes usar dput para generar un pequeño conjunto de datos)

Respondido el 12 de junio de 12 a las 20:06

Interesante solución flexible, gracias. Tendrá que leer sobre lo que representa datadist. - medio paso

La C Ya se ha sugerido la función, también mire contrasts, relevely reorder, entre otros.

Respondido el 12 de junio de 12 a las 21:06

También es muy útil. Gracias. - medio paso

Puede usar la función de renivelación: dataframe$x1 <- relevel(datafrmae$x1, "escriba aquí la categoría de referencia")

contestado el 31 de mayo de 15 a las 07:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.