Bootstrap em regressão
Agora vamos ver como o bootstrap funciona com regressão. O bootstrap ajuda a estimar a incerteza de estimadores não padronizados. Considere a estatística \(R^{2}\) associada a uma regressão. Quando você roda uma regressão por mínimos quadrados simples, você obtém um valor para \(R^{2}\). Mas vamos ver como obter um IC de 95% para \(R^2\).
Examine o DataFrame df com uma variável dependente \(y\) e duas variáveis independentes \(X1\) e \(X2\) usando df.head(). Já ajustamos essa regressão com statsmodels (sm) usando:
reg_fit = sm.OLS(df['y'], df.iloc[:,1:]).fit()
Examine o resultado usando reg_fit.summary() para verificar que \(R^{2}=0.3504\). Use bootstrap para calcular o IC de 95%.
Este exercício faz parte do curso
Simulação Estatística em Python
Instruções do exercício
- Extraia uma amostra bootstrap do conjunto de dados original usando o método
sample()de um DataFrame do pandas. O número de linhas deve ser o mesmo do DataFrame original. - Ajuste uma regressão semelhante à
reg_fit()usandosm.OLS()e extraia a estatística \(R^{2}\) usando o parâmetrorsquared. - Acrescente o \(R^{2}\) à lista
rsquared_boot. - Calcule o IC de 95% para
rsquared_bootcomor_sq_95_ciusandonp.percentile().
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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))