32 votos

¿Cómo entender la salida de la función polr de R (regresión logística ordenada)?

Soy nuevo en R, la regresión logística ordenada y polr .

La sección "Ejemplos" en la parte inferior de la página de ayuda para polr (que ajusta un modelo de regresión logística o probit a una respuesta factorial ordenada) muestra

options(contrasts = c("contr.treatment", "contr.poly"))
house.plr <- polr(Sat ~ Infl + Type + Cont, weights = Freq, data = housing)
pr <- profile(house.plr)
plot(pr)
pairs(pr)
  • ¿Qué información pr ¿contiene? La página de ayuda de perfil es genérico, y no da ninguna orientación para polr.

  • ¿Qué es? plot(pr) ¿se muestra? Veo seis gráficos. Cada uno tiene un eje X que es numérico, aunque la etiqueta es una variable indicadora (parece una variable de entrada que es un indicador de un valor ordinal). Luego el eje Y es "tau", que no tiene ninguna explicación.

  • ¿Qué es? pairs(pr) ¿se muestra? Parece un gráfico para cada par de variables de entrada de entrada, pero de nuevo no veo ninguna explicación de los ejes X o Y.

  • ¿Cómo se puede entender si el modelo dio un buen ajuste? summary(house.plr) muestra una desviación residual de 3479,149 y un AIC (criterio de información de Akaike) de 349. Information Criterion?) de 3495,149. ¿Es eso bueno? En el caso de que esos son sólo útiles como medidas relativas (es decir, para comparar con otro modelo ajuste), ¿cuál es una buena medida absoluta? ¿La desviación residual tiene una distribución chi-cuadrado aproximada? ¿Se puede utilizar el "% de predicción correcta" sobre los datos originales o alguna validación cruzada? ¿Cuál es la forma más fácil de hacerlo?

  • ¿Cómo se aplica e interpreta anova en este modelo? La documentación dice que "hay métodos para las funciones estándar de ajuste de modelos, incluyendo predict, summary, vcov, anova". Sin embargo, la ejecución de anova(house.plr) resultados en anova is not implemented for a single "polr" object

  • ¿Cómo se interpretan los valores t de cada coeficiente? A diferencia de algunos ajustes de modelos, aquí no hay valores P.

Me doy cuenta de que son muchas preguntas, pero para mí tiene sentido preguntar como un solo paquete ("¿cómo uso esta cosa?") en lugar de 7 preguntas diferentes. Se agradece cualquier información.

25voto

merriam Puntos 67

