112 votos

Gráficos de diagnóstico para el conde de regresión

Lo gráficos de diagnóstico (y quizás de pruebas formales) es lo que más te informativo para las regresiones donde el resultado es una variable de recuento?

Me interesa especialmente la de Poisson y binomial negativo de los modelos, así como cero-inflado y obstáculo homólogos de cada uno. La mayoría de las fuentes que he encontrado simplemente gráco de los residuos versus valores ajustados sin discusión de lo que estas parcelas "debe" parecer.

La sabiduría y referencias muy apreciado. La historia de fondo sobre por qué estoy preguntando, si es pertinente, es mi otra pregunta.

Las discusiones relacionadas con:

123voto

Momo Puntos 5125

Esto es lo que les gusta hacer (por ejemplo yo uso el overdispersed y no muy fácilmente modelado quine datos del número de alumnos por días de ausencia de la escuela de MASS):

  1. La prueba y el gráfico de la original recuento de datos , mediante el trazado de frecuencias observadas y equipada de frecuencias (véase el capítulo 2 en Amistosos), que es apoyado por el vcd paquete en R en piezas grandes. Por ejemplo, goodfit y rootogram:

    library(MASS)
    library(vcd)
    data(quine) 
    fit <- goodfit(quine$Days) 
    summary(fit) 
    rootogram(fit)
    

    o con Ord parcelas que ayudan en la identificación de los cuales cuentan modelo de datos subyacente (por ejemplo, aquí la pendiente es positiva y la intersección es positivo que habla de una distribución binomial negativa):

    Ord_plot(quine$Days)
    

    o con el "XXXXXXness" parcelas donde XXXXX es el de la distribución de la elección, dicen Poissoness de la trama (que habla en contra de Poisson, intenta también type="nbinom"):

    distplot(quine$Days, type="poisson")
    
  2. Inspeccionar habitual de bondad de ajuste de las medidas (como el cociente de probabilidad estadística frente a un modelo nulo o similar):

    mod1 <- glm(Days~Age+Sex, data=quine, family="poisson")
    summary(mod1)
    anova(mod1, test="Chisq")
    
  3. Comprobar / underdispersion observando residual deviance/df o en un formal de la estadística de prueba (por ejemplo, ver esta respuesta). Aquí tenemos claramente sobredispersión:

    library(AER)
    deviance(mod1)/mod1$df.residual
    dispersiontest(mod1)
    
  4. Comprobar influyentes y puntos de apalancamiento, por ejemplo, con la influencePlot en la car paquete. Por supuesto, aquí muchos de los puntos son muy influyente porque de Poisson es un mal modelo:

    library(car)
    influencePlot(mod1)
    
  5. Verificación de la inflación cero mediante el ajuste de un recuento de modelo de datos y su zeroinflated / obstáculo de la contraparte y compararlos (generalmente con el AIC). Aquí un cero inflado de que el modelo de mejor ajuste que la simple distribución de Poisson (de nuevo, probablemente debido a la sobredispersión):

    library(pscl)
    mod2 <- zeroinfl(Days~Age+Sex, data=quine, dist="poisson")
    AIC(mod1, mod2)
    
  6. Gráco de los residuos (raw, la desviación o la escala de desviación) en el eje y frente a la (log) de los valores de la predicción (o el predictor lineal) en el eje x. Aquí vemos muy grandes residuos y una considerable desviación de la desviación de los residuos de la normal (todos los que hablan en contra de la distribución de Poisson):

    res <- residuals(mod1, type="deviance")
    plot(log(predict(mod1)), res)
    abline(h=0, lty=2)
    qqnorm(res)
    qqline(res)
    
  7. Si está interesado, trazar una mitad diagrama de probabilidad normal de los residuos, mediante el trazado ordenado absoluta de los residuos vs espera de los valores normales Atkinson (1981). Una característica especial sería para simular una referencia de 'la línea' y envolvente simulado / bootstrap intervalos de confianza (no se muestra):

    library(faraway)
    halfnorm(residuals(mod1))
    
  8. Gráficos de diagnóstico para el registro de modelos lineales para datos de conteo (véanse los capítulos 7.2 y 7.7 en el ambiente del libro). Parcela predijo vs valores observados, tal vez con algún intervalo de estimación (yo lo hice sólo para los grupos de edad--aquí vemos de nuevo que estamos muy lejos con nuestras estimaciones, debido a la sobredispersión aparte, tal vez, en el grupo de F3. La rosa de los puntos son el punto de predicción de $\pm$ un error estándar):

    plot(Days~Age, data=quine) 
    prs  <- predict(mod1, type="response", se.fit=TRUE)
    pris <- data.frame("pest"=prs[[1]], "lwr"=prs[[1]]-prs[[2]], "upr"=prs[[1]]+prs[[2]])
    points(pris$pest ~ quine$Age, col="red")
    points(pris$lwr  ~ quine$Age, col="pink", pch=19)
    points(pris$upr  ~ quine$Age, col="pink", pch=19)
    

Esto debe darle gran parte de la información útil sobre el análisis y la mayoría de los pasos de trabajo para todos los estándar de los datos del conteo de las distribuciones (por ejemplo, Poisson, Binomial Negativa, COM Poisson, las Leyes de Poder).

22voto

Eero Puntos 1612

Para el enfoque de la utilización de diagnóstico estándar maquina pero con ganas de saber lo que debe buscar gusta, me gusta el papel:

 Buja, A., Cook, D. Hofmann, H., Lawrence, M. Lee, E.-K., Swayne,
 D.F and Wickham, H. (2009) Statistical Inference for exploratory
 data analysis and model diagnostics Phil. Trans. R. Soc. A 2009
 367, 4361-4383 doi: 10.1098/rsta.2009.0120

Uno de los enfoques mencionados hay que crear varios conjuntos de datos simulados donde las hipótesis de interés son verdaderas y crear los gráficos de diagnóstico para estos conjuntos de datos simulados y también crear el diagnóstico para la trama de los datos reales. poner todos estos gráficos en la pantalla al mismo tiempo (al azar colocar el basado en datos reales). Ahora usted tiene una referencia visual de lo que las parcelas debería ser y si los supuestos a cabo por el real de datos, a continuación, que la trama debe verse sólo como los otros (si usted no puede decir que es el real de datos, entonces la hipótesis se prueba son probablemente lo suficientemente cerca a la verdad), pero si los datos reales de la parcela se ve claramente diferente de los otros, entonces eso significa que al menos uno de los supuestos no se cumplen. El vis.test función en el TeachingDemos paquete de R ayuda a implementar esto como una prueba.

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