LoslegenKostenlos loslegen

Bootstrapping bei Regressionen

Schauen wir uns nun an, wie Bootstrapping bei Regressionen funktioniert. Bootstrapping hilft, die Unsicherheit nicht standardmäßiger Schätzer zu bestimmen. Betrachte die mit einer Regression verbundene \(R^{2}\)-Kennzahl. Wenn du eine einfache Methode der kleinsten Quadrate rechnest, erhältst du einen Wert für \(R^{2}\). Aber wie bekommen wir ein 95-%-KI für \(R^2\)?

Untersuche das DataFrame df mit der abhängigen Variable \(y\) und zwei unabhängigen Variablen \(X1\) und \(X2\) mit df.head(). Wir haben diese Regression bereits mit statsmodels (sm) angepasst, und zwar mit:

reg_fit = sm.OLS(df['y'], df.iloc[:,1:]).fit()

Untersuche das Ergebnis mit reg_fit.summary() und stelle fest, dass \(R^{2}=0{,}3504\) ist. Verwende Bootstrapping, um das 95-%-KI zu berechnen.

Diese Übung ist Teil des Kurses

Statistische Simulation in Python

Kurs anzeigen

Anleitung zur Übung

  • Ziehe eine Bootstrap-Stichprobe aus dem ursprünglichen Datensatz mit der Methode sample() eines pandas DataFrame. Die Zeilenanzahl soll der des ursprünglichen DataFrame entsprechen.
  • Passe eine Regression analog zu reg_fit() mit sm.OLS() an und extrahiere die \(R^{2}\)-Kennzahl über das Attribut rsquared.
  • Hänge das \(R^{2}\) an die Liste rsquared_boot an.
  • Berechne das 95-%-KI für rsquared_boot als r_sq_95_ci mit np.percentile().

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

rsquared_boot, coefs_boot, sims = [], [], 1000
reg_fit = sm.OLS(df['y'], df.iloc[:,1:]).fit()

# Run 1K iterations
for i in range(sims):
    # First create a bootstrap sample with replacement with n=df.shape[0]
    bootstrap = ____
    # Fit the regression and append the r square to rsquared_boot
    rsquared_boot.append(____(bootstrap['y'],bootstrap.iloc[:,1:]).fit().rsquared)

# Calculate 95% CI on rsquared_boot
r_sq_95_ci = ____
print("R Squared 95% CI = {}".format(r_sq_95_ci))
Code bearbeiten und ausführen