Menghitung statistik K-S
Tulislah sebuah fungsi untuk menghitung statistik Kolmogorov–Smirnov dari dua himpunan data, data1 dan data2, di mana data2 berisi sampel dari sebaran teoretis yang Anda gunakan untuk membandingkan data Anda. Perlu dicatat bahwa ini berarti kita menggunakan hacker stats untuk menghitung statistik K-S antara sebuah himpunan data dan sebaran teoretis, bukan statistik K-S untuk dua himpunan data empiris. Kebetulan, fungsi yang baru saja Anda pilih untuk menghitung nilai ECDF formal tersedia sebagai dcst.ecdf_formal().
Latihan ini adalah bagian dari kursus
Studi Kasus dalam Pemikiran Statistik
Petunjuk latihan
- Hitung nilai titik sudut cembung dari ECDF formal untuk
data1menggunakandcst.ecdf(). Simpan hasilnya pada variabelxdany. - Gunakan
dcst.ecdf_formal()untuk menghitung nilai CDF teoretis, yang ditentukan daridata2, pada titik sudut cembungx. Simpan hasilnya pada variabelcdf. - Hitung jarak antara titik sudut cekung dari ECDF formal dan CDF teoretis. Simpan hasilnya sebagai
D_top. - Hitung jarak antara titik sudut cembung dari ECDF formal dan CDF teoretis. Perhatikan bahwa Anda perlu mengurangkan
1/len(data1)dariyuntuk mendapatkan nilaiypada sudut cembung. Simpan hasilnya dalamD_bottom. - Kembalikan statistik K-S sebagai nilai maksimum dari seluruh entri dalam
D_topdanD_bottom. Anda dapat memberikanD_topdanD_bottombersama sebagai tuple kenp.max()untuk melakukannya.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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))