Cómo realizar una prueba de Kolmogorov-Smirnov en Python

Puedes opinar sobre este contenido:
  • 0
  • 0
  • 0
  • 0

Actualizado el 17 de julio de 2024, por Luis Benites.

La prueba de Kolmogorov-Smirnov se utiliza para comprobar si una muestra procede o no de una determinada distribución.

Para realizar una prueba de Kolmogorov-Smirnov en Python, podemos usar scipy.stats.kstest () para una prueba de una muestra o scipy.stats.ks_2samp () para una prueba de dos muestras.

Este tutorial muestra un ejemplo de cómo utilizar cada función en la práctica.

Ejemplo 1: Prueba de Kolmogorov-Smirnov de una muestra

Supongamos que tenemos los siguientes datos de muestra:

de numpy.random importar semilla
 de numpy.random import poisson

#set seed (por ejemplo, hacer que este ejemplo sea reproducible)
semilla (0)

# generar un conjunto de datos de 100 valores que sigan una distribución de Poisson con media = 5
 datos = poisson (5, 100)

El siguiente código muestra cómo realizar una prueba de Kolmogorov-Smirnov en esta muestra de 100 valores de datos para determinar si provienen de una distribución normal:

de scipy.stats importar kstest

# realizar la prueba kstest de Kolmogorov-Smirnov 
(datos, ' norma ')

KstestResult (estadístico = 0.9072498680518208, pvalue = 1.0908062873170218e-103)

De la salida podemos ver que el estadístico de prueba es 0.9072 y el valor p correspondiente es 1.0908e-103 . Dado que el valor p es menor que .05, rechazamos la hipótesis nula. Tenemos evidencia suficiente para decir que los datos de la muestra no provienen de una distribución normal.

Este resultado tampoco debería sorprender, ya que generamos los datos de muestra utilizando la función poisson () , que genera valores aleatorios que siguen una distribución de Poisson .

Ejemplo 2: Prueba de Kolmogorov-Smirnov de dos muestras

Supongamos que tenemos los siguientes dos conjuntos de datos de muestra:

de numpy.random importar semilla
 de numpy.random importar randn
 de numpy.random importar lognormal

#set seed (por ejemplo, hacer que este ejemplo sea reproducible)
semilla (0)

#generar dos conjuntos de datos
 data1 = randn (100)
data2 = lognormal (3, 1, 100)

El siguiente código muestra cómo realizar una prueba de Kolmogorov-Smirnov en estas dos muestras para determinar si provienen de la misma distribución:

de scipy.stats importar ks_2samp

# realizar la prueba de Kolmogorov-Smirnov
ks_2samp (datos1, datos2)

KstestResult (estadístico = 0,99, pvalue = 4,417521386399011e-57)

A partir de la salida, podemos ver que el estadístico de prueba es 0,99 y el valor p correspondiente es 4,4175e-57 . Dado que el valor p es menor que .05, rechazamos la hipótesis nula. Tenemos suficiente evidencia para decir que los dos conjuntos de datos de muestra no provienen de la misma distribución.

Este resultado tampoco debería sorprender, ya que generamos valores para la primera muestra usando la distribución normal estándar y valores para la segunda muestra usando la distribución lognormal.

Recursos adicionales

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

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

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

Deja un comentario

En estadística, los deciles son números que dividen un conjunto de datos en diez grupos de igual frecuencia. El primer…
statologos comunidad-2

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

You have Successfully Subscribed!