IniziaInizia gratis

Bootstrapping della regressione

Ora vediamo come funziona il bootstrapping con la regressione. Il bootstrapping aiuta a stimare l’incertezza di stimatori non standard. Considera la statistica \(R^{2}\) associata a una regressione. Quando esegui una semplice regressione ai minimi quadrati, ottieni un valore di \(R^{2}\). Ma vediamo come ottenere un IC al 95% per \(R^2\).

Esamina il DataFrame df con una variabile dipendente \(y\) e due variabili indipendenti \(X1\) e \(X2\) usando df.head(). Abbiamo già stimato questa regressione con statsmodels (sm) usando:

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

Esamina il risultato con reg_fit.summary() e verifica che \(R^{2}=0.3504\). Usa il bootstrapping per calcolare l’IC al 95%.

Questo esercizio fa parte del corso

Simulazione statistica in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Estrai un campione bootstrap dal dataset originale usando il metodo sample() di un DataFrame pandas. Il numero di righe deve essere lo stesso del DataFrame originale.
  • Stima una regressione simile a reg_fit() usando sm.OLS() ed estrai la statistica \(R^{2}\) usando il parametro rsquared.
  • Aggiungi il valore di \(R^{2}\) alla lista rsquared_boot.
  • Calcola l’IC al 95% per rsquared_boot come r_sq_95_ci usando np.percentile().

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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))
Modifica ed esegui il codice