34 votos

Cómo manejar una variable categórica ordinal como variable independiente

Estoy usando un modelo logit. Mi variable dependiente es binaria. Sin embargo, tengo una variable independiente que es categórica y contiene las respuestas: 1. muy bueno, 2. bueno, 3. promedio, 4. pobre y 5. muy pobre. Por lo tanto, es ordinal ("categórica cuantitativa"). No estoy seguro de cómo manejar esto en el modelo. Estoy usando gretl.

[Nota de @ttnphns: Aunque la pregunta dice que el modelo es logit (porque la dependiente es categórica), el problema crucial -variables independientes ordinales- es básicamente similar, ya sea la dependiente categórica o cuantitativa. Por lo tanto, la pregunta es igualmente relevante para, por ejemplo, regresión lineal también -como lo es para regresión logística u otro modelo logit.]

0 votos

Mi variable dependiente toma los valores 0 y 1, tengo 6 variables independientes, 3 de ellas son categóricas. Estas variables son "¿Cómo calificarías los servicios de salud locales en tu área? ¿Cómo calificarías el transporte local en tu área y cómo calificarías los servicios policiales en tu área? Las respuestas son muy bueno, bueno, regular, malo y muy malo.

0 votos

@Tim Si la variable dependiente es binaria, entonces no hay necesidad de ninguna regresión ordinal. La implicación es manejar un predictor ordinal utilizando variables indicadoras (dummy).

0 votos

Gracias Tim, si no me equivoco, ¿lo que estás diciendo es que debería crear un falso para todas las categorías?? Por ejemplo, tengo cinco respuestas (muy buena, buena, promedio, mala y muy mala) para una variable independiente, por lo que debería crear 5 dummies.

22voto

Uri Puntos 111

El problema con la variable independiente ordinal es que, debido a que, por definición, los verdaderos intervalos métricos entre sus niveles no son conocidos, no se puede asumir ninguna relación de tipo apropiada - aparte de la "monótona" general - apriori. Debemos hacer algo al respecto, por ejemplo - "seleccionar o combinar variantes" o "preferir lo que maximiza algo".

Si insiste en tratar su variable IV de calificación Likert como ordinal (en lugar de intervalo o nominal) tengo un par de alternativas para usted.

  1. Usar contrastes polinomiales Es decir, cada predictor utilizado en el modelo entra en él no solo de forma lineal sino también cuadrática y cúbica. Así que no solo se puede capturar un efecto lineal, sino más general y monótono (el efecto lineal corresponde al predictor considerado como escala/intervalo y los otros dos efectos lo consideran como teniendo intervalos no iguales). Además, también podría ingresar dummies de cada predictor, lo cual probaría el efecto nominal/factorial. Al final de todo eso, sabrá cuánto actúa su predictor como factor, cuánto como covariable lineal y cuánto como covariable no lineal. Esta opción es fácil de hacer en casi cualquier regresión (lineal, logística, otros modelos lineales generalizados). Consumirá df, por lo que el tamaño de la muestra debería ser lo suficientemente grande.
  2. Usar regresión de escalado óptimo. Este enfoque transforma de forma monótona un predictor ordinal en uno de intervalo para maximizar el efecto lineal en el predictando. CATREG (regresión categórica) es una implementación de esta idea en SPSS. Un problema en su caso específico es que desea hacer regresión logística, no lineal, pero CATREG no se basa en un modelo logit. Creo que este obstáculo es relativamente menor ya que su predictando tiene solo 2 categorías (binario): es decir, aún podría hacer CATREG para el escalado óptimo, y luego hacer la regresión logística final con los predictores de escala transformados obtenidos.
  3. Observe también que en el caso simple de tener una DV de escala u ordinal y una IV ordinal, la prueba de Jonckheere-Terpstra podría ser un análisis razonable en lugar de una regresión.

Puede haber otras sugerencias también. Los tres anteriores son los que me vienen a la mente al leer tu pregunta inmediatamente.

