ComeçarComece de graça

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

Ver curso

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() usando sm.OLS() e extraia a estatística \(R^{2}\) usando o parâmetro rsquared.
  • Acrescente o \(R^{2}\) à lista rsquared_boot.
  • Calcule o IC de 95% para rsquared_boot como r_sq_95_ci usando np.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))
Editar e executar o código