Kom igångKom igång gratis

Bootstrap och standardfel

Föreställ dig en nationalpark där parkranger vandrar varje dag som en del av underhållet av parkens stigar. De tar inte alltid samma väg, men de registrerar sin slutliga sträcka och tid. Vi vill bygga en statistisk modell för variationerna i daglig tillryggalagd sträcka, baserat på ett begränsat urval av data från en ranger.

Målet är att använda bootstrap-omsampling – där du beräknar ett medelvärde för varje omurval – för att skapa en fördelning av medelvärden. Sedan beräknar du standardfelet som ett sätt att kvantifiera "osäkerheten" i urvalsstatistiken som en skattare för populationsstatistiken.

Använd den förinlästa arrayen sample_data med 500 oberoende mätningar av tillryggalagd sträcka. Vi använder ett simulerat dataset här för att förenkla lektionen. Senare kommer vi att se mer realistiska data.

Den här övningen är en del av kursen

Introduktion till linjär modellering i Python

Visa kurs

Övningsinstruktioner

  • Tilldela sample_data som modell för populationen.

  • Iterera num_resamples gånger:

    • Använd np.random.choice() varje gång för att generera ett bootstrap_sample med size=resample_size hämtat från population_model, och ange replace=True.
    • Beräkna och lagra urvalsmedelvärdet varje gång.
  • Beräkna och skriv ut np.mean() och np.std() för bootstrap_means.

  • Använd den fördefinierade funktionen plot_data_hist() och visualisera fördelningen av bootstrap_means.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Use the sample_data as a model for the population
population_model = ____

# Resample the population_model 100 times, computing the mean each sample
for nr in range(num_resamples):
    bootstrap_sample = np.random.____(population_model, size=____, replace=____)
    bootstrap_means[nr] = np.____(bootstrap_sample)

# Compute and print the mean, stdev of the resample distribution of means
distribution_mean = np.mean(____)
standard_error = np.std(____)
print('Bootstrap Distribution: center={:0.1f}, spread={:0.1f}'.format(____, ____))

# Plot the bootstrap resample distribution of means
fig = plot_data_hist(____)
Redigera och kör kod