부트스트랩 (Bootstrap Resampling)

통계 연구방법론
한 줄 정의: 가지고 있는 표본 데이터에서 복원추출을 반복해 새로운 표본들을 만들어냄으로써, 통계량의 분포나 신뢰구간을 추정하는 방법입니다.

쉽게 풀면

주머니 속에 구슬 100개가 들어 있다고 해봅시다. 이 구슬들의 "평균 무게"가 얼마나 안정적인 값인지 알고 싶은데, 새로운 구슬을 더 구할 수는 없습니다. 이럴 때 부트스트랩은 이렇게 합니다.

주머니에서 구슬 하나를 뽑아 무게를 기록하고, 그 구슬을 다시 주머니에 넣습니다(복원추출). 이 과정을 100번 반복해 "새로운 100개짜리 표본"을 하나 만들고, 그 표본의 평균을 계산합니다.

이 작업을 수천 번 되풀이하면 "평균 무게"가 매번 조금씩 다르게 나오는데, 그 값들이 흩어진 정도를 보면 원래 평균 추정치가 얼마나 믿을 만한지 감을 잡을 수 있습니다. 즉, 딱 하나 가진 표본을 이리저리 재활용해서 마치 여러 번 실험한 것과 비슷한 정보를 얻어내는 방법입니다.

왜 중요한가

많은 실증 연구에서 다루는 통계량(평균 차이, 회귀계수, 상관계수 등)은 이론적으로 정규분포를 가정해야만 신뢰구간이나 p값을 깔끔하게 계산할 수 있습니다. 하지만 실제 데이터는 표본 크기가 작거나 분포가 치우쳐 있는 경우가 많아 이 가정이 성립하지 않을 때가 흔합니다.

부트스트랩은 분포에 대한 가정 없이도 불확실성을 추정할 수 있게 해주기 때문에, 심리학·의학·경제학·머신러닝 평가 등 분야를 가리지 않고 "이 결과가 우연이 아니라고 얼마나 확신할 수 있는가"를 답하는 표준 도구로 자리 잡았습니다.

계산 능력이 저렴해진 오늘날에는 복잡한 통계량이나 모델 성능 지표에도 손쉽게 적용할 수 있어 활용 범위가 계속 넓어지고 있습니다.

언제 쓰나

통계량의 표준오차나 신뢰구간을 구하는 공식이 없거나 분포 가정이 의심스러울 때, 가진 표본을 모집단 대신 삼아 복원추출을 반복해서 그 통계량의 변동을 직접 관찰합니다(Efron, 1979).

  1. 원래 표본(크기 n)에서 n개를 복원추출해 부트스트랩 표본을 만든다.
  2. 그 표본에서 관심 통계량(평균, 중앙값, 상관, 간접효과 등)을 계산한다.
  3. 1~2를 수천 번 반복한다.
  4. 얻은 통계량들의 표준편차를 표준오차로, 백분위수를 신뢰구간으로 쓴다.

결과는 이렇게 읽는다

가상의 예: 12개 값 3, 5, 4, 12, 6, 5, 7, 4, 30, 6, 5, 8 (평균 7.92, SD 7.34, 중앙값 5.5). 큰 값 30이 있어 분포가 오른쪽으로 치우쳤습니다. 10,000번 복원추출했습니다(난수 시드 42).

논문에는 이렇게 보고한다

부트스트랩 대상 통계량, 재표본 횟수, 구간의 종류, 난수 시드, 소프트웨어를 적습니다. (위 가상 자료 기준)

중앙값(5.5)의 95% 신뢰구간은 10,000회 부트스트랩 재표본에서 BCa(편향 수정 가속) 방법으로 구하였다[4.5, 7.5].

논문에서는 이렇게 쓰입니다

실제 논문에서

국내 학술지 논문에서 이 용어가 쓰인 문장을 그대로 옮겼습니다. 제목·학술지·연도와 원문 링크를 함께 적었습니다.

예시 문장

아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.

"평균 차이에 대한 95% 신뢰구간을 추정하기 위해 1,000회의 부트스트랩 리샘플링(bootstrap resampling, B=1,000)을 실시했다."

이 문장은 "원래 표본에서 복원추출을 1,000번 반복해 1,000개의 새로운 표본을 만들고, 그 결과들의 분포를 이용해 신뢰구간을 계산했다"는 뜻입니다. 이 방법은 데이터가 정규분포를 따른다는 가정이 부담스러울 때 특히 유용합니다.