Le sugiero que consulte los libros sobre análisis de datos categóricos (cf. Alan Agresti's Categorical Data Analysis, 2002) para una mejor explicación y comprensión de regresión logística ordenada . Todas las preguntas que planteas se responden básicamente en algunos capítulos de esos libros. Si sólo está interesado en R ejemplos relacionados, Ampliación de modelos lineales en R por Julian Faraway (CRC Press, 2008) es una gran referencia.

Antes de responder a sus preguntas, regresión logística ordenada es un caso de modelos logit multinomiales en el que se ordenan las categorías. Supongamos que tenemos $J$ categorías ordenadas y la de los individuos $i$ con respuesta ordinal $Y_i$ , $p_{ij}=P(Yi=j)$ para $j=1,..., J$ . Con una respuesta ordenada, suele ser más fácil trabajar con las probabilidades acumuladas, $\gamma_{ij}=P(Y_i \le j)$ . Las probabilidades acumuladas son crecientes e invariables al combinar categorías adyacentes. Además, $\gamma_{iJ}=1$ por lo que sólo necesitamos el modelo $J–1$ probabilidades.

Ahora queremos enlazar $\gamma_{ij}$ s a las covariables $x$ . En su caso, Sat tiene 3 niveles ordenados: low , medium , high . Tiene más sentido tratarlos como ordenados en lugar de desordenados. Las demás variables son sus covariables. El modelo específico que está considerando es el modelo de probabilidades proporcionales y es matemáticamente equivalente a:

$$\mbox{logit } \gamma_j(x_i) = \theta_j - \beta^T x_i, j = 1 \ldots J-1$$ $$\mbox{where }\gamma_j(x_i)=P(Y_i \le j | x_i)$$

Se llama así porque las probabilidades relativas para $Y \le j$ comparando $x_1$ y $x_2$ son:

$$\left(\frac {\gamma_j(x_1)}{1-\gamma_j(x_1)}\right) / \left(\frac {\gamma_j(x_2)}{1-\gamma_j(x_2)}\right)=\exp(-\beta^T (x_1-x_2))$$

Obsérvese que la expresión anterior no depende de $j$ . Por supuesto, la hipótesis de las probabilidades proporcionales debe comprobarse para un conjunto de datos determinado.

Ahora, responderé a algunas (1, 2, 4) preguntas.

¿Cómo se puede entender si el modelo resumen(casa.plr) muestra una desviación residual de 3479,149 y un AIC (¿Criterio de información de Akaike?) de 3495.149. ¿Es eso bueno? En el caso de que sólo sean útiles como medidas relativas medidas relativas (es decir, para comparar con otro modelo), ¿cuál es una buena medida absoluta absoluta? ¿Es la desviación residual ¿se distribuye aproximadamente por chi-cuadrado? ¿Se puede utilizar el "% de predicción correcta" en los datos originales o alguna validación cruzada? ¿Cuál es la forma más manera de hacerlo?

Un modelo ajustado por polr es un especial glm Así que todas las suposiciones que se mantienen para un glm aguanta aquí. Si se cuidan bien los parámetros, se puede averiguar la distribución. En concreto, para probar la si el modelo es bueno o no es posible que quiera hacer un prueba de bondad de ajuste que prueban la siguiente nulidad (nótese que esto es sutil, la mayoría de las veces se quiere rechazar la nulidad, pero aquí no se quiere rechazar para obtener un buen ajuste):

$$H_o: \mbox{ current model is good enough }$$

Se utilizaría el prueba de chi-cuadrado por esto. El valor p se obtiene como:

1-pchisq(deviance(house.plr),df.residual(house.plr))

La mayoría de las veces se espera obtener un valor p superior a 0,05 para no rechazar el nulo y concluir que el modelo está bien ajustado (la corrección filosófica se ignora aquí).

El AIC debe ser alto para un buen ajuste al mismo tiempo que no se quiere tener un gran número de parámetros. stepAIC es una buena manera de comprobarlo.

Sí, definitivamente se puede utilizar la validación cruzada para ver si las predicciones se mantienen. Véase predict (opción: type = "probs" ) en ?polr . Lo único que hay que tener en cuenta son las covariables.

¿Qué información contiene el PR? La página página de ayuda sobre el perfil es genérica, y no ofrece ninguna orientación para polr

Como han señalado @chl y otros, pr contiene toda la información necesaria para obtener los IC y otra información relacionada con la probabilidad del polr fit . Todo glm s se ajustan utilizando el método de estimación de mínimos cuadrados ponderados iterativamente para el logaritmo de la probabilidad. En esta optimización se obtiene una gran cantidad de información (véase las referencias) que será necesaria para calcular la matriz de covarianza de la varianza, el IC, el valor t, etc. Incluye todo ello.

¿Cómo se interpretan los valores t de cada coeficiente? A diferencia de algunos modelos >adaptados, aquí no hay valores P.

A diferencia del modelo lineal normal (especial glm ) otros glm s no tienen la bonita distribución t para los coeficientes de regresión. Por lo tanto, todo lo que se puede obtener son las estimaciones de los parámetros y su matriz de covarianza asintótica utilizando la teoría de máxima verosimilitud. Por lo tanto:

$$\text{Variance}(\hat \beta) = (X^T W X)^{-1}\hat \phi$$

La estimación dividida por su error estándar es lo que BDR y WV llaman valor t (supongo que MASS convención aquí). Es equivalente al valor t de la regresión lineal normal, pero no sigue una distribución t. Utilizando la CLT, se distribuye normalmente de forma asintótica. Pero prefieren no utilizar esta aproximación (supongo), de ahí que no haya valores p. (Espero no estar equivocado, y si lo estoy, espero que BDR no esté en este foro. Además, espero que alguien me corrija si me equivoco).

5voto

alexs77 Puntos 36

He disfrutado mucho de la conversación aquí, sin embargo, creo que las respuestas no abordaron correctamente todos los componentes (muy buenos) de la pregunta que usted planteó. La segunda mitad de la página de ejemplo para polr es todo acerca de los perfiles. Una buena referencia técnica en este sentido es Venerables y Ripley, que hablan de la creación de perfiles y de lo que hace. Se trata de una técnica fundamental cuando se sale de la zona de confort del ajuste de los modelos de la familia exponencial con plena verosimilitud (GLM normales).

El punto clave es el uso de umbrales categóricos. Observará que el POLR no estima un término de intercepción habitual. En su lugar, hay $k-1$ parámetros molestos: umbrales para los que el riesgo ajustado tiende a caer en un determinado cúmulo de $k$ posibles categorías. Como estos umbrales nunca se estiman conjuntamente, su covarianza con los parámetros del modelo es desconocida. A diferencia de los MLG, no podemos "perturbar" un coeficiente en una cantidad y estar seguros de cómo puede afectar a otras estimaciones. Para ello, utilizamos la elaboración de perfiles teniendo en cuenta los umbrales perturbadores. La elaboración de perfiles es un tema inmenso, pero básicamente el objetivo es medir de forma robusta la covarianza de los coeficientes de regresión cuando el modelo está maximizando una probabilidad irregular, como con lmer , nls , polr y glm.nb .

La página de ayuda de ?profile.glm debería ser de alguna utilidad como polr son esencialmente GLMs (más los umbrales categóricos). Por último, puedes ver el código fuente, si te sirve de algo, usando getS3method('profile', 'polr') . Yo uso esto getS3method porque, aunque R parece insistir en que muchos métodos deberían estar ocultos, uno puede aprender sorprendentemente mucho sobre la implementación y los métodos revisando el código.

-¿Qué información contiene la pr? La página de ayuda sobre el perfil es genérica, y no da ninguna orientación para polr.

pr es un profile.polr, profile (clase heredada profile ). Hay una entrada para cada covariable. El perfilador hace un bucle sobre cada covariable y recalcula el ajuste óptimo del modelo con esa covariable fijada en una cantidad ligeramente diferente. La salida muestra el valor fijo de la covariable medido como una diferencia "z-score" escalada de su valor estimado y los efectos fijos resultantes en otras covariables. Por ejemplo, si se observa pr$InflMedium Si la respuesta es "z", notará que, cuando "z" es 0, los otros efectos fijos son los mismos que se encuentran en el ajuste original.

-¿Qué muestra plot(pr)? Veo seis gráficos. Cada una tiene un eje X que es numérico, aunque la etiqueta es una variable indicadora (parece una variable de entrada que es un indicador para un valor ordinal). Luego el eje Y es "tau", que no tiene explicación.

Otra vez, ?plot.profile da la descripción. El gráfico muestra a grandes rasgos cómo covarían los coeficientes de regresión. tau es la diferencia escalada, la puntuación z anterior, por lo que su valor 0 da los coeficientes de ajuste óptimos, representados con una marca de verificación. No se podría decir que este ajuste se comporta tan bien, pero esas "líneas" son en realidad splines. Si la probabilidad tuviera un comportamiento muy irregular en el ajuste óptimo, observaría un comportamiento extraño e impredecible en el gráfico. Esto le llevaría a estimar la salida usando una estimación de error más robusta (bootstrap/jackknife), para calcular los CIs usando method='profile' para recodificar variables, o para realizar otros diagnósticos.

-¿Qué muestran los pares(pr)? Parece un gráfico para cada par de variables de entrada, pero de nuevo no veo ninguna explicación de los ejes X o Y.

El archivo de ayuda dice: "El método de los pares muestra, para cada par de parámetros x e y, dos curvas que se cruzan en la estimación de máxima verosimilitud, que dan los lugares de los puntos en los que las tangentes a los contornos de la verosimilitud del perfil bivariante se vuelven verticales y horizontales, respectivamente. En el caso de una probabilidad de perfil normal exactamente bivariante, estas dos curvas serían líneas rectas que darían las medias condicionales de y|x y x|y, y los contornos serían exactamente elípticos". Básicamente, ayudan de nuevo a visualizar las elipses de confianza. Los ejes no ortogonales indican medidas altamente covariables, como InfMedio e InfAlto, que están intuitivamente muy relacionadas. De nuevo, las probabilidades irregulares darían lugar a imágenes bastante desconcertantes en este caso.

-¿Cómo se puede entender si el modelo dio un buen ajuste? summary(house.plr) muestra una desviación residual de 3479,149 y un AIC (criterio de información de Akaike) de 3495,149. Criterio de información de Akaike?) de 3495,149. ¿Es eso bueno? En el caso de que esos son sólo útiles como medidas relativas (es decir, para comparar con otro modelo ajuste), ¿cuál es una buena medida absoluta? ¿Es la desviación residual ¿se distribuye aproximadamente por chi-cuadrado? ¿Se puede utilizar el "% correctamente predicho" sobre los datos originales o alguna validación cruzada? ¿Cuál es la forma manera más fácil de hacerlo?

