Výpočet K-S statistiky
Napiš funkci, která vypočítá Kolmogorov-Smirnovovu statistiku ze dvou datových sad, data1 a data2, přičemž data2 obsahuje vzorky z teoretického rozdělení, se kterým svá data porovnáváš. To znamená, že používáme hacker stats k výpočtu K-S statistiky pro datovou sadu a teoretické rozdělení, nikoli K-S statistiky pro dvě empirické datové sady. Funkce, kterou jsi právě vybral/a pro výpočet hodnot formální ECDF, je k dispozici jako dcst.ecdf_formal().
Toto cvičení je součástí kurzu
Případové studie ve statistickém myšlení
Pokyny k cvičení
- Vypočítej hodnoty konvexních rohů formální ECDF pro
data1pomocídcst.ecdf(). Výsledky ulož do proměnnýchxay. - Pomocí
dcst.ecdf_formal()vypočítej hodnoty teoretické CDF, určené zdata2, v konvexních rozíchx. Výsledek ulož do proměnnécdf. - Vypočítej vzdálenosti mezi konkávními rohy formální ECDF a teoretickou CDF. Výsledek ulož jako
D_top. - Vypočítej vzdálenost mezi konvexními rohy formální ECDF a teoretickou CDF. Nezapomeň, že pro získání hodnoty
yv konvexním rohu je potřeba odečíst1/len(data1)ody. Výsledek ulož doD_bottom. - Vrať K-S statistiku jako maximum všech hodnot v
D_topaD_bottom. Můžeš předatD_topaD_bottomdohromady jako tuple funkcinp.max().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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))