Aan de slagGa gratis aan de slag

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)

Cursus bekijken

Oefeninstructies

  • Trek 10000 bootstrap-replicaties van de gemiddelde jaarlijkse neerslag met je functie draw_bs_reps() en de array rainfall. Hint: geef np.mean door als func om het gemiddelde te berekenen.
    • Ter herinnering: draw_bs_reps() accepteert 3 argumenten: data, func en size.
  • Bereken en print de standaardfout van het gemiddelde van rainfall.
    • De formule hiervoor is np.std(data) / np.sqrt(len(data)).
  • Bereken en print de standaarddeviatie van je bootstrap-replicaties bs_replicates.
  • Maak een histogram van de replicaties met het keyword-argument normed=True en 50 bins.
  • 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()
Code bewerken en uitvoeren