Curso
¿Alguna vez has hecho un t-test, te ha salido un p-valor impecable y luego te has dado cuenta de que no comprobaste si tus datos seguían una distribución normal?
Las pruebas estadísticas no te avisan cuando se incumplen sus supuestos. Solo devuelven un valor. El problema es que pruebas como t-tests y ANOVA asumen que tus datos siguen una distribución normal. Si no es así, estás construyendo conclusiones sobre una base endeble.
Las pruebas de normalidad te permiten verificar ese supuesto. Hay métodos visuales y estadísticos para hacerlo, y saber cuáles usar —y cómo leer los resultados— es lo que te permite defender tus conclusiones con seguridad.
En este artículo, te guiaré por los métodos visuales y estadísticos más comunes para comprobar la normalidad, te enseñaré a ejecutarlos en Python y R, y te explicaré qué hacer cuando tus datos no pasan la prueba.
Qué es la distribución normal en la práctica
Seguro que has visto la curva de campana, pero esto es lo que significa realmente para tus datos.
Una distribución normal es un patrón en el que la mayoría de los valores se agrupan alrededor del centro y cada vez aparecen menos a medida que te alejas hacia ambos lados. Al representarla, obtienes una curva simétrica con forma de campana. El lado izquierdo refleja al derecho.

Gráfico de distribución normal
Lo que hace única a la distribución normal es que la media, la mediana y la moda coinciden en el mismo punto: el centro de la campana. No hay sesgo hacia la izquierda ni hacia la derecha. En otras palabras, los datos están equilibrados.
Esto aparece constantemente en datos de mediciones reales. La altura humana, la tensión arterial, las tolerancias en manufactura, las notas de exámenes: todo ello tiende a seguir una distribución normal cuando recopilas suficientes muestras. La variación natural en sistemas biológicos y físicos tiende a producir esta forma.
Dicho esto, no todos los datos se comportan así. Los ingresos se sesgan a la derecha. Los tiempos de respuesta de webs tienen colas largas.
En el mundo real, las cosas pueden salir muy mal si asumes normalidad sin comprobarla.
Por qué importa comprobar la normalidad
El problema de no comprobar la normalidad es que la mayoría de las pruebas estadísticas comunes —t-tests, ANOVA— son pruebas paramétricas.
Eso significa que se basan en supuestos sobre la distribución de tus datos. La normalidad es uno de ellos. Cuando ese supuesto se rompe, también lo hacen las matemáticas de la prueba. Seguirás obteniendo un resultado, pero podría llevarte a conclusiones erróneas.
Las pruebas paramétricas funcionan haciendo supuestos matemáticos sobre la población de la que procede tu muestra. Cuando esos supuestos se cumplen, son útiles y precisas. Cuando no, los p-valores dejan de ser fiables y no puedes sacar conclusiones acertadas.
Ahí es donde entran las pruebas no paramétricas.
Pruebas como Mann-Whitney U o Kruskal-Wallis no asumen normalidad: trabajan con rangos en lugar de valores brutos. Son más flexibles, pero también suelen ser menos útiles cuando tus datos son normales. Cambiar a ellas sin necesidad tampoco es la solución.
El error real que comete mucha gente que empieza en data science es saltarse por completo la comprobación.
Comprobar la normalidad son unas pocas líneas de código. No hacerlo significa que confías ciegamente en tus datos —o que ni siquiera lo estás pensando.
Métodos visuales para comprobar la normalidad
Antes de ejecutar cualquier prueba formal, representa tus datos. Las visualizaciones te dirán mucho sobre con qué estás trabajando.
Histograma
Un histograma te muestra la forma de tu distribución.

Ejemplo de histograma
Si tus datos son normales, el histograma debería parecerse a una campana: alto en el centro y que se afina simétricamente a ambos lados. Lo que debes vigilar es la asimetría (skewness): una cola larga hacia la derecha indica sesgo positivo; hacia la izquierda, sesgo negativo. En ambos casos, puede ser señal de que tus datos no son normales.
El problema de los histogramas es que su forma depende del tamaño de los bins:
- Con pocos bins, la distribución parece plana
- Con demasiados, parece dentada
Prueba siempre un par de tamaños de bin antes de sacar conclusiones.
Gráfico Q-Q
Un gráfico Q-Q (quantile-quantile) compara los cuantiles de tus datos con los de una distribución normal teórica.

