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 merupakan bagian dari kursus
Pemikiran Statistik dengan Python (Bagian 2)
Instruksi 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 langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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