Carátula,
Introducción
Para saber si una muestra aleatoria proviene de una poblacion normal realizaremos los siguientes pasos: * Histograma y/o densidad. * Gráficos cuantil cuantil (QQplot). * Pruebas de hipótesis.
Seguiremos un procedimiento para realizar la prueba de normalidad, utilizando ciertas pruebas para contrastar:
DESARROLLO
#Cargando librerias#
library(normtest) # Realiza 5 pruebas de normalidad#
library(nortest) # Realiza 10 pruebas de normalidad#
library(moments) # Realiza 1 pruebas de normalidad#
Simulando 3 muestras de una N(0, 1) con diferente tamaño de muestra
Para n=25
#HISTOGRAMA Y DENSIDAD#
# Densidad con datos simulados#
x25<-rnorm(25, mean = 5, sd = 3)
plot((density(x25)),
ylab='Densidad', col='blue3', xlab='x25', las=1, lwd=4)
#GRÁFICOS CUANTIL CUANTIL(QQplot)#
qqnorm(x25)
qqline(x25) # Para agregar la linea de referencia
#PRUEBAS DE NORMALIDAD#
Las hipótesis para este tipo de pruebas son:
H0: la muestra proviene de una población normal. H1: la muestra NO proviene de una población normal.
Pruebas de Normalidad del Paquete “normtest” ###Prueba de Anderson-Darling Generar una muestra aleatoria con n=25 de una N(5,9) y aplicar las pruebas de normalidad Shapiro-Wilk y Anderson-Darling con un nivel de significancia del 5%.
###Prueba de Anderson-Darling###
ad.test(x25)
##
## Anderson-Darling normality test
##
## data: x25
## A = 0.34819, p-value = 0.4489
Como p-value = 0.2756 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Cramer-von Mises
Es útil para pequeñas muestras y usa los momentos como criterio.
cvm.test(x25)
##
## Cramer-von Mises normality test
##
## data: x25
## W = 0.049158, p-value = 0.5084
Como p-value = 0.4005 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Pruena de Lilliefors (Kolmogorov-Smirnov)
lillie.test(x25)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: x25
## D = 0.12856, p-value = 0.3554
Como p-value = 0.3537 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Pearson chi-square
basada en una distribución Ji cuadrado y que corresponde a una prueba de bondad de ajuste.
pearson.test(x25)
##
## Pearson chi-square normality test
##
## data: x25
## P = 11.16, p-value = 0.0483
Como p-value = 0.906 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Shapiro-Francia
sf.test(x25)
##
## Shapiro-Francia normality test
##
## data: x25
## W = 0.95855, p-value = 0.328
Como p-value = 0.09182 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Pruebas de Normalidad del Paquete “nortest”
Prueba de Jarque Bera
jb.norm.test(x25)
##
## Jarque-Bera test for normality
##
## data: x25
## JB = 0.19655, p-value = 0.894
Como p-value = 0.0455 < 0.05 entonces se rechaza Ho (la muestra NO proviene de una población normal) (*)
Prueba de Frosini###
frosini.norm.test(x25)
##
## Frosini test for normality
##
## data: x25
## B = 0.16759, p-value = 0.589
Como p-value = 0.4195 < 0.05 entonces se rechaza Ho (la muestra NO proviene de una población normal) (*)
Prueba de Geary Usa los valores acumulados muestrales, sus medias y desviaciones estándar.
geary.norm.test(x25)
##
## Geary test for normality
##
## data: x25
## d = 0.77677, p-value = 0.784
Como p-value = 0.77 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Hegazy-Green
hegazy1.norm.test(x25, nrepl=20000) # nrepl: considera el número de replicas en simulación de Monte Carlo.
##
## Hegazy-Green test for normality
##
## data: x25
## T = 0.15522, p-value = 0.4683
Como p-value = 0.223 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Jarque-Bera Utiliza un estadístico en la prueba que involucra la curtosis y la asimetría. Usada por economistas.
jb.norm.test(x25, nrepl=2000)
##
## Jarque-Bera test for normality
##
## data: x25
## JB = 0.19655, p-value = 0.9065
Como p-value = 0.054 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Kurtosis
kurtosis.norm.test(x25, nrepl=2000)
##
## Kurtosis test for normality
##
## data: x25
## T = 3.1615, p-value = 0.854
Como p-value = 0.386 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Skewness
skewness.norm.test(x25, nrepl=2000)
##
## Skewness test for normality
##
## data: x25
## T = -0.20163, p-value = 0.6255
Como p-value = 0.0425 < 0.05 entonces se rechaza Ho (la muestra NO proviene de una población normal) (*)
Prueba de Spiegelhalter
spiegelhalter.norm.test(x25,nrepl=2000)
##
## Spiegelhalter test for normality
##
## data: x25
## T = 1.2875, p-value = 0.3685
Como p-value = 0.387 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Puerba de Weisberg-Bingham
wb.norm.test(x25,nrepl=2000)
##
## Weisberg-Bingham test for normality
##
## data: x25
## WB = 0.95855, p-value = 0.3295
Como p-value = 0.097 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Pruebas de Normalidad del Paquete “moments”
Prueba de Agostino
agostino.test(x25)
##
## D'Agostino skewness test
##
## data: x25
## skew = -0.20163, z = -0.48993, p-value = 0.6242
## alternative hypothesis: data have a skewness
Como p-value = 0.04084 < 0.05 entonces se rechaza Ho (la muestra NO proviene de una población normal) (*)
Funciones incluidas en los paquetes básicos de R
Prueba de Shapiro-Wilk Es más poderosa cuando se compara con otras pruebas de normalidad cuando la muestra es pequeña.
shapiro.test(x25)
##
## Shapiro-Wilk normality test
##
## data: x25
## W = 0.96331, p-value = 0.4843
Como p-value = 0.1062 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Para n=800 #HISTOGRAMA Y DENSIDAD#
Densidad con datos simulados
x800<-rnorm(800, mean = 5, sd = 3)
plot((density(x800)),
ylab='Densidad', col='blue3', xlab='x800', las=1, lwd=4)
#GRÁFICOS CUANTIL CUANTIL(QQplot)#
qqnorm(x800)
qqline(x800) # Para agregar la linea de referencia
#PRUEBAS DE NORMALIDAD#
Las hipótesis para este tipo de pruebas son:
H0: la muestra proviene de una población normal. H1: la muestra NO proviene de una población normal.
Pruebas de Normalidad del Paquete “normtest” ###Prueba de Anderson-Darling Generar una muestra aleatoria con n=10 de una N(5,9) y aplicar las pruebas de normalidad Shapiro-Wilk y Anderson-Darling con un nivel de significancia del 5%.
###Prueba de Anderson-Darling###
ad.test(x800)
##
## Anderson-Darling normality test
##
## data: x800
## A = 0.43253, p-value = 0.3032
Como p-value = 0.7644 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Cramer-von Mises.
Es útil para pequeñas muestras y usa los momentos como criterio.
cvm.test(x800)
##
## Cramer-von Mises normality test
##
## data: x800
## W = 0.059496, p-value = 0.3837
Como p-value = 0.7894 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Pruena de Lilliefors (Kolmogorov-Smirnov)
lillie.test(x800)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: x800
## D = 0.018178, p-value = 0.7521
Como p-value = 0.7148 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Pearson chi-square basada en una distribución Ji cuadrado y que corresponde a una prueba de bondad de ajuste.
pearson.test(x800)
##
## Pearson chi-square normality test
##
## data: x800
## P = 13.885, p-value = 0.9745
Como p-value = 0.7274 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Shapiro-Francia
sf.test(x800)
##
## Shapiro-Francia normality test
##
## data: x800
## W = 0.99642, p-value = 0.06338
Como p-value = 0.8705 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Pruebas de Normalidad del Paquete “nortest”
Prueba de Jarque Bera
jb.norm.test(x800)
##
## Jarque-Bera test for normality
##
## data: x800
## JB = 0.20287, p-value = 0.894
Como p-value = 0.3775 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Frosini
frosini.norm.test(x800)
##
## Frosini test for normality
##
## data: x800
## B = 0.21278, p-value = 0.2925
Como p-value = 0.7555 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Geary.
Usa los valores acumulados muestrales, sus medias y desviaciones estándar.
geary.norm.test(x800)
##
## Geary test for normality
##
## data: x800
## d = 0.80108, p-value = 0.345
Como p-value = 0.1485 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Hegazy-Green
hegazy1.norm.test(x800, nrepl=20000) # nrepl: considera el número de replicas en simulación de Monte Carlo.
##
## Hegazy-Green test for normality
##
## data: x800
## T = 0.035593, p-value = 0.1646
Como p-value = 0.7986 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Jarque-Bera Utiliza un estadístico en la prueba que involucra la curtosis y la asimetría. Usada por economistas.
jb.norm.test(x800, nrepl=2000)
##
## Jarque-Bera test for normality
##
## data: x800
## JB = 0.20287, p-value = 0.896
Como p-value = 0.371 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Kurtosis
kurtosis.norm.test(x800, nrepl=2000)
##
## Kurtosis test for normality
##
## data: x800
## T = 3.0213, p-value = 0.9015
Como p-value = 0.2585 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Skewness
skewness.norm.test(x800, nrepl=2000)
##
## Skewness test for normality
##
## data: x800
## T = 0.037523, p-value = 0.652
Como p-value = 0.3915 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Spiegelhalter
spiegelhalter.norm.test(x800,nrepl=2000)
##
## Spiegelhalter test for normality
##
## data: x800
## T = 1.2483, p-value = 0.658
Como p-value = 0.8515 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Puerba de Weisberg-Bingham
wb.norm.test(x800,nrepl=2000)
##
## Weisberg-Bingham test for normality
##
## data: x800
## WB = 0.99642, p-value = 0.0615
Como p-value = 0.8875 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Pruebas de Normalidad del Paquete “moments”
Prueba de Agostino
agostino.test(x800)
##
## D'Agostino skewness test
##
## data: x800
## skew = 0.037523, z = 0.437102, p-value = 0.662
## alternative hypothesis: data have a skewness
Como p-value = 0.3733 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Funciones incluidas en los paquetes básicos de R
Prueba de Shapiro-Wilk Es más poderosa cuando se compara con otras pruebas de normalidad cuando la muestra es pequeña.
shapiro.test(x800)
##
## Shapiro-Wilk normality test
##
## data: x800
## W = 0.99668, p-value = 0.09446
Como p-value = 0.8489 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
#:____________________________________________________________
Para n=5000
#HISTOGRAMA Y DENSIDAD#
Densidad con datos simulados
x5000<-rnorm(5000, mean = 5, sd = 3)
plot((density(x5000)),
ylab='Densidad', col='blue3', xlab='x5000', las=1, lwd=4)
#GRÁFICOS CUANTIL CUANTIL(QQplot)#
qqnorm(x5000)
qqline(x5000) # Para agregar la linea de referencia
#PRUEBAS DE NORMALIDAD#
Las hipótesis para este tipo de pruebas son:
H0: la muestra proviene de una población normal. H1: la muestra NO proviene de una población normal.
Pruebas de Normalidad del Paquete “normtest”
Prueba de Anderson-Darling
Generar una muestra aleatoria con n=5000 de una N(5,9) y aplicar las pruebas de normalidad Shapiro-Wilk y Anderson-Darling con un nivel de significancia del 5%.
###Prueba de Anderson-Darling###
ad.test(x5000)
##
## Anderson-Darling normality test
##
## data: x5000
## A = 0.20655, p-value = 0.8693
Como p-value = 0.595 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Cramer-von Mises Es útil para pequeñas muestras y usa los momentos como criterio.
cvm.test(x5000)
##
## Cramer-von Mises normality test
##
## data: x5000
## W = 0.032924, p-value = 0.8048
Como p-value = 0.5153 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Pruena de Lilliefors (Kolmogorov-Smirnov)
lillie.test(x5000)
##
## Lilliefors (Kolmogorov-Smirnov) normality test
##
## data: x5000
## D = 0.0075681, p-value = 0.6969
Como p-value = 0.1333 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Pearson chi-square basada en una distribución Ji cuadrado y que corresponde a una prueba de bondad de ajuste.
pearson.test(x5000)
##
## Pearson chi-square normality test
##
## data: x5000
## P = 31.451, p-value = 0.9983
Como p-value = 0.5685 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Shapiro-Francia NOTA: el tamaño de la muestra debe estar entre 5 y 5000
sf.test(x5000)
##
## Shapiro-Francia normality test
##
## data: x5000
## W = 0.99973, p-value = 0.7397
Como p-value = 0.3433 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Pruebas de Normalidad del Paquete “nortest”
Prueba de Jarque Bera
jb.norm.test(x5000)
##
## Jarque-Bera test for normality
##
## data: x5000
## JB = 1.1459, p-value = 0.5695
Como p-value = 0.2765 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Frosini###
frosini.norm.test(x5000)
##
## Frosini test for normality
##
## data: x5000
## B = 0.13753, p-value = 0.8455
Como p-value = 0.6345 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Geary Usa los valores acumulados muestrales, sus medias y desviaciones estándar.
geary.norm.test(x5000)
##
## Geary test for normality
##
## data: x5000
## d = 0.7988, p-value = 0.3955
Como p-value = 0.181 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Hegazy-Green
hegazy1.norm.test(x5000, nrepl=20000) # nrepl: considera el número de replicas en simulación de Monte Carlo.
##
## Hegazy-Green test for normality
##
## data: x5000
## T = 0.0085188, p-value = 0.9062
Como p-value = 0.6653 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Jarque-Bera Utiliza un estadístico en la prueba que involucra la curtosis y la asimetría. Usada por economistas.
jb.norm.test(x5000, nrepl=2000)
##
## Jarque-Bera test for normality
##
## data: x5000
## JB = 1.1459, p-value = 0.5485
Como p-value = 0.2725 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Kurtosis
kurtosis.norm.test(x5000, nrepl=2000)
##
## Kurtosis test for normality
##
## data: x5000
## T = 3.0403, p-value = 0.551
Como p-value = 0.8265 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Skewness
skewness.norm.test(x5000, nrepl=2000)
##
## Skewness test for normality
##
## data: x5000
## T = -0.031121, p-value = 0.3615
Como p-value = 0.1225 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Prueba de Spiegelhalter
spiegelhalter.norm.test(x5000,nrepl=2000)
##
## Spiegelhalter test for normality
##
## data: x5000
## T = Inf, p-value < 2.2e-16
Como p-value < 2.2e-16 < 0.05 entonces se rechaza Ho (la muestra NO proviene de una población normal) (*)
Puerba de Weisberg-Bingham
wb.norm.test(x5000,nrepl=2000)
##
## Weisberg-Bingham test for normality
##
## data: x5000
## WB = 0.99973, p-value = 0.734
Como p-value = 0.3675 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Pruebas de Normalidad del Paquete “moments”
Prueba de Agostino
agostino.test(x5000)
##
## D'Agostino skewness test
##
## data: x5000
## skew = -0.031121, z = -0.899507, p-value = 0.3684
## alternative hypothesis: data have a skewness
Como p-value = 0.1133 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
Funciones incluidas en los paquetes básicos de R
Prueba de Shapiro-Wilk Es más poderosa cuando se compara con otras pruebas de normalidad cuando la muestra es pequeña. NOTA: el tamaño de la muestra debe estar entre 3 y 5000
shapiro.test(x5000)
##
## Shapiro-Wilk normality test
##
## data: x5000
## W = 0.9997, p-value = 0.7018
Como p-value = 0.3507 > 0.05 entonces NO se rechaza Ho (la muestra proviene de una población normal)
conclusiones
• Según el cuadro de compasión anterior: No existe evidencia estadística para rechazar Ho. Es decir, podemos afirmar que la variable x25, x800 y x5000 tiene una distribución normal.
• Esto se cumple para las pruebas cuanto más grande es la muestra, por lo general la normalidad se cumple así con todas.
Referencias
#https://rpubs.com/MSiguenas/122473
#https://fhernanb.github.io/Manual-de-R/normalidad.html