EmpezarEmpieza gratis

Calcular la estadística K-S

Escribe una función para calcular la estadística de Kolmogorov–Smirnov a partir de dos conjuntos de datos, data1 y data2, donde data2 contiene muestras de la distribución teórica con la que estás comparando tus datos. Ten en cuenta que esto significa que estamos usando hacker stats para calcular la estadística K-S para un conjunto de datos y una distribución teórica, no la estadística K-S para dos conjuntos de datos empíricos. Por suerte, la función que acabas de seleccionar para calcular valores de la ECDF formal es dcst.ecdf_formal().

Este ejercicio forma parte del curso

Casos prácticos de pensamiento estadístico

Ver curso

Instrucciones del ejercicio

  • Calcula los valores de las esquinas convexas de la ECDF formal para data1 usando dcst.ecdf(). Guarda los resultados en las variables x e y.
  • Usa dcst.ecdf_formal() para calcular los valores de la CDF teórica, determinada a partir de data2, en las esquinas convexas x. Guarda el resultado en la variable cdf.
  • Calcula las distancias entre las esquinas cóncavas de la ECDF formal y la CDF teórica. Guarda el resultado como D_top.
  • Calcula la distancia entre las esquinas convexas de la ECDF formal y la CDF teórica. Ten en cuenta que tendrás que restar 1/len(data1) de y para obtener el valor de y en la esquina convexa. Guarda el resultado en D_bottom.
  • Devuelve la estadística K-S como el máximo de todas las entradas en D_top y D_bottom. Para ello, puedes pasar D_top y D_bottom juntos como una tupla a np.max().

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

def ks_stat(data1, data2):
    # Compute ECDF from data: x, y
    
    
    # Compute corresponding values of the target CDF
    cdf = ____

    # Compute distances between concave corners and CDF
    D_top = ____ - ____

    # Compute distance between convex corners and CDF
    D_bottom = ____ - ____ + ____/____

    return np.max((D_top, D_bottom))
Editar y ejecutar código