페어 부트스트랩 함수 만들기
영상에서 다룬 것처럼, 페어 부트스트랩은 데이터의 쌍을 리샘플링하는 방법이에요. 각 쌍의 모음에 대해, 여기서는 np.polyfit()으로 직선을 적합합니다. 이 과정을 여러 번 반복해 모수 값의 부트스트랩 복제값을 얻어요. 페어 부트스트랩을 편리하게 수행할 수 있도록, x,y 데이터 세트에 대해 페어 부트스트랩을 실행하는 함수를 작성해 보세요.
이 연습은 강의의 일부입니다
Python으로 하는 통계적 사고 (2부)
연습 안내
- 선형 회귀 모수를 위한 페어 부트스트랩 추정을 수행하는 함수
draw_bs_pairs_linreg(x, y, size=1)를 정의하세요.np.arange()를 사용해0부터len(x)까지의 인덱스 배열을 만드세요. 이 인덱스를 리샘플링해x와y배열에서 값을 선택합니다.np.empty()로 기울기와 절편 복제 배열을 크기size로 초기화하세요.- 다음을 수행하는
for루프를 작성하세요:- 인덱스
inds를 리샘플링합니다. 이때np.random.choice()를 사용하세요. - 리샘플링된 인덱스
bs_inds를 사용해 새 $x$와 \(y\) 배열인bs_x와bs_y를 만듭니다. 이를 위해x와y를bs_inds로 슬라이싱하세요. - 새 $x$와 \(y\) 배열에
np.polyfit()을 적용하고 계산된 기울기와 절편을 저장하세요.
- 인덱스
- 기울기와 절편의 페어 부트스트랩 복제값을 반환하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
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