Replikaty bootstrapowe średniej i błąd standardowy SEM
W tym ćwiczeniu obliczysz bootstrapowe oszacowanie funkcji gęstości prawdopodobieństwa średniej rocznej sumy opadów na stacji meteorologicznej w Sheffield. Estymujemy tutaj średnią roczną sumę opadów, jaką uzyskalibyśmy, gdyby stacja mogła nieskończenie powtarzać wszystkie pomiary z lat 1883–2015. Jest to probabilistyczne oszacowanie średniej. Wynik przedstawisz na histogramie jako wykres PDF – zobaczysz, że ma 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 jest to twierdzenie ogólne – dotyczy średniej i kilku innych statystyk.) Odchylenie standardowe tego rozkładu nosi nazwę błędu standardowego średniej (SEM) i jest równe odchyleniu standardowemu danych podzielonemu przez pierwiastek kwadratowy z liczby punktów, tj. sem = np.std(data) / np.sqrt(len(data)). Stosując podejście haker-statystyczne, uzyskasz ten sam wynik bez konieczności wyprowadzania wzoru – a następnie zweryfikujesz go na podstawie swoich replikatów bootstrapowych.
Zbiór danych został wstępnie wczytany do tablicy o nazwie rainfall.
To ćwiczenie jest częścią kursu
Myślenie statystyczne w Pythonie (część 2)
Instrukcje do ćwiczenia
- Wygeneruj
10000bootstrapowych replikatów średniej rocznej sumy opadów, 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.- Skorzystaj ze wzoru:
np.std(data) / np.sqrt(len(data)).
- Skorzystaj ze wzoru:
- Oblicz i wyświetl odchylenie standardowe replikatów
bs_replicates. - Narysuj histogram replikatów, używając argumentu
normed=Trueoraz50przedziałó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()