Interpretación de QQplot: ¿hay alguna regla general para decidir si no es normal?


47

He leído suficientes hilos en QQplots aquí para comprender que un QQplot puede ser más informativo que otras pruebas de normalidad. Sin embargo, no tengo experiencia en interpretar QQplots. Busqué mucho en Google; Encontré muchos gráficos de QQplots no normales, pero no hay reglas claras sobre cómo interpretarlos, aparte de lo que parece ser una comparación con distribuciones conocidas más "instinto".

Me gustaría saber si tiene (o si conoce) alguna regla general que lo ayude a decidir si no es normal.

Esta pregunta surgió cuando vi estos dos gráficos: gráfico 2 gráfico 1

Entiendo que la decisión de no normalidad depende de los datos y de lo que quiero hacer con ellos; sin embargo, mi pregunta es: en general, ¿cuándo las desviaciones observadas de la línea recta constituyen evidencia suficiente para hacer irrazonable la aproximación de la normalidad?

Por lo que vale, la prueba de Shapiro-Wilk no pudo rechazar la hipótesis de la no normalidad en ambos casos.


3
Las bandas de confianza alrededor de la línea QQ son geniales. ¿Puedes compartir el código R que usaste para obtenerlos?
user603

77
Es solo qqPlot () de {qualityTools} :)
greymatter0

Respuestas:


43

Tenga en cuenta que el Shapiro-Wilk es una poderosa prueba de normalidad.

El mejor enfoque es realmente tener una buena idea de cuán sensible es cualquier procedimiento que desee utilizar a varios tipos de no normalidad (cuán gravemente no normal tiene que ser de esa manera para que afecte su inferencia más que usted poder aceptar).

Un enfoque informal para observar las gráficas sería generar una serie de conjuntos de datos que en realidad son normales del mismo tamaño de muestra que el que tiene usted (por ejemplo, digamos 24 de ellos). Trace sus datos reales entre una cuadrícula de tales tramas (5x5 en el caso de 24 conjuntos aleatorios). Si no tiene un aspecto especialmente inusual (el peor aspecto, por ejemplo), es razonablemente consistente con la normalidad.

ingrese la descripción de la imagen aquí

En mi opinión, el conjunto de datos "Z" en el centro se ve más o menos a la par con "o" y "v" y tal vez incluso "h", mientras que "d" y "f" se ven un poco peor. "Z" son los datos reales. Si bien no creo por un momento que sea realmente normal, no es particularmente inusual cuando se compara con datos normales.

[Editar: Acabo de realizar una encuesta aleatoria, bueno, le pregunté a mi hija, pero en un momento bastante aleatorio , y su elección por lo menos como una línea recta fue "d". Entonces, el 100% de los encuestados pensó que "d" era la más extraña.]

Un enfoque más formal sería hacer una prueba de Shapiro-Francia (que se basa efectivamente en la correlación en el diagrama QQ), pero (a) ni siquiera es tan potente como la prueba de Shapiro Wilk, y (b) las pruebas formales responden a pregunta (a veces) a la que ya debería saber la respuesta de todos modos (la distribución de la que se extrajeron sus datos no es exactamente normal), en lugar de la pregunta que necesita respuesta (¿qué tan importante es eso?).


Según lo solicitado, codifique la pantalla anterior. Nada lujoso involucrado:

z = lm(dist~speed,cars)$residual
n = length(z)
xz = cbind(matrix(rnorm(12*n),nr=n),z,matrix(rnorm(12*n),nr=n))
colnames(xz) = c(letters[1:12],"Z",letters[13:24])

opar = par()
par(mfrow=c(5,5));
par(mar=c(0.5,0.5,0.5,0.5))
par(oma=c(1,1,1,1));

ytpos = (apply(xz,2,min)+3*apply(xz,2,max))/4
cn = colnames(xz)

for(i in 1:25) {
  qqnorm(xz[,i],axes=FALSE,ylab= colnames(xz)[i],xlab="",main="")
  qqline(xz[,i],col=2,lty=2)
  box("figure", col="darkgreen")
  text(-1.5,ytpos[i],cn[i])
}

