Calculer la valeur d’une ECDF formelle
Pour effectuer le test de Kolmogorov-Smirnov, nous devons calculer la valeur d’une ECDF formelle en des points arbitraires. Autrement dit, il nous faut une fonction ecdf_formal(x, data) qui renvoie la valeur de l’ECDF formelle dérivée de l’ensemble de données data pour chaque valeur du tableau x. Deux des fonctions ci-dessous y parviennent. Une ne fonctionne pas. Parmi les deux correctes, l’une est plus rapide. Indiquez le statut de chacune.
Pour rappel, l’ECDF est définie formellement par ECDF(x) = (nombre d’échantillons ≤ x) / (nombre total d’échantillons). Vous pouvez aussi consulter la docstring 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)
Cet exercice fait partie du cours
Études de cas en pensée statistique
Exercice interactif pratique
Passez de la théorie à la pratique avec l’un de nos exercices interactifs
Commencer l’exercice