Bootstrapping en regresión
Ahora veamos cómo funciona el bootstrapping con regresión. El bootstrapping ayuda a estimar la incertidumbre de estimadores no estándar. Considera la estadística \(R^{2}\) asociada a una regresión. Cuando ejecutas una regresión de mínimos cuadrados, obtienes un valor para \(R^{2}\). Pero veamos cómo obtener un IC del 95% para \(R^2\).
Examina el DataFrame df con una variable dependiente \(y\) y dos variables independientes \(X1\) y \(X2\) usando df.head(). Ya hemos ajustado esta regresión con statsmodels (sm) usando:
reg_fit = sm.OLS(df['y'], df.iloc[:,1:]).fit()
Examina el resultado con reg_fit.summary() para ver que \(R^{2}=0.3504\). Usa bootstrapping para calcular el IC del 95%.
Este ejercicio forma parte del curso
Simulación estadística en Python
Instrucciones del ejercicio
- Extrae una muestra bootstrap del conjunto de datos original usando el método
sample()de un DataFrame de pandas. El número de filas debe ser el mismo que el del DataFrame original. - Ajusta una regresión similar a
reg_fit()usandosm.OLS()y extrae la estadística \(R^{2}\) usando el parámetrorsquared. - Añade el \(R^{2}\) a la lista
rsquared_boot. - Calcula el IC del 95% para
rsquared_bootcomor_sq_95_ciusandonp.percentile().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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))