📊
Depuración de Datos - TFG Estadistica
  • Declaración de autoría
  • Tema 1: Análisis Exploratorio de Datos
    • Tipos de variables
      • Ejercicios
    • Codificación y Transformación
      • Ejercicios
    • Gráficos y Tablas
      • Ejercicios
    • Ejemplo de un análisis descriptivo básico para detectar errores e incongruencias
  • Tema 2: Control de integridad de los datos
    • Detección y tratamiento de datos atípicos
      • Ejercicios
    • Detección de datos atípicos y su tratamiento (automatización)
    • Detección y tratamiento de duplicados
    • Ejercicios
    • Ejemplo de detección y tratamiento de atípicos y duplicados
    • Detección de datos atípicos de forma Multivariante
  • Tema 3: Valores perdidos
    • Detección de datos perdidos
    • Tratamiento de datos perdidos
    • PRACTICA 3
  • Tema 4: Evaluación de las hipótesis de partida para el análisis de datos
    • Pruebas de Normalidad
      • Ejercicios
  • Bibliografía
    • 📚Bibliografía
Powered by GitBook
On this page
  • Introducción a las Pruebas de Normalidad
  • Distribución normal
  • Métodos para el estudio de normalidad
  • Métodos gráficos
  • Gráfico de Probabilidad Normal (Q-Q plot)
  • Métodos númericos
  • Prueba de Kolmogorov-Smirnov
  • Transformación Box-Cox
  1. Tema 4: Evaluación de las hipótesis de partida para el análisis de datos

Pruebas de Normalidad

PreviousPRACTICA 3NextEjercicios

Last updated 1 year ago

Introducción a las Pruebas de Normalidad

En el ámbito de la estadística, las pruebas de normalidad desempeñan un papel fundamental al evaluar la idoneidad de los datos para ciertos análisis estadísticos. Estas pruebas ofrecen información clave sobre la distribución de los datos y la variabilidad entre grupos, aspectos críticos para la validez de muchos métodos estadísticos.

La normalidad es una suposición fundamental en muchos métodos estadísticos, ya que muchos de ellos se basan en la distribución normal. Las pruebas de normalidad son herramientas cruciales para evaluar si un conjunto de datos sigue o no una distribución normal. Nos centraremos en métodos gráficos y numéricos para comprobar la normalidad.

Distribución normal

La distribución normal, también conocida como distribución gaussiana, es una de las distribuciones estadísticas más importantes en la teoría de probabilidad y estadística. Es una distribución continua que tiene propiedades matemáticas bien definidas, lo que la convierte en una herramienta fundamental en muchos análisis estadísticos.

Características de la Distribución Normal:

  1. Forma de Campana:

    • La distribución normal tiene una forma de campana simétrica. La mayor densidad de probabilidad se encuentra en el centro alrededor de la media μ , y la probabilidad disminuye a medida que nos alejamos hacia los extremos (1σ, 2σ, 3σ, ...).

  2. Regla Empírica (Regla 68-95-99.7):

    • Aproximadamente el 68% de los datos están dentro de una desviación estándar de la media, el 95% dentro de dos desviaciones estándar, y el 99.7% dentro de tres desviaciones estándar.

  3. Media, Mediana y Moda Igual:

    • La media, mediana y moda de la distribución normal son iguales y se encuentran en el centro de la campana.

  4. Parámetros:

    • La distribución normal se caracteriza por dos parámetros: la media (μ) y la desviación estándar (σ). Estos parámetros determinan completamente la forma de la distribución.

  5. Función de Densidad de Probabilidad (PDF):

    • La función de densidad de probabilidad de la distribución normal está dada por la fórmula matemática:

    f(x)=1σ2π⋅e−12(x−μσ)2f(x) = \frac{1}{\sigma \sqrt{2\pi}} \cdot e^{-\frac{1}{2}\left(\frac{x - \mu}{\sigma}\right)^2} f(x)=σ2π​1​⋅e−21​(σx−μ​)2

    Donde:

    • f(x)f(x)f(x) es la función de densidad de probabilidad.

    • xxx es la variable aleatoria.

    • μμμ es la media de la distribución.

    • σσσ es la desviación estándar.

Métodos para el estudio de normalidad

Métodos gráficos

Para ver los métodos gráficos vamos a simular dos conjuntos de datos, unos siguiendo una distribución normal y otra siguiendo una distribución exponencial

##Datos simulados normales

set.seed(123)

datos_sim_norm <- rnorm(1000, mean = 5, sd = 2)

head(datos_sim_norm)

##Datos simulados exponenciales
set.seed(123)
datos_sim_exp <- rexp(1000, rate = 0.5)
head(datos_sim_exp)

Histograma

