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)
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 van0totlen(x). Deze ga je hersamplen en gebruiken om waarden uit de arraysxenyte kiezen. - Gebruik
np.empty()om de arrays voor helling (slope) en intercept met replicaties te initialiseren met groottesize. - Schrijf een
for-lus om:- De indices
indste hersamplen. Gebruik hiervoornp.random.choice(). - Nieuwe \(x\)- en \(y\)-arrays
bs_xenbs_yte maken met de gehersamplede indicesbs_inds. Slice hiervoorxenymetbs_inds. np.polyfit()te gebruiken op de nieuwe \(x\)- en \(y\)-arrays en de berekende helling en het intercept op te slaan.
- De indices
- Retourneer de pairs-bootstrapreplicaties van de helling en het intercept.
- Gebruik
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