Calcularea statisticii K-S
Scrie o funcție care să calculeze statistica Kolmogorov-Smirnov pornind de la două seturi de date, data1 și data2, unde data2 conține eșantioane din distribuția teoretică cu care îți compari datele. Aceasta înseamnă că folosim hacker stats pentru a calcula statistica K-S pentru un set de date și o distribuție teoretică, nu statistica K-S pentru două seturi de date empirice. Funcția pe care ai selectat-o anterior pentru calcularea valorilor ECDF-ului formal este disponibilă ca dcst.ecdf_formal().
Acest exercițiu face parte din cursul
Studii de caz în gândirea statistică
Instrucțiuni pentru exercițiu
- Calculează valorile colțurilor convexe ale ECDF-ului formal pentru
data1folosinddcst.ecdf(). Stochează rezultatele în variabilelexșiy. - Folosește
dcst.ecdf_formal()pentru a calcula valorile CDF-ului teoretic, determinate dindata2, la colțurile convexex. Stochează rezultatul în variabilacdf. - Calculează distanțele dintre colțurile concave ale ECDF-ului formal și CDF-ul teoretic. Stochează rezultatul ca
D_top. - Calculează distanța dintre colțurile convexe ale ECDF-ului formal și CDF-ul teoretic. Reține că trebuie să scazi
1/len(data1)dinypentru a obține valoareayla colțul convex. Stochează rezultatul înD_bottom. - Returnează statistica K-S ca maximul tuturor valorilor din
D_topșiD_bottom. Poți transmiteD_topșiD_bottomîmpreună ca un tuplu lanp.max()pentru a face acest lucru.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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))