Kom igångKom igång gratis

Uppskatta hastighet och konfidensintervall

Vi fortsätter att titta på vandringsdatan från nationalparken. Observera att vissa avstånd är negativa – det beror på att vandrarna gick i motsatt riktning från startpunkten. Datan är lite ojämn, så vi fokuserar på den övergripande trenden.

I den här övningen är målet att använda bootstrap-resampling för att hitta fördelningen av hastighetsvärden för en linjär modell, och sedan beräkna den bästa uppskattningen av hastigheten samt det 90-procentiga konfidensintervallet för den uppskattningen. Hastigheten här är lutningsparametern från den linjära regressionsmodellen som anpassar avstånd som funktion av tid.

Som startpunkt har vi förladdat distance- och time-data, tillsammans med en fördefinierad funktion least_squares() för att beräkna hastighetsvärdet för varje resampel.

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

Introduktion till linjär modellering i Python

Visa kurs

Övningsinstruktioner

  • Använd np.random.choice() för att dra sample_inds från population_inds, och bevara därvid kopplingen mellan avstånd och tid för varje datapunkt.
  • För att bevara tidsordningen, anropa .sort()sample_inds och använd sedan sample_inds för att indexera distances och times.
  • Använd least_squares(times, distances) för att beräkna parametrarna i den linjära modellen och lagra a1 i resample_speeds.
  • Tillämpa np.mean() och np.percentiles()resample_speeds för att beräkna hastigheten och konfidensintervallet ci_90, och skriv sedan ut båda.

Interaktiv övning med praktiskt arbete

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

# Resample each preloaded population, and compute speed distribution
population_inds = np.arange(0, 99, dtype=int)
for nr in range(num_resamples):
    sample_inds = np.random.choice(____, size=100, replace=True)
    sample_inds.____()
    sample_distances = distances[____]
    sample_times = times[____]
    a0, a1 = ____(sample_times, sample_distances)
    resample_speeds[nr] = ____

# Compute effect size and confidence interval, and print
speed_estimate = np.mean(____)
ci_90 = np.percentile(____, [5, 95])
print('Speed Estimate = {:0.2f}, 90% Confidence Interval: {:0.2f}, {:0.2f} '.format(____, ____[0], ____[1]))
Redigera och kör kod