Zacznij terazZacznij za darmo

Obliczanie statystyki K-S

Napisz funkcję obliczającą statystykę Kołmogorowa-Smirnowa na podstawie dwóch zbiorów danych: data1 i data2, gdzie data2 zawiera próbki z rozkładu teoretycznego, z którym porównujesz swoje dane. Oznacza to, że używamy metod haker stats do obliczenia statystyki K-S dla zbioru danych i rozkładu teoretycznego – nie statystyki K-S dla dwóch empirycznych zbiorów danych. Funkcja wybrana wcześniej do obliczania wartości formalnej empirycznej dystrybuanty (ECDF) jest dostępna jako dcst.ecdf_formal().

To ćwiczenie jest częścią kursu

Studia przypadków w myśleniu statystycznym

Zobacz kurs

Instrukcje do ćwiczenia

  • Oblicz wartości wypukłych narożników formalnej ECDF dla data1 przy użyciu dcst.ecdf(). Wyniki zapisz w zmiennych x i y.
  • Użyj dcst.ecdf_formal(), aby obliczyć wartości teoretycznej dystrybuanty – wyznaczonej na podstawie data2 – w wypukłych narożnikach x. Wynik zapisz w zmiennej cdf.
  • Oblicz odległości między wklęsłymi narożnikami formalnej ECDF a teoretyczną dystrybuantą. Wynik zapisz jako D_top.
  • Oblicz odległość między wypukłymi narożnikami formalnej ECDF a teoretyczną dystrybuantą. Pamiętaj, że aby uzyskać wartość y w wypukłym narożniku, należy odjąć 1/len(data1) od y. Wynik zapisz w D_bottom.
  • Zwróć statystykę K-S jako maksimum wszystkich wartości z D_top i D_bottom. Możesz przekazać D_top i D_bottom razem jako krotkę do np.max().

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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))
Edytuj i uruchom kod