Disfruté mucho la conversación aquí, sin embargo, creo que las respuestas no abordaron correctamente todos los componentes (muy buenos) de la pregunta que planteó. La segunda mitad de la página de ejemplo polr
tiene que ver con el perfil. Una buena referencia técnica aquí es Venerables y Ripley, quienes discuten el perfil y lo que hace. Esta es una técnica crítica cuando se va más allá de la zona de confort al instalar modelos familiares exponenciales con plena probabilidad (GLMs regulares).
La desviación clave aquí es el uso de umbrales categóricos. Notará que POLR no estima un término de intercepción habitual. Por el contrario, existen parámetros molestos : umbrales para los cuales el riesgo ajustado tiende a caer en una cierta acumulación de las categorías posibles. Dado que estos umbrales nunca se estiman conjuntamente, se desconoce su covarianza con los parámetros del modelo. A diferencia de los GLM, no podemos "perturbar" un coeficiente por una cantidad y estar seguros de cómo podría afectar otras estimaciones. Usamos perfiles para hacer esta contabilidad de los umbrales molestos. Perfilado es un tema inmenso, pero básicamente el objetivo es la medición de forma robusta la covarianza de los coeficientes de regresión cuando el modelo es maximizar la probabilidad irregular, al igual que con , , , ykk−1klmer
nls
polr
glm.nb
.
La página de ayuda ?profile.glm
debería ser útil, ya que los polr
objetos son esencialmente GLM (más los umbrales categóricos). Por último, puede usar el pico de código fuente, si es de alguna utilidad getS3method('profile', 'polr')
. Utilizo mucho esta getS3method
función porque, aunque R parece insistir en que muchos métodos deben estar ocultos, uno puede aprender sorprendentemente mucho sobre la implementación y los métodos al revisar el código.
• ¿Qué información contiene pr? La página de ayuda en el perfil es genérica y no brinda orientación para la encuesta.
pr
es un profile.polr, profile
objeto (clase heredada profile
). Hay una entrada para cada covariable. El generador de perfiles recorre cada covariable, 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 de "puntaje z" escalada de su valor estimado y los efectos fijos resultantes en otras covariables. Por ejemplo, si observa pr$InflMedium
, notará que, cuando "z" es 0, los otros efectos fijos son los mismos que se encuentran en el ajuste original.
• ¿Qué muestra la gráfica (pr)? 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). Entonces el eje Y es "tau", que es completamente inexplicable.
De nuevo, ?plot.profile
da la descripción. El gráfico muestra aproximadamente cómo los coeficientes de regresión covarían. tau es la diferencia escalada, la puntuación z anterior, por lo que su valor 0 proporciona los coeficientes de ajuste óptimos, representados con una marca de verificación. No diría que este ajuste se comporta tan bien, pero esas "líneas" son en realidad splines. Si la probabilidad se comportara de manera muy irregular en el ajuste óptimo, observaría un comportamiento extraño e impredecible en la trama. Esto le corresponde a usted estimar la salida utilizando una estimación de error más robusta (bootstrap / jackknife), calcular los IC utilizando method='profile'
, recodificar variables o realizar otros diagnósticos.
• ¿Qué muestran los pares (pr)? Parece un gráfico para cada par de variables de entrada, pero nuevamente no veo ninguna explicación de los ejes X o Y.
El archivo de ayuda dice: "El método de 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 loci de los puntos en los que las tangentes a los contornos de la probabilidad del perfil bivariado se vuelven verticales y horizontal, respectivamente. En el caso de una probabilidad de perfil normal exactamente bivariada, 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, nuevamente te ayudan a visualizar las elipses de confianza. Los ejes no ortogonales indican medidas altamente covariables, como InfMedium e InfHigh, que están intuitivamente muy relacionadas. Una vez más, las probabilidades irregulares conducirían a imágenes que son bastante desconcertantes aquí.
• ¿Cómo se puede entender si el modelo se ajustaba bien? resumen (house.plr) muestra la desviación residual 3479.149 y AIC (criterio de información de Akaike?) de 3495.149. ¿Es bueno eso? En el caso de que solo sean útiles como medidas relativas (es decir, para comparar con otro ajuste del modelo), ¿cuál es una buena medida absoluta? ¿Se distribuye la desviación residual aproximadamente chi-cuadrado? ¿Se puede usar "% predicho correctamente" en los datos originales o alguna validación cruzada? Cual es la forma mas fácil de hacer eso?
Una suposición que es buena para evaluar es la suposición de probabilidades proporcionales. Esto se refleja de alguna manera en la prueba global (que evalúa la polr contra un modelo loglineal saturado). Una limitación aquí es que con datos grandes, las pruebas globales siempre fallan. Como resultado, es una buena idea utilizar gráficos e inspeccionar estimaciones (betas) y precisión (SE) para el modelo loglinear y el ajuste de polr. Si están en total desacuerdo, tal vez algo esté mal.
Con resultados ordenados, es difícil definir el porcentaje de acuerdo. ¿Cómo va a elegir un clasificador basado en el modelo, y si lo hace, cómo obtendrá un bajo rendimiento de un clasificador deficiente? mode
Es una mala elección. Si tengo 10 logits de categoría y mi predicción siempre es una categoría, quizás eso no sea algo malo. Además, mi modelo puede predecir correctamente una probabilidad del 40% de una respuesta 0, pero también una probabilidad del 20% de 8, 9, 10. Entonces, si observo que 9 es bueno o malo? Si debe medir el acuerdo, use un kappa ponderado, o incluso un MSE. El modelo loglineal siempre producirá el mejor acuerdo. Eso no es lo que hace el POLR.
• ¿Cómo se aplica e interpreta anova en este modelo? Los documentos dicen "Hay métodos para las funciones estándar de ajuste del modelo, incluyendo predicción, resumen, vcov, anova". Sin embargo, ejecutar anova (house.plr) da como resultado que anova no se implemente para un solo objeto "polr"
Puede probar modelos anidados con waldtest
y lrtest
en el lmtest
paquete en R. Esto es equivalente a ANOVA. La interpretación es exactamente la misma que con los GLM.
• ¿Cómo se interpretan los valores t para cada coeficiente? A diferencia de algunos ajustes de modelos, no hay valores de P aquí.
Nuevamente, a diferencia de los modelos lineales, el modelo POLR es capaz de tener problemas con probabilidad irregular, por lo que la inferencia basada en el Hessian puede ser muy inestable. Es análogo al ajuste de modelos mixtos; consulte, por ejemplo, confint.merMod
el archivo de ayuda para el paquete lme4. Aquí, las evaluaciones realizadas con perfiles muestran que la covarianza se comporta bien. Los programadores habrían hecho esto de forma predeterminada, excepto que la creación de perfiles puede ser computacionalmente muy intensiva y, por lo tanto, la dejan en sus manos. Si debe ver la inferencia basada en Wald, úsela coeftest(house.plr)
del lrtest
paquete.
methods("profile")
le dará los métodos (S3 en este caso) asociados a unprofile
objeto R , luego verá que hay un método dedicado para lospolr
resultados, que puede examinar en línea escribiendogetAnywhere("profile.polr")
en el indicador R.