Bootstrap-replicaties van het gemiddelde en de SEM
In deze oefening bereken je een bootstrap-schatting van de kansdichtheidsfunctie van de gemiddelde jaarlijkse neerslag bij het Sheffield Weather Station. Onthoud: we schatten het gemiddelde van de jaarlijkse neerslag dat je zou krijgen als het Sheffield Weather Station alle metingen van 1883 tot 2015 steeds opnieuw kon uitvoeren. Dit is een probabilistische schatting van het gemiddelde. Je plot de PDF als een histogram en je zult zien dat deze Normaal is.
In feite is theoretisch aan te tonen dat, onder niet al te beperkende voorwaarden, de waarde van het gemiddelde altijd Normaal verdeeld is. (Dit geldt niet in het algemeen, alleen voor het gemiddelde en een paar andere statistieken.) De standaarddeviatie van deze verdeling, de standaardfout van het gemiddelde of SEM, wordt gegeven door de standaarddeviatie van de data gedeeld door de wortel uit het aantal datapunten. Dus, voor een gegevensset: sem = np.std(data) / np.sqrt(len(data)). Met hackerstatistiek krijg je hetzelfde resultaat zonder het te hoeven afleiden, maar je gaat dit resultaat verifiëren met je bootstrap-replicaties.
De gegevensset is alvast voor je ingeladen in een array met de naam rainfall.
Deze oefening maakt deel uit van de cursus
Statistical Thinking in Python (deel 2)
Oefeninstructies
- Trek
10000bootstrap-replicaties van de gemiddelde jaarlijkse neerslag met je functiedraw_bs_reps()en de arrayrainfall. Hint: geefnp.meandoor alsfuncom het gemiddelde te berekenen.- Ter herinnering:
draw_bs_reps()accepteert 3 argumenten:data,funcensize.
- Ter herinnering:
- Bereken en print de standaardfout van het gemiddelde van
rainfall.- De formule hiervoor is
np.std(data) / np.sqrt(len(data)).
- De formule hiervoor is
- Bereken en print de standaarddeviatie van je bootstrap-replicaties
bs_replicates. - Maak een histogram van de replicaties met het keyword-argument
normed=Trueen50bins. - Klik op Antwoord verzenden om de plot te zien!
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()