Funkcja do bootstrapu par
Jak omówiono w filmie, bootstrap par polega na ponownym próbkowaniu par danych. Do każdego zestawu par dopasowywana jest prosta – w tym przypadku za pomocą np.polyfit(). Powtarzamy ten proces wielokrotnie, uzyskując repliki bootstrapowe wartości parametrów. Aby mieć przydatne narzędzie do bootstrapu par, napiszesz funkcję wykonującą bootstrap par na zestawie danych x,y.
To ćwiczenie jest częścią kursu
Myślenie statystyczne w Pythonie (część 2)
Instrukcje do ćwiczenia
- Zdefiniuj funkcję o sygnaturze
draw_bs_pairs_linreg(x, y, size=1), która oblicza estymaty bootstrapowe parametrów regresji liniowej metodą par.- Użyj
np.arange(), aby utworzyć tablicę indeksów od0dolen(x). To właśnie te indeksy będziesz ponownie próbkować i używać do wybierania wartości z tablicxiy. - Użyj
np.empty(), aby zainicjalizować tablice replik nachylenia i punktu przecięcia o rozmiarzesize. - Napisz pętlę
for, która:- Ponownie próbkuje indeksy
inds. Użyj do tegonp.random.choice(). - Tworzy nowe tablice \(x\) i \(y\) –
bs_xibs_y– na podstawie ponownie spróbkowanych indeksówbs_inds. Wytnij odpowiednie fragmenty zxiy, używającbs_inds. - Używa
np.polyfit()na nowych tablicach \(x\) i \(y\) oraz zapisuje obliczone nachylenie i punkt przecięcia.
- Ponownie próbkuje indeksy
- Zwróć repliki bootstrapowe nachylenia i punktu przecięcia metodą par.
- Użyj
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
def draw_bs_pairs_linreg(x, y, size=1):
"""Perform pairs bootstrap for linear regression."""
# Set up array of indices to sample from: inds
inds = ____
# Initialize replicates: bs_slope_reps, bs_intercept_reps
bs_slope_reps = ____
bs_intercept_reps = ____
# Generate replicates
for i in range(size):
bs_inds = np.random.choice(____, size=____)
bs_x, bs_y = x[____], y[____]
bs_slope_reps[i], bs_intercept_reps[i] = ____
return bs_slope_reps, bs_intercept_reps