R-Blogger블로그·해설한국어2025-03-22
Bootstrap vs Standard Error 신뢰구간
부트스트랩 신뢰구간이 표준오차를 이용한 신뢰구간보다 더 강건한가? 최근 한 학생이 부트스트랩(Bootstrap) 신뢰구간이 표준오차(standard error, SE)를 이용해 추정한 신뢰구간(예: CI = β̂ ± 1.96 · SE)보다 더 견고한지를 물었습니다. 이 질문에 답하기 위해 저는 무작위 표본을 여러 번 뽑아 시뮬레이션을 수행하는 함수를 작성했습니다. 원본 데이터에서 n개의 관측치를 무작위로 추출합니다. 그 표본에 대해 추정량 β̂를 계산합니다. 부트스트랩 방법을 적용해 β̂의 분포를 추정하고, 부트스트랩 신뢰구간을 구합니다. 반대로 표준오차를 이용해 신뢰구간을 계산합니다. 각 방법의 신뢰구간 폭과 실제 파라미터와의 편차를 비교합니다. 이 과정을 반복함으로써 두 방법의 강건성을 직관적으로 확인할 수 있습니다. 아래 예시 코드는 이러한 시뮬레이션 과정을 R로 구현한 것입니다. simulate_ci <- function(data, n, B = 1000) { ci_boot <- numeric(n) ci_se <- numeric(n) for (i in 1:n) { sample_i <- sample(data, size = n, replace = TRUE) beta_hat <- mean(sample_i) # 부트스트랩 boot_samples <- replicate(B, mean(sample(sample_i, replace = TRUE))) ci_boot[i] <- quantile(boot_samples, probs = c(0.025, 0.975)) # 표준오차 se <- sd(sample_i) / sqrt(n) ci_se[i] <- beta_hat + c(-1.96, 1.96) * se } list(boot = ci_boot, se = ci_se) } 위 함수는 data에서 무작위 표본을 뽑아 부트스트랩과 SE 기반의 신뢰구간을 모두 계산해 주며, 이를 반복하면 두 방법의 차이를 명확히 파악할 수 있습니다. 부트스트랩은 비모수적 특성 덕분에 데이터 분포가 정규성을 만족하지 않아도 적용할 수 있지만, 표본이 너무 작거나 특이한 분포일 경우 부트스트랩 결과가 불안정해질 수 있습니다. 반면에 표준오차 기반 신뢰구간은 정규성 가정이 만족될 때 가장 효율적입니다.
원문 URL
전체 글은 원문 페이지에서 이어서 읽을 수 있습니다.
- 작성자
- R-Blogger
- 출처
- R-Blogger
- 플랫폼
- R-Blogger
- 분류
- 블로그·해설
- 언어
- 한국어
- 발행일
- 2025-03-22