EmpezarEmpieza gratis

Calcular el valor de una ECDF formal

Para poder hacer la prueba de Kolmogorov-Smirnov, necesitamos calcular el valor de una ECDF formal en puntos arbitrarios. Es decir, necesitamos una función, ecdf_formal(x, data), que devuelva el valor de la ECDF formal derivada del conjunto de datos data para cada valor del array x. Dos de las funciones lo consiguen. Una no. De las dos que hacen el cálculo correctamente, una es más rápida. Etiqueta cada una.

Como recordatorio, la ECDF se define formalmente como ECDF(x) = (número de muestras ≤ x) / (número total de muestras). También puede interesarte revisar la cadena de documentación de np.searchsorted().

a)

def ecdf_formal(x, data):
    return np.searchsorted(np.sort(data), x) / len(data)

b)

def ecdf_formal(x, data):
    return np.searchsorted(np.sort(data), x, side='right') / len(data)

c)

def ecdf_formal(x, data):
    output = np.empty(len(x))

    data = np.sort(data)

    for i, x_val in x:
        j = 0
        while j < len(data) and x_val >= data[j]:
            j += 1

        output[i] = j

    return output / len(data)

Este ejercicio forma parte del curso

Casos prácticos de pensamiento estadístico

Ver curso

ejercicio interactivo práctico

Convierte la teoría en práctica con uno de nuestros ejercicios interactivos

Empezar ejercicio