Bootstrapping regresi
Sekarang mari lihat bagaimana bootstrapping bekerja pada regresi. Bootstrapping membantu mengestimasi ketidakpastian dari penaksir non-standar. Pertimbangkan statistik \(R^{2}\) yang terkait dengan suatu regresi. Ketika Anda menjalankan regresi kuadrat terkecil sederhana, Anda memperoleh nilai \(R^{2}\). Namun, mari kita lihat bagaimana cara mendapatkan CI 95% untuk \(R^2\).
Periksa DataFrame df dengan variabel dependen \(y\) dan dua variabel independen \(X1\) dan \(X2\) menggunakan df.head(). Kita sudah memasangkan regresi ini dengan statsmodels (sm) menggunakan:
reg_fit = sm.OLS(df['y'], df.iloc[:,1:]).fit()
Tinjau hasilnya menggunakan reg_fit.summary() untuk menemukan bahwa \(R^{2}=0.3504\). Gunakan bootstrapping untuk menghitung CI 95%.
Latihan ini adalah bagian dari kursus
Simulasi Statistik di Python
Petunjuk latihan
- Ambil sampel bootstrap dari himpunan data asli menggunakan metode
sample()pada DataFrame pandas. Jumlah baris harus sama dengan DataFrame asli. - Pasangkan regresi serupa dengan
reg_fit()menggunakansm.OLS()dan ekstrak statistik \(R^{2}\) menggunakan parameterrsquared. - Tambahkan nilai \(R^{2}\) ke daftar
rsquared_boot. - Hitung CI 95% untuk
rsquared_bootsebagair_sq_95_cimenggunakannp.percentile().
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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))