Kom igångKom igång gratis

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)

Visa kurs

Ö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ån 0 till len(x). Det är dessa index du kommer att återsamla och använda för att plocka ut värden ur x- och y-arrayerna.
    • Använd np.empty() för att initiera replikatarrayerna för lutning och intercept med storleken size.
    • Skriv en for-slinga som:
      • Återsamlar indexen inds. Använd np.random.choice() för detta.
      • Skapar nya \(x\)- och \(y\)-arrayer, bs_x och bs_y, med hjälp av de återsamlade indexen bs_inds. Indexera x och y med bs_inds.
      • Använder np.polyfit() på de nya \(x\)- och \(y\)-arrayerna och lagrar den beräknade lutningen och interceptet.
    • Returnera de parade bootstrap-replikaten av lutningen och interceptet.

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
Redigera och kör kod