LoslegenKostenlos loslegen

Den Wert einer formalen ECDF berechnen

Um den Kolmogorov-Smirnov-Test durchführen zu können, müssen wir den Wert einer formalen ECDF an beliebigen Punkten berechnen. Anders gesagt: Wir brauchen eine Funktion ecdf_formal(x, data), die für jeden Wert im Array x den Wert der aus dem Datensatz data abgeleiteten formalen ECDF zurückgibt. Zwei der Funktionen schaffen das. Eine nicht. Von den beiden korrekten ist eine schneller. Ordne die Labels zu.

Zur Erinnerung: Die ECDF ist formal definiert als ECDF(x) = (Anzahl der Stichproben ≤ x) / (Gesamtzahl der Stichproben). Schau dir auch gern den Docstring von np.searchsorted() an.

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)

Diese Übung ist Teil des Kurses

Fallstudien zum statistischen Denken

Kurs anzeigen

Interaktive Übung

In dieser interaktiven Übung kannst du die Theorie in die Praxis umsetzen.

Übung starten