33 votos

A ver si los datos están distribuidos normalmente en R

Por favor alguien puede ayudarme a rellenar la siguiente función en R:

#data is a single vector of decimal values
normally.distributed <- function(data) {
if(data is normal)
return(TRUE)
else
return(NO)
}

115voto

Ian Fellows Puntos 8013

Pruebas de normalidad no hacer lo que la mayoría piensa que hacer. Shapiro de la prueba de Anderson Darling, y los demás son hipótesis nula pruebas en CONTRA de la suposición de normalidad. Estos no deben ser utilizados para determinar si el uso normal de la teoría de los procedimientos estadísticos. De hecho, son prácticamente ningún valor para el analista de datos. Bajo qué condiciones estamos interesados en rechazar la hipótesis nula de que los datos están distribuidos normalmente? Nunca me he encontrado con una situación en la que una prueba normal es la cosa correcta de hacer. Cuando el tamaño de la muestra es pequeño, incluso grandes desviaciones de la normalidad no son detectados, y cuando el tamaño de la muestra es grande, incluso la más pequeña desviación de la normalidad que conducirá a una rechazado null.

Por ejemplo:

> set.seed(100)
> x <- rbinom(15,5,.6)
> shapiro.test(x)

    Shapiro-Wilk normality test

data:  x 
W = 0.8816, p-value = 0.0502

> x <- rlnorm(20,0,.4)
> shapiro.test(x)

    Shapiro-Wilk normality test

data:  x 
W = 0.9405, p-value = 0.2453

Así, en estos dos casos (binomial y lognormal varia) el p-valor > 0.05 causa un error al rechazar la nula (que los datos son normales). ¿Esto significa que estamos a la conclusión de que los datos son normales? (pista: la respuesta es no). El fracaso para rechazar no es lo mismo que aceptar. Esta es la prueba de hipótesis 101.

Pero, ¿qué acerca de los tamaños de muestras más grandes? Tomemos el caso de la distribución está muy cerca de lo normal.

> library(nortest)
> x <- rt(500000,200)
> ad.test(x)

    Anderson-Darling normality test

data:  x 
A = 1.1003, p-value = 0.006975

> qqnorm(x)

enter image description here

Aquí estamos usando una distribución t con 200 grados de libertad. El qq-plot muestra la distribución está más cerca de lo normal de cualquier distribución que usted es probable ver en el mundo real, pero la prueba se rechaza la normalidad con un muy alto grado de confianza.

Hace la prueba en contra de la normalidad significa que no debamos uso normal de la teoría estadística en este caso? (otra pista: la respuesta es no :) )

20voto

Brian Diggs Puntos 22433

Yo también recomiendo el SnowsPenultimateNormalityTest en la TeachingDemos paquete. La documentación de la función es mucho más útil de lo que la prueba en sí, sin embargo. Lea cuidadosamente antes de usar la prueba.

10voto

BondedDust Puntos 105234

SnowsPenultimateNormalityTest sin duda tiene sus virtudes, pero también puede que desee ver en qqnorm.

X <- rlnorm(100)
qqnorm(X)
qqnorm(rnorm(100))

4voto

Karl Puntos 1054

Considere el uso de la función shapiro.test, la cual realiza la prueba de Shapiro-Wilks para la normalidad. He sido feliz con él.

1voto

P Sellaz Puntos 257

La de Anderson-Darling prueba es también ser útil.

library(nortest)
ad.test(data)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X