LoslegenKostenlos loslegen

K-S-Statistik berechnen

Schreibe eine Funktion, die die Kolmogorov-Smirnov-Statistik aus zwei Datensätzen data1 und data2 berechnet, wobei data2 aus Stichproben der theoretischen Verteilung besteht, mit der du deine Daten vergleichst. Beachte, dass wir damit Hacker-Stats verwenden, um die K-S-Statistik für einen Datensatz und eine theoretische Verteilung zu berechnen — nicht die K-S-Statistik für zwei empirische Datensätze. Praktischerweise ist die Funktion, die du gerade zum Berechnen der Werte der formalen ECDF ausgewählt hast, dcst.ecdf_formal().

Diese Übung ist Teil des Kurses

Fallstudien zum statistischen Denken

Kurs anzeigen

Anleitung zur Übung

  • Berechne die Werte der konvexen Ecken der formalen ECDF für data1 mit dcst.ecdf(). Speichere die Ergebnisse in den Variablen x und y.
  • Verwende dcst.ecdf_formal(), um die Werte der theoretischen CDF, bestimmt durch data2, an den konvexen Ecken x zu berechnen. Speichere das Ergebnis in der Variablen cdf.
  • Berechne die Abstände zwischen den konkaven Ecken der formalen ECDF und der theoretischen CDF. Speichere das Ergebnis als D_top.
  • Berechne den Abstand zwischen den konvexen Ecken der formalen ECDF und der theoretischen CDF. Beachte, dass du 1/len(data1) von y abziehen musst, um den y-Wert an der konvexen Ecke zu erhalten. Speichere das Ergebnis in D_bottom.
  • Gib die K-S-Statistik als Maximum aller Einträge in D_top und D_bottom zurück. Du kannst D_top und D_bottom zusammen als Tuple an np.max() übergeben.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

def ks_stat(data1, data2):
    # Compute ECDF from data: x, y
    
    
    # Compute corresponding values of the target CDF
    cdf = ____

    # Compute distances between concave corners and CDF
    D_top = ____ - ____

    # Compute distance between convex corners and CDF
    D_bottom = ____ - ____ + ____/____

    return np.max((D_top, D_bottom))
Code bearbeiten und ausführen