부트스트랩 (Bootstrap)
부트스트랩(Bootstrap)은 통계적 방법론 중 하나로, 데이터에서 반복적으로 샘플을 추출해 통계량의 분포를 추정하는 비모수적 리샘플링 기법임. 주로 표본 크기가 작거나, 데이터가 정규분포를 따르지 않는 경우에도 신뢰구간을 추정하거나 통계적 추론을 할 수 있도록 도와줌.
부트스트랩의 주요 개념
리샘플링(Resampling): 주어진 표본 데이터에서 반복적으로 샘플을 복원 추출하여 새로운 표본을 여러 번 생성하는 과정. 이때 각 리샘플은 원본 데이터와 동일한 크기로 생성됨.
추정량의 분포: 리샘플링을 통해 얻은 각 샘플에서 통계량(평균, 분산 등)을 계산하여 그 분포를 구할 수 있음. 이를 통해 표본 통계량의 신뢰구간, 표준 오차 등을 추정할 수 있음.
비모수적 방법: 부트스트랩은 데이터의 분포에 대한 가정이 필요하지 않기 때문에 비모수적 추정이 가능함. 특히, 데이터가 정규분포와 같은 특정 분포를 따르지 않는 경우에도 적용할 수 있음.
부트스트랩의 절차
원본 데이터로부터 리샘플링:
- 크기가 ( n )인 원본 데이터에서 복원추출(Replacement) 방식으로 크기 ( n )의 표본을 여러 번 추출함.
- 예를 들어, 100개의 데이터를 가진 원본 샘플에서 복원추출을 통해 동일한 100개의 표본을 반복적으로 생성함.
통계량 계산:
- 각 리샘플에서 관심 있는 통계량(예: 평균, 분산 등)을 계산함.
추정 및 신뢰구간 계산:
- 리샘플에서 계산된 통계량을 기반으로 해당 통계량의 분포를 확인하고, 이를 통해 신뢰구간이나 표준 오차를 추정함.
부트스트랩의 장점
- 적용 범위가 넓음: 데이터의 분포를 알 수 없거나 복잡한 분포를 가정해야 하는 경우에도 신뢰구간을 추정할 수 있음.
- 계산이 간단함: 복잡한 수학적 모형을 필요로 하지 않고, 컴퓨터 계산 능력만으로 추정이 가능함.
- 소규모 데이터에서 유용: 표본 크기가 작아도 통계적 추정이 가능함.
예시: Python에서 부트스트랩을 이용한 평균 추정
import numpy as np
# 원본 데이터 생성
data = np.random.randn(100)
# 부트스트랩 리샘플링 및 평균 계산
def bootstrap_mean(data, n_iterations):
bootstrap_means = []
n = len(data)
for _ in range(n_iterations):
# 복원 추출
sample = np.random.choice(data, size=n, replace=True)
# 샘플 평균 계산
bootstrap_means.append(np.mean(sample))
return np.percentile(bootstrap_means, [2.5, 97.5]), np.mean(bootstrap_means)
# 1000번의 리샘플링을 통해 평균과 신뢰구간 계산
ci, mean_estimate = bootstrap_mean(data, 1000)
print(f"평균 추정값: {mean_estimate}")
print(f"95% 신뢰구간: {ci}")
결론
부트스트랩은 데이터의 분포에 대한 가정을 최소화하면서도 통계량의 분포를 추정할 수 있는 강력한 도구임. 이를 통해 우리는 통계적 추론에 필요한 신뢰구간, 표준 오차 등을 유연하게 계산할 수 있으며, 특히 표본 크기가 작거나 데이터 분포를 알 수 없는 상황에서 유용함.
'Data Analysis' 카테고리의 다른 글
[DA] A/B 테스트 (0) | 2024.09.24 |
---|---|
[통계] 이항분포(Binomial Distribution) (0) | 2024.09.23 |
[DA] 범주란? (0) | 2024.08.18 |
[DA] 범주형 데이터와 연속형 데이터의 차이 (0) | 2024.08.18 |
[통계] 독립변수와 종속변수 (0) | 2024.08.06 |
배움에 즐거움을 느끼는 마네의 연구소입니다. 이미지 출처 : https://www.instagram.com/hoseobiiiiiii._.0410/
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!