O funcție pentru bootstrap pe perechi
Așa cum s-a discutat în videoclip, bootstrap-ul pe perechi presupune reeșantionarea perechilor de date. Fiecare colecție de perechi este ajustată cu o dreaptă, în acest caz folosind np.polyfit(). Repetăm acest proces de mai multe ori, obținând replici bootstrap ale valorilor parametrilor. Pentru a dispune de un instrument util pentru bootstrap pe perechi, vei scrie o funcție care să realizeze această tehnică pe un set de date x,y.
Acest exercițiu face parte din cursul
Gândire statistică în Python (Partea 2)
Instrucțiuni pentru exercițiu
- Definește o funcție cu semnătura
draw_bs_pairs_linreg(x, y, size=1)pentru a calcula estimări bootstrap pe perechi pentru parametrii regresiei liniare.- Folosește
np.arange()pentru a crea un array de indici de la0lalen(x). Aceștia sunt indicii pe care îi vei reeșantiona și îi vei folosi pentru a selecta valori din array-urilexșiy. - Folosește
np.empty()pentru a inițializa array-urile de replici ale pantei și interceptării, cu dimensiuneasize. - Scrie o buclă
forcare să:- Reeșantioneze indicii
inds. Foloseștenp.random.choice()pentru aceasta. - Creeze noi array-uri \(x\) și \(y\), numite
bs_xșibs_y, folosind indicii reeșantionațibs_inds. Aplică slice pexșiycubs_inds. - Aplice
np.polyfit()pe noile array-uri \(x\) și \(y\) și să stocheze panta și interceptarea calculate.
- Reeșantioneze indicii
- Returnează replicile bootstrap pe perechi ale pantei și interceptării.
- Folosește
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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