Bootstrap-replicates van het gemiddelde en de SEM
In deze oefening bereken je een bootstrapschatting 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 zou kunnen herhalen. Dit is een probabilistische schatting van het gemiddelde. Je plot de PDF als een histogram en je zult zien dat die Normaal is.
Er is zelfs theoretisch te laten zien dat, onder niet al te strikte 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, is gelijk aan de standaarddeviatie van de data gedeeld door de vierkantswortel van het aantal datapunten. Dus voor een gegevensset: sem = np.std(data) / np.sqrt(len(data)). Met hackerstatistiek kom je tot hetzelfde resultaat zonder het te hoeven afleiden, maar je gaat dit resultaat verifiëren met je bootstrap-replicates.
De gegevensset is al 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-replicates van de gemiddelde jaarlijkse neerslag met je functiedraw_bs_reps()en de arrayrainfall. Tip: 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-replicates
bs_replicates. - Maak een histogram van de replicates met het argument
density=Trueen50bins. - Klik op Antwoord verzenden om de plot te zien!
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan 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()