Generování K-S replikátů
Teď potřebuješ funkci, která bude generovat Kolmogorov-Smirnovovy replikáty z cílového rozdělení f. Napiš funkci se signaturou draw_ks_reps(n, f, args=(), size=10000, n_reps=10000). Parametr n udává počet datových bodů a f je funkce, pomocí které budeš generovat vzorky z cílové CDF. Například pro testování oproti exponenciálnímu rozdělení předáš jako f funkci np.random.exponential. Taková funkce obvykle vyžaduje argumenty, které se předávají jako n-tice. Pokud chceš vzorkovat z exponenciálního rozdělení se střední hodnotou x_mean, použiješ klíčové slovo args=(x_mean,). Klíčové argumenty size a n_reps pak určují počet vzorků z cílového rozdělení, respektive počet replikátů.
Toto cvičení je součástí kurzu
Případové studie ve statistickém myšlení
Pokyny k cvičení
- Napiš funkci se signaturou
draw_ks_reps(n, f, args=(), size=size), která provede následující.- Vygeneruj
sizevzorků z cílového rozděleníf. Nezapomeň předatargsdo vzorkovací funkce pomocí konstrukcef(*args, size=size). Výsledek ulož do proměnnéx_f. - Inicializuj pole replikátů
repsjako prázdné pole sn_repsprvky. - Napiš smyčku
for, kterán_reps-krát provede následující.- Vyber
nvzorků zf. Opět použij*argsve volání funkce. Výsledek ulož do proměnnéx_samp. - Vypočítej K-S statistiku pomocí
dcst.ks_stat()— funkce, kterou jsi napsal/a v předchozím cvičení a která je uložená v moduludcst. Výsledek ulož do polereps.
- Vyber
- Vrať pole
reps.
- Vygeneruj
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
____ ____:
# Generate samples from target distribution
x_f = ____
# Initialize K-S replicates
reps = ____
# Draw replicates
for i in range(n_reps):
# Draw samples for comparison
x_samp = ____
# Compute K-S statistic
____[i] = ____
return reps