Zacznij terazZacznij za darmo

Szacowanie prędkości i przedziału ufności

Kontynuujmy analizę danych turystycznych z parków narodowych. Zwróć uwagę, że niektóre wartości dystansu są ujemne – oznacza to ruch w kierunku przeciwnym do punktu startowego szlaku. Dane są niedoskonałe, więc skupmy się na ogólnym trendzie.

Celem tego ćwiczenia jest zastosowanie metody bootstrap do wyznaczenia rozkładu wartości prędkości dla modelu liniowego, a następnie obliczenie na jego podstawie najlepszego oszacowania prędkości oraz 90-procentowego przedziału ufności. Prędkość odpowiada tu współczynnikowi nachylenia z modelu regresji liniowej dopasowanego do dystansu jako funkcji czasu.

Na dobry początek wczytaliśmy dane distance i time oraz zdefiniowaliśmy funkcję least_squares(), która oblicza wartość prędkości dla każdej próbki.

To ćwiczenie jest częścią kursu

Wprowadzenie do modelowania liniowego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj np.random.choice(), aby wylosować sample_inds z population_inds, zachowując powiązanie dystansu i czasu dla każdej obserwacji.
  • Aby zachować porządek czasowy, wywołaj .sort() na sample_inds, a następnie użyj sample_inds do indeksowania distances i times.
  • Użyj least_squares(times, distances), aby obliczyć parametry modelu liniowego i zapisz a1 w resample_speeds.
  • Zastosuj np.mean() i np.percentiles() do resample_speeds, obliczając prędkość i przedział ufności ci_90, a następnie wyświetl oba wyniki.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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]))
Edytuj i uruchom kod