Funkce pro párový bootstrap
Jak bylo vysvětleno ve videu, párový bootstrap spočívá v opakovaném vzorkování dvojic dat. Každá sada dvojic se proloží přímkou – v tomto případě pomocí np.polyfit(). Tento postup opakujeme znovu a znovu a získáváme bootstrapové replikáty hodnot parametrů. Abys měl/a k dispozici praktický nástroj pro párový bootstrap, napíšeš funkci, která ho provede na sadě dat x,y.
Toto cvičení je součástí kurzu
Statistical Thinking in Python (Part 2)
Pokyny k cvičení
- Definuj funkci se signaturou
draw_bs_pairs_linreg(x, y, size=1), která provede bootstrapové odhady parametrů lineární regrese metodou párového bootstrapu.- Pomocí
np.arange()vytvoř pole indexů od0dolen(x). Právě tyto indexy budeš převzorkovat a použít k výběru hodnot z políxay. - Pomocí
np.empty()inicializuj pole replikátů sklonu a úseku o velikostisize. - Napiš smyčku
for, která:- Převzorkuje indexy
inds. Použij k tomunp.random.choice(). - Vytvoří nová pole \(x\) a \(y\) pojmenovaná
bs_xabs_ypomocí převzorkovaných indexůbs_inds. Stačí indexovatxaypomocíbs_inds. - Aplikuje
np.polyfit()na nová pole \(x\) a \(y\) a uloží vypočtený sklon a úsek.
- Převzorkuje indexy
- Vrať párové bootstrapové replikáty sklonu a úseku.
- Pomocí
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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