Un supuesto que es bueno evaluar es el de las probabilidades proporcionales. Esto se refleja un poco en la prueba global (que evalúa el polr contra un modelo loglineal saturado). Una limitación en este caso es que con datos grandes, las pruebas globales siempre fallan. Como resultado, es una buena idea utilizar gráficos e inspeccionar las estimaciones (betas) y la precisión (SEs) para el modelo loglineal y el ajuste de polr. Si no coinciden en gran medida, es posible que algo esté mal.

Con los resultados ordenados, es difícil definir el porcentaje de acuerdo. ¿Cómo se puede elegir un clasificador basado en el modelo y, si se hace, cómo se puede detectar el mal rendimiento de un clasificador deficiente? mode es una mala elección. Si tengo 10 logits de categoría y mi predicción siempre está fuera de una categoría, quizás no sea algo malo. Además, mi modelo puede predecir correctamente un 40% de posibilidades de respuesta 0, pero también un 20% de posibilidades de 8, 9, 10. Entonces, si observo un 9, ¿es bueno o malo? Si tiene que medir la concordancia, utilice un kappa ponderado, o incluso el MSE. El modelo loglineal siempre producirá el mejor acuerdo. Eso no es lo que hace el POLR.

-¿Cómo se aplica e interpreta el anova en este modelo? Los documentos dicen "Hay métodos para las funciones estándar de ajuste de modelos, incluyendo predict, summary, vcov, anova". Sin embargo, ejecutar anova(house.plr) resulta en que anova no está implementado para un solo objeto "polr

