\[ \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)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
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
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
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
simplificacon de la prueba shapiro-W
sf.test(dist)*
* Shapiro-Francia normality test
*
* data: dist
* W = 0.95206, p-value = 0.04179
library(normtest)
frosini.norm.test(speed)*
* Frosini test for normality
*
* data: speed
* B = 0.14841, p-value = 0.7535
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
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
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
kurtosis.norm.test(speed, nrepl=2000)*
* Kurtosis test for normality
*
* data: speed
* T = 2.4229, p-value = 0.324
skewness.norm.test(speed, nrepl=2000)*
* Skewness test for normality
*
* data: speed
* T = -0.11395, p-value = 0.699
spiegelhalter.norm.test(speed, nrepl=2000)*
* Spiegelhalter test for normality
*
* data: speed
* T = 1.2295, p-value = 0.7225
wb.norm.test(speed, nrepl=2000)*
* Weisberg-Bingham test for normality
*
* data: speed
* WB = 0.98416, p-value = 0.645
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
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
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)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 )metodNum::meme()