Ejemplo de gráfico Q-Q
Si tus datos son normales, los puntos caen sobre una línea diagonal recta. Las desviaciones de esa línea te indican dónde se rompe la normalidad. Los puntos que se curvan hacia arriba en los extremos sugieren colas pesadas. Una curva en forma de S apunta a sesgo.
Los Q-Q plots son más precisos que los histogramas para detectar desviaciones sutiles de la normalidad, especialmente en las colas, donde los histogramas suelen pasar cosas por alto.
Diagrama de caja
Un diagrama de caja te muestra la mediana, la dispersión y los valores atípicos de un vistazo.

Ejemplo de diagrama de caja
Un conjunto de datos normal produce un box plot donde la mediana está aproximadamente en el centro de la caja y los bigotes se extienden con longitudes parecidas a ambos lados. Si la mediana está desplazada o un bigote es mucho más largo que el otro, hay sesgo. Los puntos fuera de los bigotes son outliers.
El problema general de las visualizaciones es que son subjetivas. Dos personas pueden mirar el mismo histograma y discrepar. Úsalas para tomar el pulso a tus datos y confirma después con una prueba formal.
Pruebas de normalidad más comunes en estadística
No hay una única prueba de normalidad que funcione mejor en todas las situaciones. La adecuada depende del tamaño de la muestra y de lo que quieras detectar.
Prueba de Shapiro-Wilk
Shapiro-Wilk es la opción de referencia para muestras pequeñas y medianas, generalmente hasta unos cientos de observaciones.
Mide cuán de cerca se ajustan tus datos a una distribución normal comparando los valores observados con lo esperado si fuesen normales. Es muy utilizada, bien comprendida y está disponible en todas las librerías estadísticas principales. Para la mayoría de analistas, es la primera prueba a la que recurrir.
Su mayor limitación es que se vuelve hipersensible con muestras grandes: tiende a señalar como significativas desviaciones minúsculas sin relevancia práctica.
Prueba de Kolmogorov-Smirnov
La prueba de Kolmogorov-Smirnov (KS) compara la distribución acumulada de tu muestra con una teórica —en este caso, la normal.
Es más general que Shapiro-Wilk y puede contrastar contra cualquier distribución, no solo la normal. Para normalidad, la KS es menos potente que Shapiro-Wilk, por lo que es menos probable que detecte desviaciones sutiles. Además, necesita que especifiques los parámetros de la distribución, lo que introduce sesgo si los estimas con los mismos datos.
Úsala cuando necesites una comprobación rápida y general, no como tu prueba principal de normalidad.
Prueba de Anderson-Darling
Anderson-Darling es una variación de la KS con una diferencia clave: da más peso a las colas de la distribución.
Esto la hace mejor para detectar desviaciones que aparecen en los extremos: colas pesadas, outliers o comportamientos no normales que la KS podría pasar por alto. Si tu caso de uso es sensible al comportamiento en colas, Anderson-Darling es una buena elección.
Prueba de D'Agostino-Pearson
La prueba de D'Agostino-Pearson adopta un enfoque diferente.
En lugar de comparar distribuciones directamente, mide dos propiedades de tus datos: asimetría (skewness) y curtosis (qué tan pesadas o ligeras son las colas).
Las combina en una única estadística de prueba. Esto la hace buena para señalar por qué tus datos podrían no ser normales —no solo si lo son o no—. Funciona mejor con muestras grandes, donde las estimaciones de asimetría y curtosis son fiables.
Prueba de Jarque-Bera
La prueba de Jarque-Bera también utiliza asimetría y curtosis, de forma similar a D'Agostino-Pearson.
Es común en econometría y series temporales. Como D'Agostino-Pearson, necesita una muestra suficientemente grande para producir resultados fiables. Con muestras pequeñas, no es muy fiable. Si trabajas en finanzas o economía, probablemente la verás a menudo.
En resumen, empieza con Shapiro-Wilk para muestras pequeñas y acompáñala con un gráfico Q-Q. Usa Anderson-Darling cuando importen las colas y D'Agostino-Pearson cuando quieras entender la naturaleza de la desviación.
Cómo interpretar los resultados de una prueba de normalidad
Toda prueba de normalidad es una prueba de hipótesis.
La hipótesis nula en cualquier prueba de normalidad es que tus datos siguen una distribución normal. La prueba pregunta: dado lo que vemos en los datos, ¿cuán probable es que esta hipótesis sea cierta?
La respuesta llega como un p-valor:
- p > 0.05: no tienes evidencia suficiente para rechazar la normalidad. Asume que los datos son normales y continúa con pruebas paramétricas
- p < 0.05: los datos difieren de la normalidad lo suficiente como para ser detectables estadísticamente. Rechaza el supuesto de normalidad
Suena sencillo, pero aquí es donde muchos se equivocan.
Un p-valor bajo no te dice cuán no normales son tus datos, solo que se detectó una diferencia. Con muestras grandes, las pruebas de normalidad son extremadamente sensibles y señalan desviaciones tan pequeñas que no afectan realmente a tu análisis.
El problema opuesto también existe. Con muestras pequeñas, incluso datos visiblemente sesgados pueden dar p > 0.05 porque la prueba no tiene suficiente potencia para detectar la desviación.
Significancia estadística y relevancia práctica no son lo mismo.
El p-valor te dice si existe una desviación de la normalidad. No te dice si esa desviación importa para tu análisis concreto. Acompaña siempre el resultado con un gráfico Q-Q: si los puntos siguen de cerca la línea, probablemente tus datos son suficientemente normales, independientemente de lo que diga el p-valor.
Pruebas de normalidad en Python
El módulo scipy.stats de Python tiene todo lo que necesitas para ejecutar pruebas de normalidad en pocas líneas.
En todos los ejemplos de abajo usaré el mismo conjunto de datos: 100 muestras extraídas de una distribución normal, para que puedas ejecutar el código y seguirlo.
import numpy as np
from scipy import stats
np.random.seed(42)
data = np.random.normal(loc=0, scale=1, size=100)
Prueba de Shapiro-Wilk
Usa shapiro() como primera comprobación, especialmente con conjuntos de datos pequeños.
stat, p_value = stats.shapiro(data)
print(f"Statistic: {stat:.4f}, p-value: {p_value:.4f}")
Esto es lo que obtienes:

Salida de una prueba de Shapiro-Wilk en Python
El p-valor está muy por encima de 0.05, así que no rechazamos la normalidad. Los datos parecen normales —tiene sentido, ya que los hemos generado a partir de una normal.
Prueba de Kolmogorov-Smirnov
kstest() compara tu muestra con una distribución con nombre. Para normalidad, pasa "norm" junto con la media y desviación estándar de la muestra.
stat, p_value = stats.kstest(data, 'norm', args=(data.mean(), data.std()))
print(f"Statistic: {stat:.4f}, p-value: {p_value:.4f}")

Salida de una prueba de Kolmogorov-Smirnov en Python
De nuevo, p > 0.05: no hay evidencia contra la normalidad.
Con esta prueba en Python, pasa siempre la media y la desviación estándar explícitamente vía args. Si lo omites, kstest() usa por defecto una normal estándar (media=0, sd=1), lo que te dará resultados poco fiables salvo que tus datos estén estandarizados.
Prueba de D'Agostino-Pearson
normaltest() contrasta la normalidad combinando asimetría y curtosis. Funciona mejor con muestras más grandes.
stat, p_value = stats.normaltest(data)
print(f"Statistic: {stat:.4f}, p-value: {p_value:.4f}")

Salida de una prueba de D'Agostino-Pearson en Python
Otra vez p > 0.05. Los datos pasan las tres pruebas aquí, pero es lo esperado: los generé normales. En la práctica, verás discrepancias entre pruebas, sobre todo cerca del umbral 0.05. Cuando pase, vuelve a tu gráfico Q-Q para decidir.
Pruebas de normalidad en R
R incluye funciones para comprobar la normalidad. No necesitas paquetes extra para lo básico.
Como en los ejemplos de Python, usaré el mismo conjunto de datos: 100 muestras de una distribución normal.
set.seed(42)
data <- rnorm(100, mean = 0, sd = 1)
Prueba de Shapiro-Wilk
shapiro.test() es la opción de referencia para muestras pequeñas y medianas. Pásale tu vector de datos:
shapiro.test(data)

Salida de una prueba de Shapiro-Wilk en R
p > 0.05: no hay evidencia contra la normalidad. La estadística W va de 0 a 1, y valores cercanos a 1 indican que los datos siguen de cerca una normal.
Prueba de Kolmogorov-Smirnov
ks.test() compara tu muestra con una distribución teórica. Para normalidad, especifica "pnorm" y pasa la media y la desviación estándar de la muestra.
ks.test(data, "pnorm", mean(data), sd(data))