par(opar)

Tenga en cuenta que esto fue solo con fines ilustrativos; Quería un pequeño conjunto de datos que pareciera ligeramente no normal, por eso utilicé los residuos de una regresión lineal en los datos de los automóviles (el modelo no es del todo apropiado). Sin embargo, si realmente estuviera generando una visualización de este tipo para un conjunto de residuos para una regresión, haría una regresión de los 25 conjuntos de datos en las mismas que en el modelo, y mostraría gráficos QQ de sus residuos, ya que los residuos tienen algunos estructura no presente en números aleatorios normales.x

(He estado haciendo series de tramas como esta desde mediados de los años 80 al menos. ¿Cómo puedes interpretar las tramas si no estás familiarizado con cómo se comportan cuando se cumplen los supuestos y cuándo no?)

Ver más:

Buja, A., Cook, D. Hofmann, H., Lawrence, M. Lee, E.-K., Swayne, DF y Wickham, H. (2009) Inferencia estadística para análisis de datos exploratorios y diagnóstico de modelos Phil. Trans. R. Soc. A 2009 367, 4361-4383 doi: 10.1098 / rsta.2009.0120


8
+1. ¡Realmente me gusta la idea de comparar los gráficos QQ de su muestra con algunos generados aleatoriamente!
COOLSerdash

Gracias @Glen_b. ¿Puedo preguntarle cómo produjo la cuadrícula de gráficos?
greymatter0

3
Acabo de descubrir que nunca respondí a tu solicitud, greymatter0. Realmente no hay espacio para poner todo mi guión, pero resumiré la esencia del mismo. Jugué con las opciones de la trama; opar=par(); par(mfrow=c(5,5)); par(mar=c(0.5,0.5,0.5,0.5)); par(oma=c(1,1,1,1))luego, en un bucle, ilo hice qqnorm(xz[,i],axes=FALSE,ylab= colnames(xz)[i],xlab="",main=""); qqline(xz[,i],col=2,lty=2); box("figure", col="darkgreen")al final par(opar)para configurar las opciones de nuevo a lo que eran antes. Eso deja de lado algunos de los detalles, pero debería poder administrar desde allí.
Glen_b

@ greymatter0 ... y ahora descubro que no te hice ping correctamente antes cuando finalmente respondí. Mis disculpas.
Glen_b

No te preocupes Glen_b, ¡muchas gracias por recordar!
greymatter0

22

Sin contradecir ninguna de las excelentes respuestas aquí, tengo una regla general que a menudo (pero no siempre) es decisiva. (Un comentario pasajero en la respuesta de @Dante también parece pertinente).

A veces parece demasiado obvio decirlo, pero aquí estás.

Me complace llamar a una distribución no normal si creo que puedo ofrecer una descripción diferente que sea claramente más apropiada.

Entonces, si hay una curvatura menor y / o irregularidad en las colas de un diagrama cuantil-cuantil normal, pero la rectitud aproximada en un diagrama cuantil-cuantil gamma, puedo decir "Eso no está bien caracterizado como normal; es más como un gamma ".

No es casualidad que esto haga eco de un argumento estándar en historia y filosofía de la ciencia, sin mencionar la práctica científica general, de que una hipótesis se refuta de manera más clara y efectiva cuando se tiene una mejor para ponerla en su lugar. (Cue: alusiones a Karl Popper, Thomas S. Kuhn, etc.)

Es cierto que para los principiantes, y de hecho para todos, hay una gradación suave entre "Eso es normal, excepto por pequeñas irregularidades que siempre esperamos" y "Eso es muy diferente de lo normal, excepto por alguna similitud aproximada que a menudo obtenemos ".

Los sobres de confianza (similares a) y las muestras simuladas múltiples pueden ser de gran ayuda, y yo uso y recomiendo ambos, pero esto también puede ser útil. (Por cierto, comparar con una cartera de simulaciones es una reinvención reciente repetida, pero se remonta al menos hasta Shewhart en 1931).

