ÎncepețiÎncepe gratuit

Bootstrapping în regresie

Hai să vedem cum funcționează bootstrapping-ul în contextul regresiei. Bootstrapping-ul ajută la estimarea incertitudinii pentru estimatori non-standard. Gândește-te la statistica \(R^{2}\) asociată unei regresii. Când rulezi o regresie simplă prin metoda celor mai mici pătrate, obții o valoare pentru \(R^{2}\). Dar cum putem calcula un interval de încredere de 95% pentru \(R^2\)?

Examinează DataFrame-ul df, care conține o variabilă dependentă \(y\) și două variabile independente \(X1\) și \(X2\), folosind df.head(). Am ajustat deja această regresie cu statsmodels (sm) astfel:

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

Examinează rezultatul cu reg_fit.summary() pentru a confirma că \(R^{2}=0.3504\). Folosește bootstrapping pentru a calcula intervalul de încredere de 95%.

Acest exercițiu face parte din cursul

Simulare statistică în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Extrage un eșantion bootstrap din setul de date original folosind metoda sample() a unui DataFrame pandas. Numărul de rânduri trebuie să fie același cu cel al DataFrame-ului original.
  • Ajustează o regresie similară cu reg_fit() folosind sm.OLS() și extrage statistica \(R^{2}\) cu ajutorul parametrului rsquared.
  • Adaugă valoarea \(R^{2}\) în lista rsquared_boot.
  • Calculează intervalul de încredere de 95% pentru rsquared_boot ca r_sq_95_ci folosind np.percentile().

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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))
Editează și rulează codul