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.