"모델의 분류 정확도가 우연 수준과 유의하게 다른지 확인하기 위해 검증 세트에 대해 부트스트랩 리샘플링을 적용하여 성능 지표의 95% 신뢰구간을 산출했다."

머신러닝 논문에서는 단일 테스트셋 점수만으로는 성능 차이가 우연에 의한 것인지 판단하기 어렵기 때문에, 테스트 샘플을 반복 재추출해 정확도나 F1 점수 같은 지표가 얼마나 흔들리는지를 함께 보고하는 경우가 많습니다.

"매개효과(mediation effect)의 유의성을 검증하기 위해 5,000회의 부트스트랩 표본을 생성하고, 간접효과의 신뢰구간이 0을 포함하지 않는지 확인했다."

사회과학 분야에서는 매개효과나 조절효과처럼 여러 계수를 곱해서 얻는 간접효과의 분포가 정규분포를 따르지 않는 경우가 많아, 전통적인 검정 대신 부트스트랩으로 신뢰구간을 구해 유의성을 판단하는 방식이 널리 쓰입니다.

조금 더 깊게 보면

부트스트랩에는 몇 가지 변형이 있습니다. 가장 기본적인 방식은 표준오차만을 이용해 정규분포 기반으로 신뢰구간을 만드는 방법이고, 재추출된 값들을 크기순으로 늘어놓아 그 자체의 백분위수(percentile)를 신뢰구간으로 사용하는 percentile bootstrap도 널리 쓰입니다.

편향과 비대칭성을 보정한 BCa(bias-corrected and accelerated) 방법은 더 정교하지만 계산이 복잡해 소프트웨어 패키지에 의존하는 경우가 많습니다.

또한 회귀분석처럼 관측치들 사이에 구조가 있는 경우에는 개별 관측치가 아니라 잔차(residual)를 재추출하는 방식이 쓰이기도 하며, 시계열이나 군집 데이터처럼 독립성 가정이 깨지는 상황에서는 블록 단위로 재추출하는 block bootstrap 같은 확장이 사용됩니다.

재추출 횟수(B)가 너무 적으면 추정치가 불안정해지므로, 논문에서 B값과 함께 어떤 종류의 신뢰구간을 사용했는지 밝히는 것이 일반적입니다.

주의할 점

부트스트랩은 원래 표본을 반복해서 재사용하는 방법이기 때문에, 원래 표본 자체가 모집단을 제대로 대표하지 못하면 아무리 반복해도 편향된 결과만 계속 재생산하게 됩니다. "표본이 작으니 부트스트랩으로 데이터를 늘리면 된다"는 생각은 오해이며, 부트스트랩은 새로운 정보를 만들어내는 것이 아니라 가진 정보의 불확실성을 가늠하는 도구입니다. 신뢰구간과 함께 이해하면 좋습니다.

헷갈리기 쉬운 용어

재표본 방법들은 ‘무엇을 섞고 무엇을 구하나’가 다릅니다.

방법재표본 방식주로 구하는 것
부트스트랩표본에서 n개 복원추출표준오차, 신뢰구간
잭나이프한 개씩 빼기편향, 표준오차
순열검정집단 라벨을 무작위로 섞기(비복원)귀무가설 아래의 p값
몬테카를로 방법가정한 모형에서 난수 생성확률·기대값 근사

부트스트랩 신뢰구간은 부트스트랩 신뢰구간에서 방법별로 더 자세히 다룹니다.

참고 문헌

  1. Efron, B. (1979). Bootstrap methods: Another look at the jackknife. The Annals of Statistics, 7(1), 1–26.
  2. Efron, B., & Tibshirani, R. J. (1993). An introduction to the bootstrap. Chapman & Hall.
  3. Davison, A. C., & Hinkley, D. V. (1997). Bootstrap methods and their application. Cambridge University Press.
  4. DiCiccio, T. J., & Efron, B. (1996). Bootstrap confidence intervals. Statistical Science, 11(3), 189–228.
  5. Preacher, K. J., & Hayes, A. F. (2008). Asymptotic and resampling strategies for assessing and comparing indirect effects in multiple mediator models. Behavior Research Methods, 40(3), 879–891.

표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.

관련 용어