57 votos

Interpretando QQplot - ¿Hay alguna regla general para decidir sobre la no normalidad?

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

Me gustaría saber si tienes (o conoces) alguna regla de oro para ayudarte a decidir si hay no normalidad.

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 lo que quiero hacer con ellos; sin embargo, mi pregunta es: en general, ¿cuándo las desviaciones observadas de la línea recta constituyen suficiente evidencia para que la aproximación a la normalidad sea irrazonable?

Para lo que vale, la prueba de Shapiro-Wilk no rechazó la hipótesis de no normalidad en ambos casos.

3 votos

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

8 votos

Es solo qqPlot() de {qualityTools} :)

62voto

AdamSane Puntos 1825

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

El mejor enfoque es realmente tener una buena idea de la sensibilidad de cualquier procedimiento que desee utilizar a diversos tipos de no-normalidad (¿qué tan no normal debe ser de esa manera para afectar su inferencia más de lo que puede aceptar?).

Un enfoque informal para observar los gráficos sería generar una serie de conjuntos de datos que sean realmente normales del mismo tamaño de muestra que el que tiene, por ejemplo, 24 de ellos. Grafique sus datos reales entre una cuadrícula de esos gráficos (5x5 en el caso de 24 conjuntos aleatorios). Si no se ve especialmente inusual (el peor aspecto, digamos), está razonablemente consistente con la normalidad.

introducir descripción de la imagen aquí

A mi parecer, el conjunto de datos "Z" en el centro se ve aproximadamente igual que "o" y "v" y quizás incluso "h", mientras que "d" y "f" se ven ligeramente peor. "Z" son los datos reales. Aunque no creo ni por un momento que sean realmente normales, no llaman especialmente la atención cuando se comparan 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 para el menos parecido a una línea recta fue "d". Así que el 100% de los encuestados consideró que "d" era el más extraño.]

Un enfoque más formal sería realizar una prueba de Shapiro-Francia (que se basa efectivamente en la correlación en la gráfica QQ), pero (a) ni siquiera es tan potente como la prueba de Shapiro-Wilk, y (b) las pruebas formales responden a una pregunta (a veces) que ya deberías conocer de antemano (la distribución de la cual se extrajeron tus datos no es exactamente normal), en lugar de la pregunta que necesitas responder (¿cuánto importa eso?).


Como se solicitó, aquí está el código para la visualización anterior. Nada complicado 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 de ilustración; quería un pequeño conjunto de datos que pareciera ligeramente no normal, por lo que utilicé los residuos de una regresión lineal en los datos de autos (el modelo no es del todo apropiado). Sin embargo, si realmente estuviera generando tal visualización para un conjunto de residuos para una regresión, regresaría los 25 conjuntos de datos en las mismas $x$'s que en el modelo, y mostraría gráficos QQ de sus residuos, ya que los residuos tienen cierta estructura no presente en números aleatorios normales.

(He estado realizando conjuntos de gráficos como este desde mediados de los años 80 al menos. ¿Cómo puedes interpretar gráficos si no estás familiarizado con cómo se comportan cuando se cumplen las suposiciones --- y cuando no?)

Ver más:

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


Editar: Mencioné este tema en mi segundo párrafo pero quiero enfatizar el punto nuevamente, en caso de que se olvide en el camino. Lo que generalmente importa no es si puedes notar que algo no es realmente normal (ya sea mediante prueba formal o mirando un gráfico) sino más bien cuánto importa para lo que usarías ese modelo: ¿Qué tan sensibles son las propiedades que te importan a la cantidad y manera de la falta de ajuste que podrías tener entre tu modelo y la población real?

La respuesta a la pregunta "¿la población de la que estoy muestreando está realmente distribuida normalmente" es, esencialmente siempre, "no" (no necesitas una prueba o un gráfico para eso), pero la pregunta es más bien "¿cuánto importa?". Si la respuesta es "poco o nada", el hecho de que la suposición sea falsa tiene poca consecuencia práctica. Un gráfico puede ayudar en cierta medida ya que al menos te muestra algo de la 'cantidad y manera' de desviación entre la muestra y el modelo de distribución, por lo que es un punto de partida para considerar si importaría. Sin embargo, si importa depende de las propiedades de lo que estás haciendo (considera una prueba t versus una prueba de varianza, por ejemplo; la prueba t en general puede tolerar desviaciones mucho más sustanciales de las suposiciones que se hacen en su derivación que una prueba de la relación F de igualdad de varianzas).

9 votos

+1. ¡Realmente me gusta la idea de comparar los QQ-plots de tu muestra con algunos generados aleatoriamente!

0 votos

Gracias @Glen_b. ¿Puedo preguntarte cómo creaste la cuadrícula de gráficos?

