Python에서 부트스트래핑을 수행하는 방법(예제 포함)
부트스트래핑은 표본 크기가 작고 기본 분포를 알 수 없는 경우 통계 에 대한 신뢰 구간을 구성하는 데 사용할 수 있는 방법입니다.
부트스트래핑의 기본 프로세스는 다음과 같습니다.
- 주어진 데이터 세트에서 k개의 반복 샘플을 복원하여 추출합니다.
- 각 샘플에 대해 관심 있는 통계를 계산합니다.
- 이는 주어진 통계에 대해 k개의 서로 다른 추정치를 제공하며, 이를 사용하여 통계에 대한 신뢰 구간을 계산할 수 있습니다.
Python에서 부트스트랩하는 가장 쉬운 방법은 SciPy 라이브러리의 부트스트랩 기능을 사용하는 것입니다.
다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.
예: Python에서 부트스트래핑 수행
15개의 값을 포함하는 Python에서 데이터 세트를 생성한다고 가정합니다.
#define array of data values
data = [7, 9, 10, 10, 12, 14, 15, 16, 16, 17, 19, 20, 21, 21, 23]
다음 코드를 사용하여 중앙값에 대한 95% 부트스트랩 신뢰 구간을 계산할 수 있습니다.
from scipy. stats import bootstrap
import numpy as np
#convert array to sequence
data = (data,)
#calculate 95% bootstrapped confidence interval for median
bootstrap_ci = bootstrap(data, np. median , confidence_level= 0.95 ,
random_state= 1 , method=' percentile ')
#view 95% boostrapped confidence interval
print ( bootstrap_ci.confidence_interval )
ConfidenceInterval(low=10.0, high=20.0)
중앙값에 대한 95% 부트스트랩 신뢰 구간은 [10.0, 20.0] 으로 나타납니다.
Boostrap() 함수가 내부적으로 실제로 수행한 작업은 다음과 같습니다.
- bootstrap() 함수는 교체를 통해 9,999개의 샘플을 생성했습니다. (기본값은 9999이지만 n_resamples 인수를 사용하여 이 숫자를 변경할 수 있습니다)
- 각 부트스트랩 샘플에 대해 중앙값이 계산되었습니다.
- 각 표본의 중앙값은 가장 작은 것부터 큰 것 순으로 정렬되었으며, 2.5% 백분위수와 97.5% 백분위수의 중앙값을 사용하여 95% 신뢰구간의 하한과 상한을 구성하였다. %.
거의 모든 통계에 대해 부트스트랩 신뢰 구간을 계산할 수 있습니다.
예를 들어 bootstrap() 함수에서 np.median을 np.std 로 대체하여 표준 편차에 대한 95% 신뢰 구간을 계산할 수 있습니다.
from scipy. stats import bootstrap
import numpy as np
#convert array to sequence
data = (data,)
#calculate 95% bootstrapped confidence interval for median
bootstrap_ci = bootstrap(data, np. std , confidence_level= 0.95 ,
random_state= 1 , method=' percentile ')
#view 95% boostrapped confidence interval
print ( bootstrap_ci.confidence_interval )
ConfidenceInterval(low=3.3199732261303283, high=5.66478399066117)
표준편차에 대한 95% 부트스트랩 신뢰구간은 [3.32, 5.67] 로 나타납니다.
참고 : 이 예에서는 95% 신뢰 구간을 생성하도록 선택했지만 trust_level 인수 값을 변경하여 다른 크기의 신뢰 구간을 생성할 수 있습니다.
추가 리소스
다음 튜토리얼에서는 다른 통계 소프트웨어에서 부트스트랩하는 방법을 설명합니다.