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
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()usandosm.OLS()ed estrai la statistica \(R^{2}\) usando il parametrorsquared. - Aggiungi il valore di \(R^{2}\) alla lista
rsquared_boot. - Calcola l’IC al 95% per
rsquared_bootcomer_sq_95_ciusandonp.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))