top of page

Análisis de Normalidad

Criterios para determinar normalidad

Q-Q and other tests

Q-Q and other tests

Puede resultar útil contar con criterios y herramientas para saber si una distribución es normal o de algún otro tipo.

Criterios para determinar si un conjunto de datos se distribuye normalmente

Los criterios para determinar la normalidad de un conjunto de datos incluyen:

  • Valor p: En las pruebas estadísticas, se calcula un valor p que indica la probabilidad de que los datos se distribuyan normalmente. Un valor p menor que un umbral (usualmente 0.05) sugiere que los datos no siguen una distribución normal.

  • Visualización de los datos: Gráficos como el histograma y el Q-Q plot (Quantile-Quantile plot) son herramientas visuales comunes para evaluar la normalidad.

  • Estadísticas descriptivas: Evaluar la skewness y la kurtosis de los datos. 

Herramientas en Python SciPy para determinar la normalidad de un conjunto de datos

En Python, especialmente usando SciPy, hay varias pruebas estadísticas para determinar la normalidad de un conjunto de datos:

  • Shapiro-Wilk Test (scipy.stats.shapiro): Una prueba muy popular para la normalidad, adecuada para muestras pequeñas.

  • Anderson-Darling Test (scipy.stats.anderson): Otra prueba que es útil para muestras pequeñas y tiene diferentes variantes para diferentes distribuciones.

  • Kolmogorov-Smirnov Test (scipy.stats.kstest): Esta prueba compara la muestra con una distribución de referencia, aunque se usa comúnmente con distribuciones uniformes.

  • D'Agostino's K-squared Test (scipy.stats.normaltest): Esta prueba combina las pruebas de skewness y kurtosis para evaluar la normalidad.

Librerías, objetos y métodos específicos de Python para determinar la función de distribución que mejor representa un conjunto de datos

Para determinar la función de distribución que mejor representa un conjunto de datos, puedes usar las siguientes librerías y métodos en Python:

  • SciPy: Proporciona herramientas para ajustar datos a diversas distribuciones.
    scipy.stats: Contiene funciones para ajustar distribuciones y realizar pruebas de bondad de ajuste.

scipy.stats.norm.fit: Ajusta una distribución normal a los datos.
scipy.stats.kstest: Prueba de Kolmogorov-Smirnov para evaluar el ajuste de una distribución.
scipy.stats.chisquare: Prueba de chi-cuadrado para evaluar el ajuste de una distribución.

  • Statsmodels: Proporciona más herramientas estadísticas y visualizaciones.statsmodels.distributions: Módulo para trabajar con distribuciones.
    statsmodels.api.ProbPlot: Crea Q-Q plots para evaluar visualmente el ajuste de una distribución.

  • Fitter: Librería específica para ajustar distribuciones y comparar el ajuste de diferentes distribuciones.fitter.Fitter: Objeto principal para ajustar distribuciones.

Uso de las pruebas de normalidad

En mi repositorio de git-hub he compartido las siguientes pruebas de normalidad en un jupiter-notebook:

  • Shapiro-Wilk Test Evalúa la hipótesis nula de que una muestra proviene de una distribución normal. Es una prueba muy sensible para muestras pequeñas. Shapiro-Wilk Test: ShapiroResult(statistic=0.9983408586650224, pvalue=0.45528206840858154) Si el valor p es menor que 0.05, se rechaza la hipótesis nula, sugiriendo que los datos no son normales.

  • Anderson-Darling Test Evalúa la hipótesis nula de que los datos siguen una distribución específica (por defecto, normal). Anderson-Darling Test: AndersonResult(statistic=0.44200822290179076, critical_values=array([0.574, 0.653, 0.784, 0.914, 1.088]), significance_level=array([15. , 10. ,  5. ,  2.5,  1. ]), fit_result=  params: FitParams(loc=0.0679294632361939, scale=1.0564448832561808)  success: True  message: '`anderson` successfully fit the distribution to the data.') El resultado incluye un estadístico de prueba y una serie de valores críticos. Si el estadístico es mayor que los valores críticos correspondientes a ciertos niveles de significancia, se rechaza la hipótesis nula.

  • D'Agostino's K-squared Test Compara una muestra con una distribución de referencia (normal en este caso). D'Agostino's K-squared Test: NormaltestResult(statistic=2.253681017574136, pvalue=0.3240554911779068) Si el valor p es menor que 0.05, se rechaza la hipótesis nula, sugiriendo que los datos no son normales.

bottom of page