Test de Kolmogorov-Smirnov (Lilliefors)

El test de Kolmogorov-Smirnov mide la mayor distancia vertical entre la función de distribución empírica de una muestra y una CDF de referencia. La variante de Lilliefors ajusta los valores críticos para el caso en que los parámetros de la distribución se estiman a partir de los datos, que es siempre el caso cuando se contrasta la normalidad.

Contraste KS vs contraste de Lilliefors

Los dos contrastes comparten el mismo estadístico, pero difieren en cómo se especifica la distribución de referencia:

  • Contraste KS: la distribución de referencia está completamente especificada (parámetros conocidos). Por ejemplo, contrastar si los datos siguen una \(N(10, 4)\) con \(\mu=10\) y \(\sigma=2\) fijados de antemano.
  • Contraste de Lilliefors: los parámetros se estiman a partir de los datos (\(\hat{\mu} = \bar{x}\), \(\hat{\sigma} = S\)). Esto es lo que se hace al contrastar la normalidad sin conocer \(\mu\) y \(\sigma\). Estimar los parámetros de los datos hace que el estadístico sea estocásticamente más pequeño, por lo que los valores críticos del KS son demasiado conservadores: Lilliefors los recalculó mediante simulación.

En la práctica, cuando se habla de “contraste KS de normalidad”, casi siempre se hace referencia al contraste de Lilliefors.

Estadístico del contraste

\[D = \max_x \left| F_n(x) - F_0(x) \right|\]

donde \(F_n(x)\) es la CDF empírica de la muestra y \(F_0(x)\) es la CDF de referencia (normal con parámetros estimados en el caso de Lilliefors). Cuanto mayor es \(D\), más se aleja la muestra de la distribución de referencia.

Hipótesis: \(H_0\): los datos siguen la distribución especificada. \(H_1\): no la siguen.

El p-valor se calcula comparando \(D\) con la distribución de Lilliefors (mediante simulación o tablas específicas), no con la distribución KS estándar.

CDF empírica frente a CDF normal teórica mostrando el estadístico D como la máxima distancia vertical entre las dos curvas

La función escalonada roja es la CDF empírica; la curva azul es la CDF normal teórica con parámetros estimados. El segmento verde marca la distancia máxima \(D\).

Ejemplo paso a paso

Un laboratorio mide la viscosidad de 30 muestras. Antes de aplicar un contraste \(t\), el analista verifica la normalidad. Los datos dan \(\bar{x} = 12{,}4\) cP, \(S = 1{,}8\) cP.

CDF empírica frente a CDF normal para los datos de viscosidad con el estadístico D marcado y el p-valor del contraste de Lilliefors

Si \(p > 0{,}05\), no se rechaza la normalidad y el contraste \(t\) puede aplicarse. En R:

library(nortest)
lillie.test(x)   # contraste de Lilliefors
ks.test(x, "pnorm", mean(x), sd(x))  # contraste KS (incorrecto para normalidad: usar lillie.test)

Comparación con otros contrastes de normalidad

El contraste KS/Lilliefors es una de las varias opciones para contrastar la normalidad. Cada uno tiene puntos fuertes distintos:

Contraste Mejor para Potencia Notas
Lilliefors Normalidad general Moderada Parámetros estimados de los datos
Shapiro-Wilk Muestras pequeñas y medianas (\(n \leq 50\)) Alta El más potente para normalidad
Anderson-Darling Sensibilidad en las colas Alta Da más peso a las colas que al centro
KS (original) Parámetros conocidos Moderada Demasiado conservador si se estiman los parámetros

⚠️ Shapiro-Wilk es casi siempre preferible a Lilliefors para contrastar la normalidad

Para contrastar la normalidad, Shapiro-Wilk tiene mayor potencia que Lilliefors en casi todos los tamaños muestrales y desviaciones de la normalidad. Salvo que tengas un motivo específico para usar Lilliefors (por ejemplo, limitaciones del software), usa Shapiro-Wilk en R: shapiro.test(x).

El contraste KS original (con parámetros conocidos) nunca debe usarse para contrastar la normalidad cuando la media y la varianza se estiman de los datos: los p-valores serán demasiado grandes (demasiado conservadores) porque los valores críticos del KS asumen distribuciones completamente especificadas.

⚠️ Todos los contrastes de normalidad tienen poca potencia para muestras pequeñas y mucha para muestras grandes

Para \(n < 20\), los contrastes de normalidad raramente rechazan \(H_0\) aunque los datos sean claramente no normales: el contraste tiene poca potencia. Para \(n > 100\), suelen rechazar \(H_0\) por desviaciones triviales de la normalidad que no tienen consecuencias prácticas. Un gráfico Q-Q es siempre un complemento útil al contraste formal: muestra dónde y cómo se alejan los datos de la normalidad, algo que el p-valor solo no revela.

💡 Flujo de trabajo práctico para verificar la normalidad

Un enfoque robusto para verificar la normalidad antes de los contrastes paramétricos:

  1. Dibuja un gráfico Q-Q: qqnorm(x); qqline(x).
  2. Aplica Shapiro-Wilk: shapiro.test(x).
  3. Si \(n > 50\), complementa con Anderson-Darling: nortest::ad.test(x).
  4. Considera la robustez del contraste siguiente: el contraste \(t\) es bastante robusto frente a desviaciones leves de la normalidad para \(n \geq 30\), por lo que una desviación pequeña puede no importar.

Rechaza el contraste paramétrico solo cuando el gráfico Q-Q muestre una desviación sistemática clara y el contraste de normalidad lo confirme.