Hàm thực hiện pairs bootstrap
Như đã thảo luận trong video, pairs bootstrap là tái lấy mẫu theo cặp dữ liệu. Mỗi tập hợp cặp được fit bằng một đường thẳng, trong trường hợp này dùng np.polyfit(). Ta lặp lại việc này nhiều lần để thu được các bản sao bootstrap của các giá trị tham số. Để có một công cụ hữu ích cho pairs bootstrap, bạn sẽ viết một hàm thực hiện pairs bootstrap trên một tập dữ liệu x,y.
Bài tập này là một phần của khóa học
Tư duy Thống kê với Python (Phần 2)
Hướng dẫn bài tập
- Định nghĩa một hàm với chữ ký gọi
draw_bs_pairs_linreg(x, y, size=1)để thực hiện ước lượng pairs bootstrap cho các tham số hồi quy tuyến tính.- Dùng
np.arange()để tạo một mảng chỉ số từ0đếnlen(x). Đây là những gì bạn sẽ tái lấy mẫu và dùng để chọn giá trị từ các mảngxvày. - Dùng
np.empty()để khởi tạo các mảng bản sao cho hệ số góc và hệ số chặn có kích thướcsize. - Viết một vòng lặp
forđể:- Tái lấy mẫu các chỉ số
inds. Dùngnp.random.choice()để thực hiện. - Tạo các mảng \(x\) và \(y\) mới
bs_xvàbs_ybằng các chỉ số đã tái lấy mẫubs_inds. Để làm vậy, hãy cắtxvàyvớibs_inds. - Dùng
np.polyfit()trên các mảng \(x\) và \(y\) mới và lưu hệ số góc và hệ số chặn tính được.
- Tái lấy mẫu các chỉ số
- Trả về các bản sao pairs bootstrap của hệ số góc và hệ số chặn.
- Dùng
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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