Haré eco de mi línea superior. A veces, ninguna distribución de marca parece encajar en absoluto, y debe avanzar lo mejor que pueda.


12

Como dijo @Glen_b, puede comparar sus datos con los datos que está seguro de que son normales: los datos que generó usted mismo y luego confiar en su instinto :)

El siguiente es un ejemplo del libro de texto OpenIntro Statistics

Echemos un vistazo a este gráfico QQ:

qq1

¿Es normal? Comparémoslo con datos distribuidos normalmente:

qq2

Este se ve mejor que nuestros datos, por lo que nuestros datos no parecen normales. Asegurémonos simulándolo varias veces y trazando lado a lado

qq3

Así que nuestro instinto nos dice que no es probable que la muestra se distribuya normalmente.

Aquí está el código R para hacer esto

load(url("http://www.openintro.org/stat/data/bdims.RData"))
fdims = subset(bdims, bdims$sex == 0)

qqnorm(fdims$wgt, col=adjustcolor("orange", 0.4), pch=19)
qqline(fdims$wgt)

qqnormsim = function(dat, dim=c(2,2)) {
  par(mfrow=dim)
  qqnorm(dat, col=adjustcolor("orange", 0.4), 
         pch=19, cex=0.7, main="Normal QQ Plot (Data)")
  qqline(dat)
  for (i in 1:(prod(dim) - 1)) {
    simnorm = rnorm(n=length(dat), mean=mean(dat), sd=sd(dat))
    qqnorm(simnorm, col=adjustcolor("orange", 0.4), 
           pch=19, cex=0.7,
           main="Normal QQ Plot (Sim)")
    qqline(simnorm)
  }
  par(mfrow=c(1, 1))
}
qqnormsim(fdims$wgt)

9

Hay muchas pruebas de normalidad. Por lo general, uno se centra en la hipótesis nula , a saber, " ". Sin embargo, se presta poca atención a la hipótesis alternativa : "¿contra qué"?H0:F=Normal

Típicamente, las pruebas que consideran cualquier otra distribución como la hipótesis alternativa tienen poca potencia en comparación con las pruebas con la hipótesis alternativa correcta (ver, por ejemplo, 1 y 2 ).

Existe un interesante paquete R con la implementación de varias pruebas de normalidad no paramétricas ('nortest', http://cran.r-project.org/web/packages/nortest/index.html). Como se menciona en los documentos anteriores, la prueba de razón de probabilidad, con hipótesis alternativas apropiadas, es más poderosa que estas pruebas.

La segunda referencia hace referencia a la idea mencionada por @Glen_b acerca de comparar su muestra con muestras aleatorias de su modelo (ajustado). Se llaman "QQ-Envelopes" o "QQ-Fans". Esto implica implícitamente tener un modelo para generar los datos y, en consecuencia, una hipótesis alternativa.


4

Cuando enseño mi curso de estrategias de modelado de regresión, este tema siempre nos preocupa a mis alumnos y a mí. Les digo que nuestras evaluaciones gráficas son siempre subjetivas, y tiendo a preocuparme por las gráficas más temprano en el día que más tarde cuando estoy cansado. Agregar pruebas estadísticas formales no ayuda lo suficiente: las pruebas pueden detectar la no normalidad trivial para tamaños de muestra muy grandes y omitir la no normalidad importante para pequeña . Prefiero utilizar métodos que no supongan normalidad que sean eficientes, por ejemplo, regresión ordinal para continua .YnY


1
+1. Si tiene cinco minutos en @Franck, ¿podría echar un vistazo a este hilo: stats.meta.stackexchange.com/questions/4743 y pesar allí? Se trata de nuestras etiquetas para logit / probit ordinal / ordenado: hay un montón completo o etiquetas relacionadas, y algunas inconsistencias en cómo se usa la etiqueta [ordinal], por lo que sugiero que ordene estas etiquetas. Sería genial saber tu opinión sobre la mejor manera de organizarlos.
ameba dice Reinstate Monica

1
Comience con la publicación sobre la función rms orm con un ejemplo para una continua . No puedo encontrarlo en este momento ...Y
Frank Harrell
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.