Un histograma es una representación gráfica de la distribución de los datos. Si los datos siguen una distribución normal, el histograma debería tener una forma de campana . Puedes superponer la densidad teórica de la distribución cuya media y varianza son las de la muestra.

##Histograma de los datos normales

hist(datos_sim_norm, prob = TRUE)

lines(density(datos_sim_norm), col = "red")




##Histograma de los datos exponenciales

hist(datos_sim_exp, prob = TRUE)

lines(density(datos_sim_exp), col = "red")


Gráfico de Probabilidad Normal (Q-Q plot)

  • El gráfico de probabilidad normal (Q-Q plot o quantile-quantile plot) compara cuantiles observados de un conjunto de datos con los cuantiles esperados de una distribución normal. La idea es verificar si los datos siguen o no una distribución normal.

  • Aquí hay una descripción del cálculo matemático detrás del Q-Q plot:

  1. Ordenar los Datos:

    • Se ordenan los datos de menor a mayor.

  2. Cálculo de los Cuantiles Esperados de una Distribución Normal:

    • Se calculan los cuantiles esperados de una distribución normal estándar. Estos cuantiles son calculados mediante la función inversa de la función de distribución acumulativa (CDF) de la distribución normal estándar. En R, se pueden obtener con la función qnorm().

  3. Generación del Q-Q Plot:

    • Se grafican los cuantiles ordenados de los datos observados contra los cuantiles esperados de la distribución normal. Si los datos siguen una distribución normal, los puntos en el Q-Q plot deberían seguir aproximadamente una línea recta.

En R, se puede usar la función qqnorm()

### Q-Q plot datos normales

qqnorm(datos_sim_norm)

qqline(datos_sim_norm, col = "red")



### Q-Q plot datos exponenciales

qqnorm(datos_sim_exp)

qqline(datos_sim_exp, col = "red")


Este es un enfoque básico del Q-Q plot, y hay variaciones y extensiones disponibles dependiendo de las necesidades específicas.

Métodos númericos

Además de comprobar la normalidad de forma gráfica, a veces es necesario evaluar si un conjunto de datos sigue o no una distribución normal de forma numérica, mediante pruebas estadísticas.

Prueba de Shapiro-Wilk

Es una prueba de normalidad utilizada para determinar si una muestra proviene de una población normalmente distribuida. El test es especialmente eficaz para muestras de tamaño pequeño a moderado.

La prueba se plantea como un contraste de hipótesis donde:

H0:La muestra proviene de una distribucioˊn normal.H1:La muestra no proviene de una distribucioˊn normal. H_0: \text{La muestra proviene de una distribución normal.} \\ H_1: \text{La muestra no proviene de una distribución normal.}H0​:La muestra proviene de una distribucioˊn normal.H1​:La muestra no proviene de una distribucioˊn normal.

Estadístico de Prueba: El estadístico de prueba se denota como ( W ) y viene definido por:

W=(∑i=1naix(i))2∑i=1n(xi−xˉ)2W = \frac{\left(\sum_{i=1}^{n} a_i x_{(i)}\right)^2}{\sum_{i=1}^{n} (x_i - \bar{x})^2} W=∑i=1n​(xi​−xˉ)2(∑i=1n​ai​x(i)​)2​

Donde:

(n) es el taman˜o de la muestra(x(i)) es el (i)−eˊsimo valor ordenado de la muestra(xˉ) es la media de la muestraai son los coeficientes de la matriz de covarianza( n ) \text{ es el tamaño de la muestra} \\ (x_{(i)} ) \text{ es el }(i)-ésimo \text{ valor ordenado de la muestra} \\ ( \bar{x} ) \text{ es la media de la muestra}\\a_i \text{ son los coeficientes de la matriz de covarianza} (n) es el taman˜o de la muestra(x(i)​) es el (i)−eˊsimo valor ordenado de la muestra(xˉ) es la media de la muestraai​ son los coeficientes de la matriz de covarianza

El estadístico de la prueba WWWmide el ajuste de los puntos del gráfico de probabilidad Normal a la recta.

El valor de WWW está acotado entre 0 y 1.

Valores pequeños de WWW tienden a rechazar la hipótesis de Normalidad.

La distribución de WWW es asimétrica por lo que a veces valores relativamente altos de WnW_n Wn​ (como 0.9) pueden llegar a considerarse no suficientes como para aceptar Normalidad y por tanto rechazar la hipótesis nula.

Es importante destacar que el cálculo exacto de la prueba de Shapiro-Wilk puede ser complejo y generalmente se realiza mediante software estadístico. Además, la interpretación del resultado debe hacerse considerando el tamaño de la muestra entre otros factores.

###Test Shapiro - Wilk

##Datos normales

shapiro.test(datos_sim_norm)
## W = 0.99838, p-value = 0.4765