Salida de una prueba de Kolmogorov-Smirnov en R
Otra vez p > 0.05. Esta prueba en R tiene la misma advertencia que en Python: pasa siempre mean(data) y sd(data). Si lo omites, se asume una normal estándar, lo que sesga el resultado salvo que tus datos estén estandarizados.
Gráfico Q-Q
Las funciones integradas de R qqnorm() y qqline() te dan un Q-Q plot en dos líneas.
qqnorm(data, main = "Q-Q Plot")
qqline(data, col = "steelblue", lwd = 2)

Gráfico Q-Q en R
qqnorm() representa los cuantiles de tu muestra frente a los cuantiles normales teóricos. qqline() dibuja la línea de referencia. Puntos que siguen de cerca esa línea significan que tus datos se comportan de forma normal. Desviaciones en los extremos señalan problemas en colas que conviene investigar.
Qué hacer si los datos no son normales
Si tus datos no pasan una prueba de normalidad, tienes varias opciones sólidas.
Transformar los datos
A veces la solución es transformar tus datos para que se comporten de forma normal y, después, ejecutar tus pruebas originales sobre los valores transformados.
Transformación logarítmica es la opción más común. Funciona bien con datos sesgados a la derecha —piensa en ingresos, tiempos de respuesta o medidas biológicas con cola larga a la derecha—. La función en Python es np.log(data) y en R es log(data).
Transformación de raíz cuadrada es una opción más suave para sesgos moderados y es útil cuando tus datos contienen ceros (no puedes tomar el logaritmo de cero). Usa np.sqrt(data) en Python o sqrt(data) en R.
Tras la transformación, repite la prueba de normalidad. Si los datos transformados pasan, continúa con pruebas paramétricas —solo recuerda interpretar los resultados en la escala transformada.
Usar pruebas no paramétricas
Si la transformación no funciona o no tiene sentido para tus datos, cambia a pruebas no paramétricas. Estas no asumen normalidad: ordenan los datos en lugar de trabajar con valores brutos.
- Prueba de Mann-Whitney U es la alternativa no paramétrica al t-test para muestras independientes. Úsala al comparar dos grupos
- Prueba de Kruskal-Wallis es la versión no paramétrica del ANOVA de un factor. Úsala al comparar tres o más grupos
Ambas están disponibles en scipy.stats (mannwhitneyu() y kruskal()) y en el paquete base de R (wilcox.test() y kruskal.test()).
Apoyarte en muestras grandes
Con muestras lo bastante grandes, a menudo puedes despreocuparte de la normalidad.
El teorema central del límite dice que, a medida que crece el tamaño muestral, la distribución muestral de la media se acerca a una normal, independientemente de cómo se distribuyan los datos originales. En la práctica, esto implica que las pruebas paramétricas suelen ser fiables con muestras grandes incluso si los datos subyacentes no son perfectamente normales.
Errores comunes al comprobar la normalidad
Comprobar la normalidad es fácil —ya has visto que lleva una sola línea de código—. Aun así, hay varias formas de hacerlo mal.
Estos son algunos errores frecuentes de quienes empiezan en ciencia de datos:
- Confiar solo en los p-valores: Un p-valor te dice si se detectó una desviación de la normalidad, no cuán grande es ni si importa. Tratar p > 0.05 como luz verde y p < 0.05 como luz roja es excesivo. Acompaña siempre el resultado con un gráfico Q-Q
- Ignorar el tamaño muestral: Con muestras pequeñas, las pruebas de normalidad pueden pasar por alto desviaciones reales y devolver p > 0.05 aunque tus datos estén visiblemente sesgados. Con muestras grandes, la prueba se vuelve tan sensible que señala como significativas desviaciones diminutas sin relevancia. El tamaño de la muestra cambia el significado del p-valor
- Hacer pruebas de más: No todo análisis necesita una prueba formal de normalidad. Si estás explorando, un histograma y un Q-Q plot suelen bastar
- Malinterpretar desviaciones leves: Los datos del mundo real casi nunca son perfectamente normales. Una ligera separación de la línea de referencia en un Q-Q plot, o un p-valor justo por debajo de 0.05, no significa que tus datos estén lejos de la normalidad. La pregunta es si son lo bastante normales para la prueba que vas a ejecutar
En resumen, la normalidad es solo una comprobación más de tus datos. Úsala como una entrada entre muchas, no como la última palabra.
Cuándo puedes saltarte la prueba de normalidad
Comprobar la normalidad no siempre es necesario. Si vas justo de tiempo, saber cuándo omitirla puede ahorrarte trabajo sin afectar a los resultados.
Conjuntos de datos grandes
Con muestras grandes, el teorema central del límite garantiza que la distribución muestral de la media es aproximadamente normal, independientemente de la forma de tus datos brutos. Las pruebas paramétricas suelen ser fiables en esta situación, así que una prueba formal aporta poco valor.
Algunos métodos estadísticos también son robustos a la no normalidad. Técnicas como la regresión lineal suelen aguantar bien cuando el tamaño muestral es razonable y las violaciones no son extremas. (La regresión lineal sigue asumiendo normalidad en los residuales).
Análisis exploratorio
Cuando estás explorando datos, construyendo intuición o decidiendo qué variables investigar más, un histograma rápido o un Q-Q plot bastan. Las pruebas formales son para análisis confirmatorios, cuando tus conclusiones deben sostenerse.
Recuerda que la prueba de normalidad existe para evitar conclusiones erróneas. Si estás en un contexto donde equivocarte no tiene consecuencias reales, o donde tu método no depende de la normalidad, la prueba es opcional.
Conclusión
Comprobar la normalidad consiste en verificar si tus supuestos se cumplen lo suficiente como para confiar en los resultados.
Ningún conjunto de datos es perfectamente normal. El objetivo es entender cómo se comportan tus datos y elegir los métodos en consecuencia. Un Q-Q plot te dice dónde están las desviaciones. Una prueba formal te indica si son detectables estadísticamente. Juntas, ofrecen una imagen más clara que por separado.
La prueba adecuada depende del contexto. Usa Shapiro-Wilk para muestras pequeñas, Anderson-Darling cuando importen las colas, alternativas no paramétricas cuando no puedas asumir normalidad. Y a veces —con muestras grandes o métodos robustos— ninguna prueba en absoluto.
¿Te resulta confuso todo el concepto de p-valores? Lee nuestro artículo Hypothesis Testing Made Easy para asegurarte de interpretarlos correctamente.
Preguntas frecuentes sobre pruebas de normalidad
¿Qué es una prueba de normalidad?
Una prueba de normalidad es un método estadístico que verifica si tus datos siguen una distribución normal (gaussiana). La mayoría de las pruebas estadísticas comunes —como t-tests, ANOVA y regresión lineal— asumen normalidad, así que comprobar este supuesto antes del análisis te ayuda a evitar conclusiones incorrectas.
¿Siempre tengo que comprobar la normalidad?
No siempre. Con muestras grandes, el teorema central del límite hace que las pruebas paramétricas sean fiables independientemente de la distribución subyacente. Para análisis exploratorios, un histograma rápido o un gráfico Q-Q suele bastar; las pruebas formales son más útiles en análisis confirmatorios, cuando tus conclusiones deben sostenerse.
¿Qué hago si mis datos no pasan una prueba de normalidad?
Tienes varias opciones. Puedes transformar los datos con logaritmo o raíz cuadrada y volver a probar. Si la transformación no funciona, cambia a pruebas no paramétricas como Mann-Whitney U (para dos grupos) o Kruskal-Wallis (para tres o más grupos), que no asumen normalidad.
¿Cuál es la diferencia entre las pruebas de Shapiro-Wilk y Kolmogorov-Smirnov?
Shapiro-Wilk está diseñada específicamente para contrastar normalidad y funciona mejor con muestras pequeñas y medianas. La Kolmogorov-Smirnov es más general —puede comparar una muestra con cualquier distribución teórica, no solo la normal—, pero es menos potente que Shapiro-Wilk para normalidad, por lo que es más probable que pase por alto desviaciones sutiles.
¿Cómo interpreto un gráfico Q-Q para evaluar la normalidad?
Un gráfico Q-Q compara los cuantiles de tus datos con los cuantiles de una distribución normal teórica. Si los puntos caen cerca de la línea diagonal de referencia, tus datos se comportan de forma normal. Desviaciones en los extremos señalan problemas en colas: una curva en S apunta a asimetría; puntos que se alejan de la línea en ambos extremos sugieren colas más pesadas o más ligeras que en una normal.


