Aan de slagBegin gratis

Snelheid en betrouwbaarheid schatten

We kijken verder naar de wandeldata uit het National Park. Merk op dat sommige afstanden negatief zijn omdat er in de tegenovergestelde richting vanaf het startpunt is gelopen; de data zijn rommelig, dus laten we ons richten op de algemene trend.

In deze oefening gebruik je bootstrap-hersampling om de verdeling van snelheidswaarden voor een lineair model te vinden. Vanuit die verdeling bereken je vervolgens de beste schatting voor de snelheid en het 90%-betrouwbaarheidsinterval van die schatting. De snelheid is hier de hellingsparameter uit het lineaire regressiemodel waarmee je afstand als functie van tijd modelleert.

Om je op weg te helpen, hebben we distance- en time-data alvast geladen, samen met een vooraf gedefinieerde functie least_squares() om de snelheidswaarde voor elke resample te berekenen.

Deze oefening maakt deel uit van de cursus

Introductie tot lineaire modellering in Python

Bekijk cursus

Oefeninstructies

  • Gebruik np.random.choice() om sample_inds te trekken uit population_inds, waarbij je de afstand-tijd-koppeling van elk datapunt behoudt.
  • Om de tijdsvolgorde te behouden, voer je .sort() uit op sample_inds en gebruik je vervolgens sample_inds om distances en times te indexeren.
  • Gebruik least_squares(times, distances) om de parameters van het lineaire model te berekenen en sla a1 op in resample_speeds.
  • Pas np.mean() en np.percentiles() toe op resample_speeds om de snelheid en het betrouwbaarheidsinterval ci_90 te berekenen, en print daarna allebei.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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]))
Code bewerken en uitvoeren