##Datos exponenciales

shapiro.test(datos_sim_exp)
## W = 0.82872, p-value < 2.2e-16

En el primero (p−valor=0.4765p-valor=0.4765p−valor=0.4765): NO podemos rechazar la H0H_0H0​y por tanto los datos siguen una distribución normal

En el segundo (p−valor=2.2∗10−16p-valor=2.2*10^-16p−valor=2.2∗10−16): Rechazaremos la H0H_0H0​y por tanto los datos no siguen una distribución normal.

Prueba de Kolmogorov-Smirnov

La prueba de Kolmogorov-Smirnov (KS) es una prueba no paramétrica utilizada para evaluar si una muestra proviene de una distribución específica. Es decir, determina la bondad de ajuste de dos distribuciones de probabilidad entre sí. La prueba compara la función de distribución acumulativa empírica (ECDF) de la muestra con la función de distribución acumulativa teórica.

El estadístico de prueba en la prueba de KS se basa en la mayor discrepancia absoluta entre la ECDF observada y la ECDF teórica. La fórmula para el estadístico de prueba (D) es:

D=max⁡(sup⁡x∣Fn(x)−F(x)∣,sup⁡x∣Fn(x−)−F(x)∣) D = \max \left( \sup_x |F_n(x) - F(x)|, \sup_x |F_n(x-) - F(x)| \right)D=max(xsup​∣Fn​(x)−F(x)∣,xsup​∣Fn​(x−)−F(x)∣)

donde:

Para el caso de usar la prueba para una distribución normal se plantea el siguiente contraste de hipótesis:

H0:La muestra proviene de una distribucioˊn normal.H1:La muestra no proviene de una distribucioˊn normal. H_0: \text{La muestra proviene de una distribución normal.} \\ H_1: \text{La muestra no proviene de una distribución normal.}H0​:La muestra proviene de una distribucioˊn normal.H1​:La muestra no proviene de una distribucioˊn normal.
###Test Kolmogorov-Smirnov para normalidad

##Datos normales

ks.test(datos_sim_norm, "pnorm",mean = mean(datos_sim_norm), sd = sd(datos_sim_norm))


#D = 0.014963, p-value = 0.9786

##Datos exponenciales

ks.test(datos_sim_exp, "pnorm",mean = mean(datos_sim_norm), sd = sd(datos_sim_norm))
#D = 0.62383, p-value < 2.2e-16

En el primero (p−valor=0.9786p-valor=0.9786p−valor=0.9786): NO podemos rechazar la H0H_0H0​y por tanto los datos siguen una distribución normal

En el segundo (p−valor=2.2∗10−16p-valor=2.2*10^-16p−valor=2.2∗10−16): Rechazaremos la H0H_0H0​y por tanto los datos no siguen una distribución normal.

Recuerda que el test de Kolmogorov-Smirnov es sensible al tamaño de la muestra, por lo que con muestras grandes, es más probable que encuentres diferencias estadísticas significativas. En tales casos, otros métodos y gráficos de diagnóstico pueden ser útiles para evaluar la normalidad.

Transformación Box-Cox

La transformación de Box-Cox es una técnica utilizada para estabilizar la varianza y hacer que los datos se aproximen más a una distribución normal. Fue propuesta por George Box y David Cox. La transformación es definida por la siguiente fórmula:

