Prueba de normalidad de datos en R

Jesse John 21 junio 2023
  1. Aplicabilidad de las Técnicas Dadas
  2. Trazar los datos
  3. Utilice la prueba de normalidad de Shapiro-Wilk en R
  4. La Gráfica Cuantil-Cuantil en R
  5. Conclusión
Prueba de normalidad de datos en R

Muchas pruebas o técnicas estadísticas asumen que la muestra que tenemos está relacionada con la distribución normal. Algunas pruebas o procedimientos pueden suponer que la muestra se extrae de una población distribuida normalmente.

Otros pueden suponer que los errores aleatorios (residuales) de nuestros datos se extraen de una distribución normal. R nos brinda múltiples formas de probar si nuestros datos (originales o residuales) siguen una distribución normal.

Este artículo analizará tres técnicas simples y populares para probar la normalidad de los datos univariados no agrupados.

Código de ejemplo:

# First, we will create the data for our demonstrations.

# Large normal population.
set.seed(951)
p = rnorm(100000,100,5)

# Plot the population.
hist(p, breaks=100)

# Take a sample from the normal population.
set.seed(753)
s1 = sample(p, size=125, replace=FALSE)

# Create a non-normal sample.
# A vector (population).
v = c(31:81)

# Non-normal sample.
set.seed(159)
s2 = sample(v, 2000, replace=TRUE)

Aplicabilidad de las Técnicas Dadas

Las técnicas que siguen son para los datos disponibles para nosotros. Nos dicen si los datos son aceptablemente normales o no.

Por lo tanto, deben usarse solo para concluir los datos disponibles.

En particular, no permiten concluir la población de la cual se tomaron los datos (muestra). Esas conclusiones dependerán de la teoría estadística relevante a la técnica de muestreo utilizada para obtener la muestra.

Trazar los datos

Comenzaremos con un enfoque cualitativo, adecuado como punto de partida. Un histograma simple mostrará si los datos tienen una forma de campana como la curva normal.

Código de ejemplo:

# Plot the sample from the normal population.
hist(s1, breaks=25)

# Plot the non-normal sample.
hist(s2, breaks=25)

Una gráfica de la muestra extraída de la población normal.

Parcela de muestra normal

Un gráfico de la muestra no normal.

Parcela de muestra no normal

Encontramos que la muestra de la población normal tiene una forma de campana aproximada. La muestra no normal se asemeja a un rectángulo.

Utilice la prueba de normalidad de Shapiro-Wilk en R

La prueba de Shapiro-Wilk para la normalidad de los datos es una prueba estadística ampliamente utilizada.

La función shapiro.test() toma un vector de datos de 3 a 5000 elementos. Más correctamente, este es el rango del vector para el número de elementos que no faltan.

La prueba asume que los datos son normales. Esa es la hipótesis nula.

Devuelve una estadística W y un valor p. Un estadístico W cercano a 1 implica que la distribución es casi normal.

Sin embargo, esta interpretación debe combinarse con el valor p devuelto.

Un valor p superior a 0,05 apoya la conclusión de que la muestra se distribuye normalmente.

Código de ejemplo:

# Run the Shapiro-Wilk test on the samples.

# Sample from normal population.
shapiro.test(s1)

# Non-normal sample.
shapiro.test(s2)

Producción :

> # Sample from normal population.
> shapiro.test(s1)

	Shapiro-Wilk normality test

data:  s1
W = 0.99353, p-value = 0.8383

> # Non-normal sample.
> shapiro.test(s2)

	Shapiro-Wilk normality test

data:  s2
W = 0.95117, p-value < 2.2e-16

Encontramos que la muestra de la población normal tiene un estadístico W alto y un valor p alto. La muestra sigue de cerca la distribución normal.

Sin embargo, como era de esperar, la muestra no normal tiene un valor p extremadamente bajo. Confirma que la muestra no sigue la distribución normal.

La Gráfica Cuantil-Cuantil en R

El Gráfico Cuantil-Cuantil (también llamado gráfico Q-Q) es otra técnica cualitativa para probar la normalidad.

En esta prueba, los cuantiles de los datos de la muestra se representan frente a los cuantiles correspondientes de una distribución normal estándar. Si existe suficiente correlación lineal entre los cuantiles, ambas distribuciones son similares; los datos de la muestra siguen una distribución normal.

Gráficamente, si el gráfico da como resultado una línea casi recta, respalda la conclusión de que la muestra es casi normal.

La función qqnorm() crea un gráfico Q-Q en R.

Código de ejemplo:

# Plot the Q-Q plots for both the samples.

# Q-Q plot of sample from the normal population.
qqnorm(s1)

# Q-Q plot for the non-normal sample.
qqnorm(s2)

Gráfico Q-Q de la muestra de la población normal. El gráfico es casi una línea recta.

Gráfico Q-Q de una muestra normal

Gráfico Q-Q de la muestra no normal. La trama es una línea curva. La muestra no era normal.

Gráfico Q-Q de muestra no normal

Conclusión

En la práctica, los tres enfoques dados anteriormente son complementarios. La prueba de Shapiro-Wilk puede dar un valor p muy bajo cuando el tamaño de la muestra es muy grande.

Las técnicas visuales nos ayudan a sacar una conclusión correcta.

Autor: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.

Artículo relacionado - R Test