ComenzarEmpieza gratis

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

Ver curso

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() usando sm.OLS() y extrae la estadística \(R^{2}\) usando el parámetro rsquared.
  • Añade el \(R^{2}\) a la lista rsquared_boot.
  • Calcula el IC del 95% para rsquared_boot como r_sq_95_ci usando np.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))
Editar y ejecutar código