시작하기무료로 시작하기

평균과 SEM의 부트스트랩 복제값

이번 연습 문제에서는 셰필드 기상 관측소(Sheffield Weather Station)의 연간 평균 강수량에 대한 확률 밀도 함수(PDF)를 부트스트랩으로 추정합니다. 셰필드 기상 관측소가 1883년부터 2015년까지의 모든 측정을 반복할 수 있다고 가정했을 때 얻게 될 연간 평균 강수량을 추정하는 것입니다. 이는 평균에 대한 확률적 추정입니다. PDF를 히스토그램으로 시각화하면 정규 분포를 따르는 것을 확인할 수 있습니다.

실제로, 그리 엄격하지 않은 조건 하에서 평균값은 항상 정규 분포를 따른다는 것이 이론적으로 증명되어 있습니다. (이는 일반적인 경우에는 해당되지 않으며, 평균과 일부 통계량에만 적용됩니다.) 이 분포의 표준 편차를 평균의 표준 오차(standard error of the mean, SEM)라고 하며, 데이터의 표준 편차를 데이터 포인트 수의 제곱근으로 나눈 값입니다. 즉, sem = np.std(data) / np.sqrt(len(data))로 계산합니다. 해커 통계(hacker statistics) 방식을 사용하면 이 결과를 직접 유도하지 않고도 동일한 값을 얻을 수 있으며, 부트스트랩 복제값을 통해 이 결과를 검증해 볼 것입니다.

데이터셋은 rainfall이라는 배열로 미리 불러와져 있습니다.

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

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

강의 보기

연습 안내

  • draw_bs_reps() 함수와 rainfall 배열을 사용하여 연간 강수량 평균에 대한 부트스트랩 복제값을 10000개 추출하세요. 힌트: 평균을 계산하려면 funcnp.mean을 전달하세요.
    • 참고로, draw_bs_reps()data, func, size 세 가지 인수를 받습니다.
  • rainfall의 평균의 표준 오차를 계산하고 출력하세요.
    • 계산 공식은 np.std(data) / np.sqrt(len(data))입니다.
  • 부트스트랩 복제값 bs_replicates의 표준 편차를 계산하고 출력하세요.
  • density=True 키워드 인수와 빈(bin) 50개를 사용하여 복제값의 히스토그램을 그리세요.
  • 답변을 제출하면 플롯을 확인할 수 있습니다!

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Take 10,000 bootstrap replicates of the mean: bs_replicates
bs_replicates = ____

# Compute and print SEM
sem = ____ / np.sqrt(____)
print(sem)

# Compute and print standard deviation of bootstrap replicates
bs_std = ____
print(bs_std)

# Make a histogram of the results
_ = plt.hist(____, ____=50, ____=True)
_ = plt.xlabel('mean annual rainfall (mm)')
_ = plt.ylabel('PDF')

# Show the plot
plt.show()
코드 편집 및 실행