Beräkna K-S-statistikan
Skriv en funktion som beräknar Kolmogorov-Smirnov-statistikan från två datamängder, data1 och data2, där data2 består av urval från den teoretiska fördelning som du jämför dina data med. Observera att vi här använder hacker stats för att beräkna K-S-statistikan för en datamängd och en teoretisk fördelning – inte K-S-statistikan för två empiriska datamängder. Den funktion du nyss valde för att beräkna värden för den formella ECDF:en är tillgänglig som dcst.ecdf_formal().
Den här övningen är en del av kursen
Fallstudier i statistiskt tänkande
Övningsinstruktioner
- Beräkna värdena för de konvexa hörnen i den formella ECDF:en för
data1med hjälp avdcst.ecdf(). Lagra resultaten i variablernaxochy. - Använd
dcst.ecdf_formal()för att beräkna värdena för den teoretiska CDF:en, bestämd utifråndata2, vid de konvexa hörnenx. Lagra resultatet i variabelncdf. - Beräkna avstånden mellan de konkava hörnen i den formella ECDF:en och den teoretiska CDF:en. Lagra resultatet som
D_top. - Beräkna avståndet mellan de konvexa hörnen i den formella ECDF:en och den teoretiska CDF:en. Observera att du behöver subtrahera
1/len(data1)frånyför att fåy-värdet vid det konvexa hörnet. Lagra resultatet iD_bottom. - Returnera K-S-statistikan som det maximala värdet bland alla element i
D_topochD_bottom. Du kan skickaD_topochD_bottomtillsammans som en tupel tillnp.max()för att göra detta.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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))