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
Interaktive Übung
In dieser interaktiven Übung kannst du die Theorie in die Praxis umsetzen.
Übung starten