Puede probar los modelos anidados con waldtest y lrtest en el lmtest en R. Esto es equivalente al ANOVA. La interpretación es exactamente la misma que con los GLM.

-¿Cómo se interpretan los valores t de cada coeficiente? A diferencia de algunos ajustes de modelos, aquí no hay valores P.

De nuevo, a diferencia de los modelos lineales, el modelo POLR puede tener problemas de verosimilitud irregular, por lo que la inferencia basada en el hessiano puede ser muy inestable. Es análogo al ajuste de modelos mixtos, véase, por ejemplo, el archivo de ayuda sobre confint.merMod para el paquete lme4. En este caso, las evaluaciones realizadas con profiling muestran que la covarianza se comporta bien. Los programadores habrían hecho esto por defecto, excepto que la elaboración de perfiles puede ser computacionalmente muy intensiva, y por ello lo dejan en sus manos. Si debe ver la inferencia basada en Wald, utilice coeftest(house.plr) de la lrtest paquete.

3voto

kender Puntos 177

Para "probar" (es decir, evaluar) el supuesto de probabilidades proporcionales en R, puede utilizar residuals.lrm() en el paquete Design de Frank Harrell Jr. Si escribe ?residuals.lrm , hay un ejemplo rápido de cómo Frank Harrell recomienda evaluar el supuesto de probabilidades proporcionales (es decir, visualmente, en lugar de mediante una prueba de botón). Diseña estimaciones de regresiones logísticas ordenadas utilizando lrm(), que puede sustituir a polr() del MASS.

Para un ejemplo más formal de cómo probar visualmente la hipótesis de probabilidades proporcionales en R, véase: Documento: Modelos de regresión de respuesta ordinal en ecología Autor(es): Antoine Guisan y Frank E. Harrell Fuente: Journal of Vegetation Science, Vol. 11, No. 5 (Oct., 2000), pp. 617-626

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