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
ejercicio interactivo práctico
Convierte la teoría en práctica con uno de nuestros ejercicios interactivos
Empezar ejercicio