LoslegenKostenlos loslegen

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)

Kurs anzeigen

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 von 0 bis len(x) aufzubauen. Diese Indizes wirst du resamplen und damit Werte aus den Arrays x und y auswählen.
    • Verwende np.empty(), um die Replikat-Arrays für Steigung und Achsenabschnitt mit der Größe size zu initialisieren.
    • Schreibe eine for-Schleife, um:
      • die Indizes inds neu zu sampeln. Verwende dazu np.random.choice().
      • neue \(x\)- und \(y\)-Arrays bs_x und bs_y mithilfe der neu gesampelten Indizes bs_inds zu erstellen. Slice dazu x und y mit bs_inds.
      • np.polyfit() auf die neuen \(x\)- und \(y\)-Arrays anzuwenden und die berechnete Steigung sowie den Achsenabschnitt zu speichern.
    • Gib die Pairs-Bootstrap-Replikate von Steigung und Achsenabschnitt zurück.

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
Code bearbeiten und ausführen