En funktion för parade bootstrap
Som beskrevs i videon innebär parade bootstrap att man återsamlar par av data. Varje samling par anpassas med en linje – i det här fallet med np.polyfit(). Det upprepas gång på gång för att ge bootstrap-replikat av parametervärdena. Du kommer nu att skriva en funktion som utför parade bootstrap på en uppsättning x,y-data.
Den här övningen är en del av kursen
Statistiskt tänkande i Python (del 2)
Övningsinstruktioner
- Definiera en funktion med signaturen
draw_bs_pairs_linreg(x, y, size=1)för att beräkna parade bootstrap-skattningar av linjära regressionsparametrar.- Använd
np.arange()för att skapa en array med index från0tilllen(x). Det är dessa index du kommer att återsamla och använda för att plocka ut värden urx- ochy-arrayerna. - Använd
np.empty()för att initiera replikatarrayerna för lutning och intercept med storlekensize. - Skriv en
for-slinga som:- Återsamlar indexen
inds. Användnp.random.choice()för detta. - Skapar nya \(x\)- och \(y\)-arrayer,
bs_xochbs_y, med hjälp av de återsamlade indexenbs_inds. Indexeraxochymedbs_inds. - Använder
np.polyfit()på de nya \(x\)- och \(y\)-arrayerna och lagrar den beräknade lutningen och interceptet.
- Återsamlar indexen
- Returnera de parade bootstrap-replikaten av lutningen och interceptet.
- Använd
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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