3 votos

Acabo de descubrir que nunca respondí a tu solicitud, greymatter0. Realmente no hay espacio para poner todo mi script, pero voy a resumir la idea principal. Jugué con opciones de trazado -- 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 sobre i hice qqnorm(xz[,i],axes=FALSE,ylab= colnames(xz)[i],xlab="",main=""); qqline(xz[,i],col=2,lty=2); box("figure", col="darkgreen") luego al final par(opar) para restablecer las opciones a como estaban antes. Eso omite algunos detalles pero deberías poder manejarlo desde ahí.

28voto

Nick Cox Puntos 22819

Sin contradecir ninguna de las respuestas excelentes 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 para decirlo, pero aquí está.

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

Por lo tanto, si hay una ligera curvatura y/o irregularidad en las colas de un gráfico de normal cuantil-cuantil, pero aproximada rectitud en un gráfico de gamma cuantil-cuantil, puedo decir "Eso no está bien caracterizado como normal; es más como una gamma".

No es casualidad que esto haga eco de un argumento estándar en la historia y filosofía de la ciencia, sin mencionar la práctica científica general, de que una hipótesis se refuta con más claridad y efectividad cuando tienes una mejor para reemplazarla. (Cita: alusiones a Karl Popper, Thomas S. Kuhn, y demás).

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

Los envoltorios de confianza (similar) y las múltiples muestras simuladas pueden ayudar enormemente, y yo uso y recomiendo ambos, pero esto también puede ser útil. (Por cierto, comparar con un portafolio de simulaciones es una reinvento reciente repetido, pero se remonta al menos a Shewhart en 1931).

Reiteraré mi línea superior. A veces ninguna distribución de marca parece encajar en absoluto, y tienes que avanzar lo mejor que puedas.

15voto

Alexey Grigorev Puntos 1751

Como dijo @Glen_b, puedes comparar tus datos con los datos que estás seguro son normales: los datos que generaste tú mismo, y luego confiar en tu instinto :)

Lo siguiente es un ejemplo del libro de texto OpenIntro Statistics

Veamos este Gráfico Q-Q:

qq1

¿Es normal? Comparemos con datos distribuidos de forma normal:

qq2

Este se ve mejor que nuestros datos, por lo que nuestros datos no parecen normales. Asegurémonos simulándolos varias veces y comparando uno al lado del otro

qq3

Por lo tanto, nuestro instinto nos dice que es poco probable que la muestra se distribuya normalmente.

Aquí está el código en 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="Gráfico Q-Q Normal (Datos)")
  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="Gráfico Q-Q Normal (Sim)")
    qqline(simnorm)
  }
  par(mfrow=c(1, 1))
}
qqnormsim(fdims$wgt)

12voto

Denis Bazhenov Puntos 2944

Existen muchos tests de normalidad. Uno suele enfocarse en la hipótesis nula, es decir, "$H_0: F=Normal$". Sin embargo, se presta poca atención a la hipótesis alternativa: "¿en contra de qué"?

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

Existe un interesante paquete de R con la implementación de varios tests de normalidad no paramétricos ('nortest', http://cran.r-project.org/web/packages/nortest/index.html). Como se menciona en los artículos anteriores, el test de razón de verosimilitud, con la hipótesis alternativa adecuada, es más poderoso que estos tests.

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

7voto

dan90266 Puntos 609

Cuando enseño mi curso de estrategias de modelado de regresión, este tema siempre preocupa a mis estudiantes y a mí. Les digo que nuestras evaluaciones gráficas siempre son subjetivas, y tiendo a preocuparme más por los gráficos temprano en el día que más tarde cuando estoy cansado. Agregar pruebas estadísticas formales no es suficiente: las pruebas pueden detectar no normalidades triviales para tamaños de muestra muy grandes y pasar por alto no normalidades importantes para tamaños pequeños de $n$. Prefiero usar métodos que no asumen normalidad que son eficientes, por ejemplo, regresión ordinal para $Y$ continuo.

1 votos

+1. Si tienes cinco minutos @Franck, ¿podrías echar un vistazo a este hilo: stats.meta.stackexchange.com/questions/4743 y dar tu opinión allí? Se trata de nuestras etiquetas para logit/probit ordinales/ordenadas: hay un montón de etiquetas relacionadas, y cierta inconsistencia en cómo se utiliza la etiqueta [ordinal], por lo que estoy sugiriendo organizar estas etiquetas de manera más ordenada. Sería genial saber tu opinión sobre la mejor forma de organizarlas.

1 votos

Comienza con la publicación sobre la función orm rms con un ejemplo para un $Y continuo. No puedo encontrarlo en este momento ...

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