시작하기무료로 시작하기

페어 부트스트랩 함수 만들기

영상에서 다룬 것처럼, 페어 부트스트랩은 데이터의 쌍을 리샘플링하는 방법이에요. 각 쌍의 모음에 대해, 여기서는 np.polyfit()으로 직선을 적합합니다. 이 과정을 여러 번 반복해 모수 값의 부트스트랩 복제값을 얻어요. 페어 부트스트랩을 편리하게 수행할 수 있도록, x,y 데이터 세트에 대해 페어 부트스트랩을 실행하는 함수를 작성해 보세요.

이 연습은 강의의 일부입니다

Python으로 하는 통계적 사고 (2부)

강의 보기

연습 안내

  • 선형 회귀 모수를 위한 페어 부트스트랩 추정을 수행하는 함수 draw_bs_pairs_linreg(x, y, size=1)를 정의하세요.
    • np.arange()를 사용해 0부터 len(x)까지의 인덱스 배열을 만드세요. 이 인덱스를 리샘플링해 xy 배열에서 값을 선택합니다.
    • np.empty()로 기울기와 절편 복제 배열을 크기 size로 초기화하세요.
    • 다음을 수행하는 for 루프를 작성하세요:
      • 인덱스 inds를 리샘플링합니다. 이때 np.random.choice()를 사용하세요.
      • 리샘플링된 인덱스 bs_inds를 사용해 새 $x$와 \(y\) 배열인 bs_xbs_y를 만듭니다. 이를 위해 xybs_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
코드 편집 및 실행