Constraste de hipotesis

\[ \left\{ \begin{array}{ll} H_{0}: & Los~datos~tienden~una~distri.~ Normal\\ H_{1}: & Los~datos~tienden~no~una~distri.~ Normal \end{array} \right. \]

library(nortest)

Prueba de Anderson-Darling

Es la derivada del Kolmorof

head(cars)
*   speed dist
* 1     4    2
* 2     4   10
* 3     7    4
* 4     7   22
* 5     8   16
* 6     9   10
attach(cars)
ad.test(speed)
* 
*   Anderson-Darling normality test
* 
* data:  speed
* A = 0.26143, p-value = 0.6927
ad.test(dist)
* 
*   Anderson-Darling normality test
* 
* data:  dist
* A = 0.74067, p-value = 0.05021

Prueba de Cramer-von Mises

Es útil para pequeñas muestras y usa los momentos como criterio.

sd <- c(23,76,2,3,23,2,3,2,3,23,23)
cvm.test(sd)
* 
*   Cramer-von Mises normality test
* 
* data:  sd
* W = 0.23633, p-value = 0.001408
cvm.test(dist)
* 
*   Cramer-von Mises normality test
* 
* data:  dist
* W = 0.12632, p-value = 0.04742

Prueba de Lilliefors (Kolmogorov-Smirnov)

Se aplica mas ampliamente cuando la muestra es grande.

lillie.test(dist)
* 
*   Lilliefors (Kolmogorov-Smirnov) normality test
* 
* data:  dist
* D = 0.12675, p-value = 0.04335

Prueba de Pearson chi-square

basada en una distribución Ji cuadrado y que corresponde a una prueba de bondad de ajuste.

pearson.test(dist)
* 
*   Pearson chi-square normality test
* 
* data:  dist
* P = 11.2, p-value = 0.1301

Prueba de Shapiro-Francia

simplificacon de la prueba shapiro-W

sf.test(dist)
* 
*   Shapiro-Francia normality test
* 
* data:  dist
* W = 0.95206, p-value = 0.04179

Prueba de Frosini

library(normtest)
frosini.norm.test(speed)
* 
*   Frosini test for normality
* 
* data:  speed
* B = 0.14841, p-value = 0.7535

Prueba de Geary

Usa los valores acumulados muestrales, sus medias y desviaciones estándar.

geary.norm.test(speed)
* 
*   Geary test for normality
* 
* data:  speed
* d = 0.82835, p-value = 0.1805

Prueba de Hegazy-Green

hegazy1.norm.test(dist, nrepl=20000) ###nrepl: considera el número de replicas en simulación de Monte  Carlo
* 
*   Hegazy-Green test for normality
* 
* data:  dist
* T = 0.16856, p-value = 0.03375

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(dist, nrepl=2000)
* 
*   Jarque-Bera test for normality
* 
* data:  dist
* JB = 5.2305, p-value = 0.038

Prueba de Kurtosis

kurtosis.norm.test(speed, nrepl=2000)
* 
*   Kurtosis test for normality
* 
* data:  speed
* T = 2.4229, p-value = 0.324

Prueba de Skewness

skewness.norm.test(speed, nrepl=2000)
* 
*   Skewness test for normality
* 
* data:  speed
* T = -0.11395, p-value = 0.699

Prueba de Spiegelhalter

spiegelhalter.norm.test(speed, nrepl=2000)
* 
*   Spiegelhalter test for normality
* 
* data:  speed
* T = 1.2295, p-value = 0.7225

Puerba de Weisberg-Bingham

wb.norm.test(speed, nrepl=2000)
* 
*   Weisberg-Bingham test for normality
* 
* data:  speed
* WB = 0.98416, p-value = 0.645

Prueba de Agostino

library(moments)
agostino.test(dist)
* 
*   D'Agostino skewness test
* 
* data:  dist
* skew = 0.78248, z = 2.31280, p-value = 0.02073
* alternative hypothesis: data have a skewness

Prueba de Shapiro-Wilk

Es más poderosa cuando se compara con otras pruebas de normalidad cuando la muestra es pequeña.

shapiro.test(dist)
* 
*   Shapiro-Wilk normality test
* 
* data:  dist
* W = 0.95144, p-value = 0.0391

Metodos Graficos

Histograma y curva normal

Consiste en representar los datos mediante un histograma y superponer la curva de una distribución normal con la misma media y desviación estándar que muestran los datos.

library(ggplot2)
ggplot(data = cars, aes(x = dist)) +
  geom_histogram(aes(y = ..density.., fill = ..count..)) +
  scale_fill_gradient(low = "#DCDCDC", high = "#7C7C7C") +
  stat_function(fun = dnorm, colour = "#0C3D7D9F", args = list(mean = mean(dist), sd = sd(dist))) +
  ggtitle("Histograma + curva normal teórica") 

# Histograma y curva normal sobreimpuesta 
distancia <- dist
h <- hist(distancia, breaks = 12, main = "Histogram con curva normal")
xfit <- seq(min(distancia), max(distancia), length = 20)
yfit <- dnorm(xfit, mean = mean(distancia), sd = sd(distancia))
yfit <- yfit * diff(h$mids[1:2]) * length(distancia)
lines(xfit, yfit, col = c("#0C3D7D9F"), lwd = 2)

Gráfico de cuantiles teóricos (Gráficos Q-Q)

Consiste en comparar los cuantiles de la distribución observada con los cuantiles teóricos de una distribución normal con la misma media y desviación estándar que los datos. Cuanto más se aproximen los datos a una normal, más alineados están los puntos entorno a la recta.

library(car)
qqPlot(dist, pch = 16, col = c("#178A56AA"), col.lines = 6, cex = 1.5, main = "NORMAL Q-Q PLOT", id = F )

Fin ☺

metodNum::meme()