부스트랩(bootstrap) 방법은 통계학에서 표본 데이터로부터 모수의 분포를 추정하는 비모수적 방법입니다. 이는 데이터의 재표집(resampling)을 통해 통계적 추정 및 가설 검정을 수행하는데 매우 유용합니다. 부스트랩 방법은 특히 복잡한 데이터나 분포에 대한 가정이 어려운 경우에 사용됩니다.
부스트랩 방법의 주요 개념
재표집(Resampling):
- 주어진 표본 데이터에서 동일한 크기의 표본을 여러 번 랜덤하게 추출합니다. 이 때, 원래 표본에서의 각 데이터 포인트는 매번 다시 선택될 수 있습니다(복원 추출(Replacement)).
- 예를 들어, 원 데이터가 [x1, x2, x3, x4, x5]라면, 이 중에서 무작위로 5개의 데이터를 복원 추출하여 새로운 샘플을 생성합니다. 예를 들어 [x2, x3, x1, x5, x2]와 같이 중복이 허용됩니다.
통계적 추정량 계산:
- 각 재표집된 표본에서 원하는 통계량(평균, 중앙값, 분산 등)을 계산합니다.
- 이 과정을 많은 횟수(예: 1000번 또는 그 이상) 반복하여 다양한 추정치를 얻습니다.
분포 생성:
- 반복된 재표집을 통해 계산된 통계량들로부터 그 통계량의 분포를 만듭니다.
- 이를 통해 신뢰 구간을 계산할 수 있습니다. 예를 들어, 95% 신뢰 구간은 추정치 분포의 2.5%와 97.5% 위치의 값을 사용하여 구합니다
신뢰구간 및 표준오차 추정:
- 만들어진 분포를 바탕으로 통계량의 신뢰구간과 표준오차를 추정합니다.
부스트랩 방법의 절차
- 원래의 표본 데이터에서 크기 ( n )의 표본을 복원 추출을 통해 여러 번 추출합니다. (예: B번)
- 각 재표집에서 관심 있는 통계량(예: 평균)을 계산합니다.
- 계산된 B개의 통계량으로부터 그 통계량의 분포를 추정합니다.
- 추정된 분포로부터 통계량의 신뢰구간을 구합니다.
부스트랩 방법의 장점
- 비모수적: 데이터의 분포에 대한 특정 가정을 필요로 하지 않습니다.
데이터의 분포에 대한 특정 가정을 하지 않아도 됩니다. 이는 데이터의 분포를 모르는 경우 매우 유용합니다. - 유연성: 다양한 통계적 추정에 적용할 수 있습니다.
복잡한 통계 모델이나 비선형 모델에도 적용할 수 있습니다. - 단순성: 비교적 간단한 계산 과정으로 복잡한 통계 문제를 해결할 수 있습니다.
표본 크기가 작아도 신뢰 구간을 추정할 수 있습니다.
부트스트랩의 단점
- 대표성 문제: 원 데이터 샘플이 모집단을 잘 대표하지 못하는 경우, 부트스트랩 추정도 왜곡될 수 있습니다.
- 계산 비용: 많은 수의 재표본 추출과 추정치 계산이 필요하기 때문에 계산 비용이 많이 듭니다.
예제: Python을 이용한 부스트랩
import numpy as np
# 예제 데이터
data = np.random.normal(0, 1, 100)
# 부스트랩 함수
def bootstrap(data, num_samples, statistic, alpha):
"""
Bootstrap resampling
data: array-like, 원 데이터
num_samples: int, 재표집 횟수
statistic: function, 계산할 통계량 함수 (예: np.mean)
alpha: float, 신뢰수준 (예: 0.05 for 95% 신뢰구간)
"""
n = len(data)
idx = np.random.randint(0, n, (num_samples, n))
samples = data[idx]
stat = np.sort(statistic(samples, axis=1))
return (stat[int((alpha/2)*num_samples)],
stat[int((1-alpha/2)*num_samples)])
# 재표집 횟수와 신뢰수준
B = 1000
alpha = 0.05
# 평균에 대한 95% 신뢰구간 계산
ci_lower, ci_upper = bootstrap(data, B, np.mean, alpha)
print(f"95% 신뢰구간: ({ci_lower}, {ci_upper})")
해석
위 코드에서는 원본 데이터를 사용하여 1000번의 부스트랩 재표집을 수행하고, 각 재표집에서 평균을 계산합니다. 이 평균들의 분포를 바탕으로 95% 신뢰구간을 추정합니다.
부스트랩 방법은 다양한 통계적 분석에서 활용될 수 있으며, 특히 데이터의 분포를 가정하기 어려운 경우에 매우 유용합니다.