CommencerCommencer gratuitement

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

Afficher le cours

Exercice interactif pratique

Passez de la théorie à la pratique avec l’un de nos exercices interactifs

Commencer l’exercice