Eine Funktion für Pairs-Bootstrap
Wie im Video besprochen, werden beim Pairs-Bootstrap Datenpaare neu gesampelt. Jede Sammlung von Paaren wird mit einer Geraden gefittet, in diesem Fall mit np.polyfit(). Das wiederholen wir immer wieder und erhalten so Bootstrap-Replikate der Parameterwerte. Damit du ein nützliches Werkzeug für Pairs-Bootstrap hast, schreibst du eine Funktion, die Pairs-Bootstrap auf einen Satz von x,y-Daten anwendet.
Diese Übung ist Teil des Kurses
Statistical Thinking in Python (Teil 2)
Anleitung zur Übung
- Definiere eine Funktion mit der Call-Signatur
draw_bs_pairs_linreg(x, y, size=1), um Pairs-Bootstrap-Schätzungen für Parameter der linearen Regression durchzuführen.- Verwende
np.arange(), um ein Index-Array von0bislen(x)aufzubauen. Diese Indizes wirst du resamplen und damit Werte aus den Arraysxundyauswählen. - Verwende
np.empty(), um die Replikat-Arrays für Steigung und Achsenabschnitt mit der Größesizezu initialisieren. - Schreibe eine
for-Schleife, um:- die Indizes
indsneu zu sampeln. Verwende dazunp.random.choice(). - neue \(x\)- und \(y\)-Arrays
bs_xundbs_ymithilfe der neu gesampelten Indizesbs_indszu erstellen. Slice dazuxundymitbs_inds. np.polyfit()auf die neuen \(x\)- und \(y\)-Arrays anzuwenden und die berechnete Steigung sowie den Achsenabschnitt zu speichern.
- die Indizes
- Gib die Pairs-Bootstrap-Replikate von Steigung und Achsenabschnitt zurück.
- Verwende
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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