Aan de slagGa gratis aan de slag

Een functie voor pairs bootstrap

Zoals in de video besproken, houdt pairs bootstrap in dat je paren data hersamplat. Elke verzameling paren wordt met een lijn gefit, in dit geval met np.polyfit(). Dat doe je steeds opnieuw, zodat je bootstrapreplicaties van de parameterwaarden krijgt. Om een bruikbaar hulpmiddel te hebben voor pairs bootstrap, schrijf je een functie die pairs bootstrap uitvoert op een set x,y-data.

Deze oefening maakt deel uit van de cursus

Statistical Thinking in Python (deel 2)

Cursus bekijken

Oefeninstructies

  • Definieer een functie met aanroep-signatuur draw_bs_pairs_linreg(x, y, size=1) om pairs bootstrap-schattingen van lineaire regressieparameters uit te voeren.
    • Gebruik np.arange() om een array met indices op te zetten van 0 tot len(x). Deze ga je hersamplen en gebruiken om waarden uit de arrays x en y te kiezen.
    • Gebruik np.empty() om de arrays voor helling (slope) en intercept met replicaties te initialiseren met grootte size.
    • Schrijf een for-lus om:
      • De indices inds te hersamplen. Gebruik hiervoor np.random.choice().
      • Nieuwe \(x\)- en \(y\)-arrays bs_x en bs_y te maken met de gehersamplede indices bs_inds. Slice hiervoor x en y met bs_inds.
      • np.polyfit() te gebruiken op de nieuwe \(x\)- en \(y\)-arrays en de berekende helling en het intercept op te slaan.
    • Retourneer de pairs-bootstrapreplicaties van de helling en het intercept.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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
Code bewerken en uitvoeren