Fungsi untuk melakukan pairs bootstrap
Seperti dibahas dalam video, pairs bootstrap melibatkan pengambilan ulang sampel berpasangan dari data. Setiap kumpulan pasangan dicocokkan dengan sebuah garis, dalam hal ini menggunakan np.polyfit(). Proses ini diulang berkali-kali untuk memperoleh replikasi bootstrap dari nilai parameter. Agar memiliki alat yang berguna untuk melakukan pairs bootstrap, Anda akan menulis sebuah fungsi untuk menjalankan pairs bootstrap pada sekumpulan data x,y.
Latihan ini adalah bagian dari kursus
Pemikiran Statistik dengan Python (Bagian 2)
Petunjuk latihan
- Definisikan fungsi dengan tanda tangan pemanggilan
draw_bs_pairs_linreg(x, y, size=1)untuk melakukan estimasi pairs bootstrap pada parameter regresi linear.- Gunakan
np.arange()untuk membuat array indeks dari0hinggalen(x). Indeks inilah yang akan Anda ambil ulang sampelnya dan gunakan untuk memilih nilai dari arrayxdany. - Gunakan
np.empty()untuk menginisialisasi array replikasi kemiringan (slope) dan intersep dengan ukuransize. - Tulis sebuah
forloop untuk:- Mengambil ulang sampel indeks
inds. Gunakannp.random.choice()untuk melakukannya. - Membuat array \(x\) dan \(y\) baru
bs_xdanbs_ymenggunakan indeks hasil pengambilan ulangbs_inds. Untuk melakukannya, lakukan slicing padaxdanydenganbs_inds. - Gunakan
np.polyfit()pada array \(x\) dan \(y\) yang baru dan simpan nilai kemiringan (slope) dan intersep yang dihitung.
- Mengambil ulang sampel indeks
- Kembalikan replikasi pairs bootstrap dari kemiringan (slope) dan intersep.
- Gunakan
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
def draw_bs_pairs_linreg(x, y, size=1):
"""Perform pairs bootstrap for linear regression."""
# Set up array of indices to sample from: inds
inds = ____
# Initialize replicates: bs_slope_reps, bs_intercept_reps
bs_slope_reps = ____
bs_intercept_reps = ____
# Generate replicates
for i in range(size):
bs_inds = np.random.choice(____, size=____)
bs_x, bs_y = x[____], y[____]
bs_slope_reps[i], bs_intercept_reps[i] = ____
return bs_slope_reps, bs_intercept_reps