Bootstrap-replikat av medelvärdet och SEM
I den här övningen ska du beräkna en bootstrap-uppskattning av sannolikhetstäthetsfunktionen för den genomsnittliga årliga nederbörden vid Sheffield Weather Station. Kom ihåg att vi uppskattar den genomsnittliga årliga nederbörden som Sheffield Weather Station skulle få om alla mätningar från 1883 till 2015 upprepades om och om igen. Det här är en probabilistisk uppskattning av medelvärdet. Du ritar upp PDF:en som ett histogram och kommer att se att den är normalfördelad.
Det kan faktiskt visas teoretiskt att medelvärdet, under inte alltför restriktiva villkor, alltid är normalfördelat. (Detta gäller inte generellt, utan bara för medelvärdet och några andra statistiska mått.) Standardavvikelsen för denna fördelning kallas medelvärdets standardfel, eller SEM, och ges av datamängdens standardavvikelse dividerad med kvadratroten av antalet datapunkter. Det vill säga: sem = np.std(data) / np.sqrt(len(data)). Med hacker-statistik får du samma resultat utan att behöva härleda det, men du kommer att verifiera resultatet med hjälp av dina bootstrap-replikat.
Datamängden har redan lästs in i en array med namnet rainfall.
Den här övningen är en del av kursen
Statistiskt tänkande i Python (del 2)
Övningsinstruktioner
- Dra
10000bootstrap-replikat av medelvärdet för den årliga nederbörden med hjälp av dindraw_bs_reps()-funktion och arrayenrainfall. Tips: Skicka innp.meansomfuncför att beräkna medelvärdet.- Som en påminnelse tar
draw_bs_reps()3 argument:data,funcochsize.
- Som en påminnelse tar
- Beräkna och skriv ut medelvärdets standardfel för
rainfall.- Formeln för detta är
np.std(data) / np.sqrt(len(data)).
- Formeln för detta är
- Beräkna och skriv ut standardavvikelsen för dina bootstrap-replikat
bs_replicates. - Skapa ett histogram över replikaten med nyckelordsargumentet
normed=Trueoch50bins. - Klicka på Skicka in svar för att se diagrammet!
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()