Bootstrapové replikáty průměru a SEM
V tomto cvičení vypočítáš bootstrapový odhad hustoty pravděpodobnosti průměrného ročního úhrnu srážek na stanici Sheffield Weather Station. Připomeňme, že odhadujeme průměrný roční úhrn srážek, který bychom dostali, kdybychom mohli všechna měření ze stanice Sheffield Weather Station z let 1883 až 2015 opakovat znovu a znovu. Jde o pravděpodobnostní odhad průměru. Hustotu pravděpodobnosti vykreslíš jako histogram a uvidíš, že má normální rozdělení.
Dá se teoreticky dokázat, že za ne příliš omezujících podmínek má průměr vždy normální rozdělení. (To neplatí obecně – jen pro průměr a několik dalších statistik.) Směrodatná odchylka tohoto rozdělení, označovaná jako střední chyba průměru (SEM), se rovná směrodatné odchylce dat vydělené druhou odmocninou počtu datových bodů. Tedy pro daný dataset: sem = np.std(data) / np.sqrt(len(data)). Pomocí hacker statistics získáš stejný výsledek bez nutnosti ho odvozovat, ale ověříš si ho na svých bootstrapových replikátech.
Dataset je předem načtený v poli rainfall.
Toto cvičení je součástí kurzu
Statistical Thinking in Python (Part 2)
Pokyny k cvičení
- Pomocí funkce
draw_bs_reps()a polerainfallvygeneruj10000bootstrapových replikátů průměrného ročního úhrnu srážek. Nápověda: Pro výpočet průměru předej jakofunchodnotunp.mean.- Připomínáme, že
draw_bs_reps()přijímá 3 argumenty:data,funcasize.
- Připomínáme, že
- Vypočítej a vypiš střední chybu průměru datasetu
rainfall.- Použij vzorec
np.std(data) / np.sqrt(len(data)).
- Použij vzorec
- Vypočítej a vypiš směrodatnou odchylku bootstrapových replikátů
bs_replicates. - Vykresli histogram replikátů s argumentem
normed=Truea50sloupci. - Klikni na Submit a podívej se na výsledný graf!
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Take 10,000 bootstrap replicates of the mean: bs_replicates
bs_replicates = ____
# Compute and print SEM
sem = ____ / np.sqrt(____)
print(sem)
# Compute and print standard deviation of bootstrap replicates
bs_std = ____
print(bs_std)
# Make a histogram of the results
_ = plt.hist(____, ____=50, ____=True)
_ = plt.xlabel('mean annual rainfall (mm)')
_ = plt.ylabel('PDF')
# Show the plot
plt.show()