También te recomendaría visitar estos temas: Asociar entre nominal y escala u ordinal; Asociar entre ordinal y escala. Podrían ser útiles a pesar de que no tratan específicamente sobre regresiones.

Pero estos temas tratan sobre regresiones, en particular logísticas: debe echarles un vistazo: uno, dos, tres, cuatro, cinco.

1 votos

(+1) (1) También puedes usar solo los primeros pocos contrastes polinomiales si crees que son suficientes. (2) Definir predictores a partir de la respuesta en el mismo conjunto de datos debería ir acompañado de una advertencia de salud. (3) También puedes penalizar la discrepancia entre los coeficientes de los niveles adyacentes - ver stats.stackexchange.com/q/77796/17230.

1 votos

@Scortchi, Gracias por el comentario. En cuanto a (2) - sí, en particular, es por supuesto más fiable hacer un escalado óptimo en un subconjunto separado de los datos en los que se realizará la regresión final. (3) - gracias también, me familiarizaré con ello.

1 votos

Otra opción es usar un modelo aditivo y representar la variable independiente ordinal a través de un spline.

8voto

kjetil b halvorsen Puntos 7012

Solo para añadir a las otras respuestas excelentes: una forma moderna de manejarlo podría ser a través de un modelo aditivo, representando la variable independiente ordinal a través de un spline. Si estás bastante seguro de que el efecto de la variable es monótono, podrías restringirte a un spline monótono. (Para un ejemplo de splines monótonos en uso, véase Looking for function to fit sigmoid-like curve).

En R, si conviertes el predictor ordinal en un "factor ordenado" (con, por ejemplo, el código ord <- factor(sample(1:5,20,replace=TRUE),ordered=TRUE)), entonces en un modelo lineal se representará a través de polinomios ortogonales.

5 votos

Sería bueno simplemente ampliarlo un poco, para incluir algunos detalles más sobre cómo funcionará con predictores ordinales.

0voto

0x6adb015 Puntos 1498

Necesitas variables ficticias pero necesitas $k-1$ variables ficticias, donde $k$ es el número de respuestas potenciales. En tu caso con 5 valores de respuesta (1-5) crearías 4 variables ficticias. Cuando una respuesta es "5" tus cuatro variables ficticias serían todas 0s. ¿Tiene sentido?

3 votos

He cambiado unilateralmente (y pedantemente, o de otra manera) tu pequeño uso de la notación. Aunque es trivial, $n$ se usa más comúnmente como un contar de observaciones, y he visto a menudo a principiantes confundirse por tales cuestiones.

1 votos

Gracias Tim y Nick. Entonces, ¿tengo que correr los cuatro dummies en la regresión, verdad? Si es así, tengo 3 variables categóricas, cada una con 5 respuestas. Por lo tanto, mi modelo tendrá 12 variables, ¿verdad?

1 votos

Gracias @NickCox - Soy nuevo en el mundo de CV y agradezco las correcciones respetuosas

0voto

Saliceran Puntos 26

Ha habido muchas compromisos que simplifican la relación. Los contrastes polinomiales por defecto están lejos de ser ideales, aunque estoy seguro de que algunos argumentarían vehementemente lo contrario. He descubierto que los contrastes tipo escalón logran capturar bastante bien los efectos de una variable monotónica y ordenada.

ordered_factor <- function(fact_var) {
  ord_fact <- factor(fact_var, ordered=TRUE)
  categories <- levels(fact_var)
  n_cat <- length(categories)
  cont <- matrix(0, n_cat, n_cat-1)
  cont[col(cont)

`

Esto es de https://aarongullickson.netlify.app/post/better-contrasts-for-ordinal-variables-in-r/

`

0 votos

El paquete de modelado bayesiano R brms maneja predictores ordinales de la manera más elegante, automáticamente. Esto ahorra grados de libertad al utilizar completamente la naturaleza ordinal del predictor.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X