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
Instrukcje do ćwiczenia
- Oblicz wartości wypukłych narożników formalnej ECDF dla
data1przy użyciudcst.ecdf(). Wyniki zapisz w zmiennychxiy. - Użyj
dcst.ecdf_formal(), aby obliczyć wartości teoretycznej dystrybuanty – wyznaczonej na podstawiedata2– w wypukłych narożnikachx. Wynik zapisz w zmiennejcdf. - 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ść
yw wypukłym narożniku, należy odjąć1/len(data1)ody. Wynik zapisz wD_bottom. - Zwróć statystykę K-S jako maksimum wszystkich wartości z
D_topiD_bottom. Możesz przekazaćD_topiD_bottomrazem jako krotkę donp.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))