y(λ)={yλ−1λsi λ≠0log⁡(y)si λ=0y(\lambda) = \begin{cases} \frac{{y^\lambda - 1}}{{\lambda}} & \text{si } \lambda \neq 0 \\ \log(y) & \text{si } \lambda = 0 \end{cases}y(λ)={λyλ−1​log(y)​si λ=0si λ=0​

Donde yyy es la variable original y λλλ es el parámetro de transformación. La elección de λλλ es crucial, y la transformación de Box-Cox busca el valor de λλλ que maximiza la normalidad y la homocedasticidad de los datos. Sin embargo, las transformaciones más habituales se describen en la siguiente tabla:

λ
Transformación

-2

-1

-0.5

0

0.5

1

2

La transformación log(y)log(y) log(y) y y\sqrt{y}y​ son apropiadas para corregir distribuciones positivamente asimétricas.

La transformación de los valores en sus recíprocos 1/y1/y1/y 1/y21/y^21/y2 son adecuadas cuando existen valores muy extremos por el lado positivo.

Las transformaciones cuadrado y2y^2y2permiten corregir la asimetría negativa.

Si el parámetro de la transformación estimado es cercano a los valores de la tabla anterior, en la práctica es recomendable utilizar el valor de la tabla en lugar del exacto, ya que será más fácil de interpretar.

Usando R, podemos hacer uso de la función boxcox() de la librería MASS para estimar el parámetro de transformación por estimación de máxima verosimilitud.

# Instalar y cargar el paquete MASS si aún no está instalado

# install.packages("MASS")

library(MASS)


datos_prueba <- c(0.103, 0.528, 0.221, 0.260, 0.091,

           1.314, 1.732, 0.244, 1.981, 0.273,
       
           0.461, 0.366, 1.407, 0.079, 2.266)

# Histograma de los datos
hist(datos_prueba)

Para calcular el λ óptimo hay que ejecutar un modelo lineal con la función lm y pasarlo a la función boxcox de la siguiente manera:

boxcox(lm(datos_prueba ~ 1))

El log likelihood () en el contexto de la transformación Box-Cox se refiere a la medida de la adecuación de un modelo estadístico a los datos observados, específicamente en el caso de la transformación Box-Cox, se utiliza para evaluar qué tan bien se ajusta la transformación a los datos.

En el contexto de la transformación Box-Cox, se busca encontrar el valor de lambda (λ) que maximice el log likelihood. El lambda óptimo es aquel que maximiza esta medida de verosimilitud. En términos más simples, cuanto mayor sea el log likelihood, mejor será el ajuste de la transformación Box-Cox a los datos.

Ten en cuenta que la línea vertical punteada central representa el parámetro estimado λ mientras que las otras dos representan su intervalo de confianza al 95%.

Como el gráfico anterior muestra que el 0 está dentro del intervalo de confiaza del λ óptimo y la estimación está realmente cerca del 0, en este ejemplo la mejor opción es aplicar la transformación logarítmica a los datos (ver tabla de la primera sección).

# Datos transformados
datos_prueba_trans <- log(datos_prueba)

# Histograma
hist(datos_prueba_trans)

Ahora los datos parece que puedan seguir una distribución normal, pero lo podemos comprobar realizando, por ejemplo, el test estadístico Shapiro-Wilk:

shapiro.test(new.x)
#W = 0.9, p-value = 0.2

No podemos rechazar la hipótesis nula de normalidad.

En el caso de querer extraer el parámetro λ exacto:

# Lambda exacto

b<-boxcox(lm(datos_prueba ~ 1))

lambda <- b$x[which.max(b$y)] # -0.02
datos_prueba_trans_exact <- (datos_prueba ^ lambda - 1) / lambda

¿Cuándo usar un test u otro?

  1. Test de Shapiro-Wilk:

    • Se recomienda para muestras pequeñas (generalmente menos de 50 observaciones), ya que tiene una buena potencia en muestras pequeñas. También es eficaz cuando se sospecha que los datos pueden provenir de una distribución normal.

    • Limitaciones: A medida que el tamaño de la muestra aumenta, la prueba puede volverse demasiado sensible y detectar diferencias pequeñas de la normalidad, lo que puede llevar al rechazo de la hipótesis nula incluso cuando las desviaciones de la normalidad son pequeñass.

  2. Test de Kolmogorov-Smirnov:

    • Es adecuado cuando se trabaja con muestras más grandes o cuando la normalidad no es un supuesto crítico.

    • Limitaciones: Es sensible a desviaciones en la forma de la distribución, no solo en términos de normalidad, por lo que puede ser demasiado conservador en ciertos casos.

La elección entre el test de Shapiro-Wilk y el test de Kolmogorov-Smirnov depende del tamaño de la muestra y de la naturaleza de los datos. Para muestras pequeñas y cuando se está específicamente interesado en la normalidad, el test de Shapiro-Wilk puede ser preferible. Para muestras más grandes o cuando la normalidad no es el foco principal, el test de Kolmogorov-Smirnov puede ser una opción más adecuada. Sin embargo, siempre es importante considerar otras herramientas de diagnóstico y realizar una evaluación global de la normalidad.

Ahora vamos a realizar los siguientes ejercicios:

es la ECDF de la muestra.

es la función de distribución acumulativa teórica.

denota el supremo (o la mayor disparidad) sobre todos los puntos en el dominio de la distribución.

En palabras, el estadístico de pruebarepresenta la mayor discrepancia entre la ECDF observada y la ECDF teórica. Cuanto mayor sea , mayor será la evidencia de que la muestra no sigue la distribución teórica.

Se compara el valor observado de con los valores críticos de la tabla de Kolmogorov-Smirnov para decidir si se rechaza o no la hipótesis nula.

Si el valor observado de es mayor que el valor crítico correspondiente para un nivel de significancia dado, se rechaza indicando que la muestra no sigue una distribución normal.

1/y21/y^21/y2
1/y1/y1/y
1/y1/\sqrt{y}1/y​
log(y)log(y)log(y)
y\sqrt{y}y​
yyy
y2y^2y2
Ejercicios
Page cover image