De K-S-statistiek berekenen
Schrijf een functie om de Kolmogorov–Smirnov-statistiek te berekenen uit twee gegevenssets, data1 en data2, waarbij data2 bestaat uit steekproeven uit de theoretische verdeling waarmee je je data vergelijkt. Dit betekent dat we hacker stats gebruiken om de K-S-statistiek te berekenen voor een gegevensset en een theoretische verdeling, niet de K-S-statistiek voor twee empirische gegevenssets. Handig genoeg is de functie die je zojuist hebt gekozen om waarden van de formele ECDF te berekenen beschikbaar als dcst.ecdf_formal().
Deze oefening maakt deel uit van de cursus
Casestudies in statistisch denken
Oefeninstructies
- Bereken de waarden van de convexe hoeken van de formele ECDF voor
data1metdcst.ecdf(). Sla de resultaten op in de variabelenxeny. - Gebruik
dcst.ecdf_formal()om de waarden van de theoretische CDF, bepaald op basis vandata2, te berekenen op de convexe hoekenx. Sla het resultaat op in de variabelecdf. - Bereken de afstanden tussen de concave hoeken van de formele ECDF en de theoretische CDF. Sla het resultaat op als
D_top. - Bereken de afstand tussen de convexe hoeken van de formele ECDF en de theoretische CDF. Let op dat je
1/len(data1)vanymoet aftrekken om dey-waarde bij de convexe hoek te krijgen. Sla het resultaat op inD_bottom. - Retourneer de K-S-statistiek als het maximum van alle waarden in
D_topenD_bottom. Je kuntD_topenD_bottomsamen als een tuple doorgeven aannp.max()om dit te doen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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))