Bootstrapreplikat av medelvärdet och SEM
I den här övningen beräknar du en bootstrapskattning av sannolikhetstäthetsfunktionen för den genomsnittliga årliga nederbörden vid Sheffield Weather Station. Vi skattar alltså det medelvärde för årlig nederbörd som skulle fås om Sheffield Weather Station kunde upprepa alla mätningar från 1883 till 2015 om och om igen. Det är en probabilistisk skattning 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 enbart för medelvärdet och ett fåtal andra statistiska mått.) Standardavvikelsen för denna fördelning kallas standardfelet för medelvärdet, eller SEM, och ges av datans standardavvikelse dividerat med kvadratroten av antalet datapunkter. Det vill säga, för en datamängd gäller: sem = np.std(data) / np.sqrt(len(data)). Med hackerstatistik får du samma resultat utan att behöva härleda det – men du kommer att verifiera resultatet med dina bootstrapreplikat.
Datamängden har redan lästs in i en array kallad rainfall.
Den här övningen är en del av kursen
Statistiskt tänkande i Python (del 2)
Övningsinstruktioner
- Dra
10000bootstrapreplikat av det genomsnittliga årliga nederbördsvärdet med din funktiondraw_bs_reps()och arrayenrainfall. Tips: Skicka innp.meanförfuncfö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 standardfelet för medelvärdet av
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 bootstrapreplikat
bs_replicates. - Skapa ett histogram över replikaten med nyckelordsargumentet
density=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()