Çiftler bootstrap'i yapan bir fonksiyon
Videoda tartıştığımız gibi, çiftler bootstrap, veri çiftlerini yeniden örneklemeyi içerir. Her bir çift koleksiyonu, bu durumda np.polyfit() kullanılarak, bir doğruyla uydurulur. Bunu tekrar tekrar yaparak, parametre değerlerinin bootstrap çoğaltımlarını elde ederiz. Çiftler bootstrap'i yapmak için kullanışlı bir araca sahip olmak adına, bir x,y veri kümesi üzerinde çiftler bootstrap uygulayan bir fonksiyon yazacaksın.
Bu egzersiz, kursun bir parçasıdır
Python ile İstatistiksel Düşünme (Bölüm 2)
Egzersiz talimatları
- Doğrusal regresyon parametreleri üzerinde çiftler bootstrap tahminleri yapmak için
draw_bs_pairs_linreg(x, y, size=1)çağrı imzasına sahip bir fonksiyon tanımla.0'danlen(x)'e kadar giden dizinlerden oluşan bir dizi kurmak içinnp.arange()kullan. Yeniden örnekleyeceğin vexileydizilerinden değer seçmekte kullanacağın dizinler bunlar olacak.- Eğim ve kesişim çoğaltım dizilerini
sizeboyutunda olacak şekildenp.empty()ile başlat. - Şu adımları yapan bir
fordöngüsü yaz:- Dizinleri
indsyeniden örnekle. Bunu yapmak içinnp.random.choice()kullan. - Yeniden örneklenen dizinleri
bs_indskullanarak yeni \(x\) ve \(y\) dizileribs_xvebs_yoluştur. Bunu yapmak içinxvey'yibs_indsile dilimle. - Yeni \(x\) ve \(y\) dizileri üzerinde
np.polyfit()kullan ve hesaplanan eğim ile kesişimi sakla.
- Dizinleri
- Eğim ve kesişimin çiftler bootstrap çoğaltımlarını döndür.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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