MulaiMulai sekarang secara gratis

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

Lihat Kursus

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() menggunakan sm.OLS() dan ekstrak statistik \(R^{2}\) menggunakan parameter rsquared.
  • Tambahkan nilai \(R^{2}\) ke daftar rsquared_boot.
  • Hitung CI 95% untuk rsquared_boot sebagai r_sq_95_ci menggunakan np.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))
Edit dan Jalankan Kode