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
Instrukcje do ćwiczenia
- Użyj
np.random.choice(), aby wylosowaćsample_indszpopulation_inds, zachowując powiązanie dystansu i czasu dla każdej obserwacji. - Aby zachować porządek czasowy, wywołaj
.sort()nasample_inds, a następnie użyjsample_indsdo indeksowaniadistancesitimes. - Użyj
least_squares(times, distances), aby obliczyć parametry modelu liniowego i zapisza1wresample_speeds. - Zastosuj
np.mean()inp.percentiles()doresample_speeds, obliczając prędkość i przedział ufnościci_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]))