Bootstrapowe replikaty średniej i SEM
W tym ćwiczeniu obliczysz bootstrapowe oszacowanie funkcji gęstości prawdopodobieństwa średniego rocznego opadu na Stacji Meteorologicznej w Sheffield. Pamiętaj — szacujemy średni roczny opad, jaki uzyskalibyśmy, gdyby stacja mogła w nieskończoność powtarzać wszystkie pomiary z lat 1883–2015. To probabilistyczne oszacowanie średniej. Wynik przedstawisz jako histogram PDF i przekonasz się, że ma on kształt rozkładu normalnego.
Można bowiem wykazać teoretycznie, że przy niezbyt restrykcyjnych założeniach wartość średniej zawsze ma rozkład normalny. (Nie dotyczy to wszystkich statystyk — jedynie średniej i kilku innych.) Odchylenie standardowe tego rozkładu, nazywane błędem standardowym średniej (ang. standard error of the mean, SEM), wyraża się jako odchylenie standardowe danych podzielone przez pierwiastek kwadratowy z liczby punktów danych: sem = np.std(data) / np.sqrt(len(data)). Metoda statystyki hakerskiej prowadzi do tego samego wyniku bez potrzeby jego wyprowadzania — przekonasz się o tym, weryfikując wynik na podstawie własnych replikatów bootstrapowych.
Zbiór danych został wczytany do tablicy rainfall.
To ćwiczenie jest częścią kursu
Myślenie statystyczne w Pythonie (część 2)
Instrukcje do ćwiczenia
- Wygeneruj
10000bootstrapowych replikatów średniego rocznego opadu, korzystając z funkcjidraw_bs_reps()i tablicyrainfall. Wskazówka: Przekażnp.meanjako argumentfunc, aby obliczyć średnią.- Przypomnienie:
draw_bs_reps()przyjmuje 3 argumenty:data,funcisize.
- Przypomnienie:
- Oblicz i wyświetl błąd standardowy średniej dla
rainfall.- Wzór:
np.std(data) / np.sqrt(len(data)).
- Wzór:
- Oblicz i wyświetl odchylenie standardowe swoich replikatów bootstrapowych
bs_replicates. - Narysuj histogram replikatów, używając argumentu
density=Truei50przedziałów. - Kliknij Prześlij odpowiedź, aby zobaczyć wykres!
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()