부트스트랩 (Bootstrap Resampling)
쉽게 풀면
주머니 속에 구슬 100개가 들어 있다고 해봅시다. 이 구슬들의 "평균 무게"가 얼마나 안정적인 값인지 알고 싶은데, 새로운 구슬을 더 구할 수는 없습니다. 이럴 때 부트스트랩은 이렇게 합니다.
주머니에서 구슬 하나를 뽑아 무게를 기록하고, 그 구슬을 다시 주머니에 넣습니다(복원추출). 이 과정을 100번 반복해 "새로운 100개짜리 표본"을 하나 만들고, 그 표본의 평균을 계산합니다.
이 작업을 수천 번 되풀이하면 "평균 무게"가 매번 조금씩 다르게 나오는데, 그 값들이 흩어진 정도를 보면 원래 평균 추정치가 얼마나 믿을 만한지 감을 잡을 수 있습니다. 즉, 딱 하나 가진 표본을 이리저리 재활용해서 마치 여러 번 실험한 것과 비슷한 정보를 얻어내는 방법입니다.
왜 중요한가
많은 실증 연구에서 다루는 통계량(평균 차이, 회귀계수, 상관계수 등)은 이론적으로 정규분포를 가정해야만 신뢰구간이나 p값을 깔끔하게 계산할 수 있습니다. 하지만 실제 데이터는 표본 크기가 작거나 분포가 치우쳐 있는 경우가 많아 이 가정이 성립하지 않을 때가 흔합니다.
부트스트랩은 분포에 대한 가정 없이도 불확실성을 추정할 수 있게 해주기 때문에, 심리학·의학·경제학·머신러닝 평가 등 분야를 가리지 않고 "이 결과가 우연이 아니라고 얼마나 확신할 수 있는가"를 답하는 표준 도구로 자리 잡았습니다.
계산 능력이 저렴해진 오늘날에는 복잡한 통계량이나 모델 성능 지표에도 손쉽게 적용할 수 있어 활용 범위가 계속 넓어지고 있습니다.
언제 쓰나
통계량의 표준오차나 신뢰구간을 구하는 공식이 없거나 분포 가정이 의심스러울 때, 가진 표본을 모집단 대신 삼아 복원추출을 반복해서 그 통계량의 변동을 직접 관찰합니다(Efron, 1979).
- 원래 표본(크기 n)에서 n개를 복원추출해 부트스트랩 표본을 만든다.
- 그 표본에서 관심 통계량(평균, 중앙값, 상관, 간접효과 등)을 계산한다.
- 1~2를 수천 번 반복한다.
- 얻은 통계량들의 표준편차를 표준오차로, 백분위수를 신뢰구간으로 쓴다.
- 쓰임: 중앙값·비율·회귀계수의 신뢰구간, 매개효과의 간접효과 신뢰구간(소벨 검정의 대안), 머신러닝의 앙상블 등.
- 표본이 모집단을 잘 대표하고 관측치가 독립이어야 합니다. 시계열·군집 자료는 덩어리째 뽑는 블록(군집) 부트스트랩이 필요합니다.
- 최댓값처럼 극단에 의존하는 통계량이나 표본이 아주 작을 때는 잘 작동하지 않습니다. 부트스트랩은 새 정보를 만들어 내지 못하므로 표본이 작다고 데이터를 불려 주지 않습니다.
결과는 이렇게 읽는다
가상의 예: 12개 값 3, 5, 4, 12, 6, 5, 7, 4, 30, 6, 5, 8 (평균 7.92, SD 7.34, 중앙값 5.5). 큰 값 30이 있어 분포가 오른쪽으로 치우쳤습니다. 10,000번 복원추출했습니다(난수 시드 42).
- 평균: 부트스트랩 표준오차 2.04(공식 s/√n = 2.12와 비슷). 백분위수 95% 구간은 [5.0, 12.5]로 오른쪽이 깁니다. t분포 구간 [3.25, 12.58]은 좌우 대칭이라 왼쪽이 너무 넓습니다. 편향·비대칭을 보정한 BCa 구간은 [5.3, 15.5]입니다.
- 중앙값: 공식이 간단하지 않은 통계량인데 부트스트랩으로 표준오차 0.87, 95% 구간 [4.5, 7.5]를 쉽게 얻습니다. 다만 표본이 12개라 부트스트랩 중앙값이 17가지 값밖에 취하지 않아 매우 이산적입니다.
- 각 부트스트랩 표본에는 평균적으로 원래 관측치의 약 63%만 들어갑니다. 한 관측치가 어떤 표본에 한 번도 안 뽑힐 확률은 (1 − 1/n)n이며 n = 12에서 .35, n이 크면 e−1 = .37로 수렴합니다.
- 횟수 B: 표준오차는 수백 번으로도 안정되지만 신뢰구간 끝점은 수천 번 이상을 쓰는 것이 관행입니다. B가 작으면 같은 자료도 실행마다 값이 달라집니다.
- 구간 종류: 정규 근사(추정값 ± 1.96×부트스트랩 SE), 백분위수, BCa 등이 있고, 분포가 치우쳤을 때는 BCa가 낫다고 알려져 있습니다(DiCiccio & Efron, 1996).
논문에는 이렇게 보고한다
부트스트랩 대상 통계량, 재표본 횟수, 구간의 종류, 난수 시드, 소프트웨어를 적습니다. (위 가상 자료 기준)
중앙값(5.5)의 95% 신뢰구간은 10,000회 부트스트랩 재표본에서 BCa(편향 수정 가속) 방법으로 구하였다[4.5, 7.5].
- 매개효과 분석에서는 “부트스트랩 5,000회를 실시하여 간접효과의 95% 신뢰구간이 0을 포함하지 않아 유의하다고 판단하였다”와 같이 쓰이는 일이 많습니다(Preacher & Hayes, 2008).
- “유의한 결과를 얻기 위해 부트스트랩을 썼다”는 오해를 피하려면 사전에 분석 계획으로 선택했음을 밝힙니다.
- 자료가 독립이 아니라면(같은 사람의 반복 측정 등) 단순 부트스트랩이 SE를 과소추정합니다. 사람 단위로 재표본해야 합니다.
논문에서는 이렇게 쓰입니다
실제 논문에서
국내 학술지 논문에서 이 용어가 쓰인 문장을 그대로 옮겼습니다. 제목·학술지·연도와 원문 링크를 함께 적었습니다.
“(4) 매개 효과의 유의도를 검증하기 위해서 부트스트랩 표본 5,000 개를 추출하여 95% 신뢰구간(confidence interval, CI)을 분석하 였다.”
여성 노인의 디지털 정보활용능력이 우울에 미치는 영향: 사회적 지지의 매개 효과를 중심으로, Korean Journal of Women Health Nursing, 2023 · KoreaMed Synapse · 원문 보기 ↗
“Process macro를 활용하여 매개 효과 분석을 하였고, 매개 효과의 유의성은 Bootstrapping-test를 통해 확인하였다.”
서비스업종에서의 안전리더십이 안전문화, 안전행동에 미치는 영향연구, 안전문화연구, 2023 · KCI 한국학술지인용색인 · 원문 보기 ↗
“162명의 자료를 기초로 SPSS 25.0과 SPSS Macro를 사용하여 상관분석과 Bootstrapping 분석이 실시되었다.”
정신건강의학과 환자의 수면의 질과 우울 증상의 관계: 모호함에 대한 해석 편향과 불안 증상의 매개효과, 정신신체의학, 2022 · KCI 한국학술지인용색인 · 원문 보기 ↗
예시 문장
아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.
이 문장은 "원래 표본에서 복원추출을 1,000번 반복해 1,000개의 새로운 표본을 만들고, 그 결과들의 분포를 이용해 신뢰구간을 계산했다"는 뜻입니다. 이 방법은 데이터가 정규분포를 따른다는 가정이 부담스러울 때 특히 유용합니다.
머신러닝 논문에서는 단일 테스트셋 점수만으로는 성능 차이가 우연에 의한 것인지 판단하기 어렵기 때문에, 테스트 샘플을 반복 재추출해 정확도나 F1 점수 같은 지표가 얼마나 흔들리는지를 함께 보고하는 경우가 많습니다.
사회과학 분야에서는 매개효과나 조절효과처럼 여러 계수를 곱해서 얻는 간접효과의 분포가 정규분포를 따르지 않는 경우가 많아, 전통적인 검정 대신 부트스트랩으로 신뢰구간을 구해 유의성을 판단하는 방식이 널리 쓰입니다.
조금 더 깊게 보면
부트스트랩에는 몇 가지 변형이 있습니다. 가장 기본적인 방식은 표준오차만을 이용해 정규분포 기반으로 신뢰구간을 만드는 방법이고, 재추출된 값들을 크기순으로 늘어놓아 그 자체의 백분위수(percentile)를 신뢰구간으로 사용하는 percentile bootstrap도 널리 쓰입니다.
편향과 비대칭성을 보정한 BCa(bias-corrected and accelerated) 방법은 더 정교하지만 계산이 복잡해 소프트웨어 패키지에 의존하는 경우가 많습니다.
또한 회귀분석처럼 관측치들 사이에 구조가 있는 경우에는 개별 관측치가 아니라 잔차(residual)를 재추출하는 방식이 쓰이기도 하며, 시계열이나 군집 데이터처럼 독립성 가정이 깨지는 상황에서는 블록 단위로 재추출하는 block bootstrap 같은 확장이 사용됩니다.
재추출 횟수(B)가 너무 적으면 추정치가 불안정해지므로, 논문에서 B값과 함께 어떤 종류의 신뢰구간을 사용했는지 밝히는 것이 일반적입니다.
주의할 점
부트스트랩은 원래 표본을 반복해서 재사용하는 방법이기 때문에, 원래 표본 자체가 모집단을 제대로 대표하지 못하면 아무리 반복해도 편향된 결과만 계속 재생산하게 됩니다. "표본이 작으니 부트스트랩으로 데이터를 늘리면 된다"는 생각은 오해이며, 부트스트랩은 새로운 정보를 만들어내는 것이 아니라 가진 정보의 불확실성을 가늠하는 도구입니다. 신뢰구간과 함께 이해하면 좋습니다.
헷갈리기 쉬운 용어
재표본 방법들은 ‘무엇을 섞고 무엇을 구하나’가 다릅니다.
| 방법 | 재표본 방식 | 주로 구하는 것 |
|---|---|---|
| 부트스트랩 | 표본에서 n개 복원추출 | 표준오차, 신뢰구간 |
| 잭나이프 | 한 개씩 빼기 | 편향, 표준오차 |
| 순열검정 | 집단 라벨을 무작위로 섞기(비복원) | 귀무가설 아래의 p값 |
| 몬테카를로 방법 | 가정한 모형에서 난수 생성 | 확률·기대값 근사 |
부트스트랩 신뢰구간은 부트스트랩 신뢰구간에서 방법별로 더 자세히 다룹니다.
참고 문헌
- Efron, B. (1979). Bootstrap methods: Another look at the jackknife. The Annals of Statistics, 7(1), 1–26.
- Efron, B., & Tibshirani, R. J. (1993). An introduction to the bootstrap. Chapman & Hall.
- Davison, A. C., & Hinkley, D. V. (1997). Bootstrap methods and their application. Cambridge University Press.
- DiCiccio, T. J., & Efron, B. (1996). Bootstrap confidence intervals. Statistical Science, 11(3), 189–228.
- 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.
표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.