Cómo realizar una prueba de Anderson-Darling en Python

Una prueba de Anderson-Darling es una prueba de bondad de ajuste que mide qué tan bien se ajustan sus datos a una distribución específica. Esta prueba se utiliza con mayor frecuencia para determinar si sus datos siguen una distribución normal .

Este tipo de prueba es útil para probar la normalidad, que es una suposición común utilizada en muchas pruebas estadísticas, incluidas regresión , ANOVA , pruebas t y muchas otras.

Ejemplo: prueba de Anderson-Darling en Python

Para realizar una prueba de Anderson-Darling en Python, podemos usar la función anderson () de la biblioteca scipy.stats, que usa la siguiente sintaxis:

Anderson (x, dist = ‘norma’)

dónde:

  • x : matriz de datos de muestra
  • dist : el tipo de distribución para probar. El valor predeterminado es ‘norma’, pero también puede especificar ‘expon’ o ‘logístico’.

Por ejemplo, a continuación se explica cómo realizar una prueba de Anderson-Darling en una muestra de 50 variables aleatorias distribuidas normalmente:

importar numpy como np

#crear datos
np.random.seed (0)
datos = np.random.normal (tamaño = 50)

# realizar la prueba Anderson-Darling  
de scipy.stats import anderson
anderson (datos)

AndersonResult ( estadística = ,15006999533388665,
                critical_values = array ([0.538, 0.613, 0.736, 0.858, 1.021]),
                significance_level = array ([15., 10., 5., 2,5, 1.]))

La estadística de prueba es 0,150 . Podemos comparar este valor con cada valor crítico que corresponde a cada nivel de significancia para ver si los resultados de la prueba son significativos. Por ejemplo:

  • El valor crítico para α = 0.01 es 1.021 . Debido a que el estadístico de prueba (0.150) no es mayor que este valor crítico, los resultados no son significativos a un nivel de significancia de 0.01.
  • El valor crítico para α = 0.025 es 0.858 . Debido a que el estadístico de prueba (0.150) no es mayor que este valor crítico, los resultados no son significativos a un nivel de significancia de 0.025.

Y así.

Podemos ver que los resultados de la prueba no son significativos en ningún nivel de significancia, lo que significa que no rechazaríamos la hipótesis nula de la prueba. Por lo tanto, no tenemos evidencia suficiente para decir que los datos de la muestra no se distribuyen normalmente.

Este resultado no debería sorprendernos considerando que usamos la función np.rand.normal () para generar una muestra de 50 valores distribuidos normalmente.

Considere en cambio si realizamos la prueba de Anderson-Darling en una muestra de 50 números enteros aleatorios entre 0 y 10:

importar numpy como np

#crear datos
np.random.seed (0)
datos = np.random.randint (0, 10, tamaño = 50)

# realizar la prueba Anderson-Darling  
de scipy.stats import anderson
anderson (datos)

AndersonResult ( estadística = 1,1926463985076836,
                critical_values = array ([0.538, 0.613, 0.736, 0.858, 1.021]),
                significance_level = array ([15., 10., 5., 2,5, 1.]))

La estadística de prueba es 1,1926 . Podemos comparar este valor con cada valor crítico que corresponde a cada nivel de significancia para ver si los resultados de la prueba son significativos. Por ejemplo:

  • El valor crítico para α = 0.01 es 1.021 . Debido a que el estadístico de prueba (1.1926) es mayor que este valor crítico, los resultados son significativos a un nivel de significancia de 0.01.
  • El valor crítico para α = 0.025 es 0.858 . Debido a que el estadístico de prueba (1.1926) es mayor que este valor crítico, los resultados son significativos a un nivel de significancia de 0.025.

Y así.

Podemos ver que los resultados de la prueba son significativos en todos los niveles de significancia, lo que significa que rechazaríamos la hipótesis nula de la prueba sin importar qué nivel de significancia elijamos usar. Por lo tanto, tenemos suficiente evidencia para decir que los datos de la muestra no se distribuyen normalmente.

Este resultado tampoco debería sorprender considerando que usamos la función np.rand.randint () para generar una muestra de 50 enteros aleatorios entre 0 y 10, que es poco probable que siga una distribución normal.

Puede encontrar más tutoriales de Python aquí .

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

A menudo usamos tres valores de suma de cuadrados diferentes para medir qué tan bien una línea de regresión realmente…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!