문과생 네버랜드의 데이터 창고

26. 통계적 부트스트랩 본문

수리통계

26. 통계적 부트스트랩

K JI 2023. 7. 7. 20:18
  1. 부트스트랩이란
    1) 표본을 이용하여 지속적인 복원(혹은 비복원) 추출을 반복하여 모수를 추정하는 추정량의 분포를 알아내는 방법론

    (1) 모수를 추정하는 추정량분포를 추정하기 위한 시뮬레이션이다
    (2) 추정량에 대한 분포를 시뮬레이션이기 때문에 표본(의 실현값)을 이용한다.
    (3) 다표본 검정의 경우 비복원을 사용하고, 일표본 검정의 경우 복원 추출을 활용한다.
    (4) 샘플이 n개라면, 추출도 n번 수행하여 n개의 재추출을 수행한다.

    부트스트래핑 기법을 이용하여 샘플의 평균과 분산을 추정하기 위한 분포를 시뮬레이션하는 예시 애니메이션

    처음에 어떤 분포인지도 알 수 없던 샘플의 평균에 대한 히스토그램은
    점차적으로 정규분포로 수렴하는 것을 볼수 있다.

    이를 이용하여 우리는 샘플의 평균이라는 모평균에 대한 불편추정량의 
    평균, 분산(표준오차) 를 알 수 있게 된다.

    2) 부트스트랩을 통해 알 수 있는 정보는 다음과 같다.
    (1) 추정량의 평균, 분산과 같은 속성값에 대한 추정
    (2) (속성값을 이용한) 신뢰구간 및 특정 가설에 대한 가설 검정  

    3) 일반적으로, 다음의 단계를 각 작업별로 특수화하여 활용한다.
    단계 절차
    1 재추출한 부트스트랩 데이터셋을 구성한다.
    -. 이 때, 복원 혹은 비복원 추출을 활용한다.
    -. 데이터셋의 크기는 원래 표본의 크기인 n과 동일하게 한다.
    2 모수를 추정하는 (불편)추정량의 값을 구한다.
    -. 만약, 이 값을 B개 구한다면 [ˆθi]의 리스트로 이를 저장한다.
    3 저장된 [ˆθi]로 분포를 추정하고, 이를 이용하여 원하는 정보를 확인한다.
  2. 부트스트랩 백분위수 신뢰구간 알고리즘

    1) 부트스트랩을 통해 도출된 표본의 백분위수를 이용하여 신뢰구간을 도출하는 알고리즘

    2) 다음의 이론적 근거를 가진다.
    X가 f(x;θ)를 갖는 연속확률변수라고 하자.

    [X1,Xn]을 X에서 추출한 확률표본이라고 하자.

    또, ˆθθ에 대한 점 추정량 이라고 하자.

    우선, ˆθ을 정규분포 N(θ,σ2θ)을 따른다고 하자. 

    그러면, 모수 θ의 신뢰구간은 다음과 같이 표현할 수 있다.

    θ(ˆθz1α/2σ2θ,ˆθzα/2σ2θ)  

    위의 구간 정의에서
    ˆθL=ˆθz1α/2σ2θ 그리고
    ˆθU=ˆθzalpha/2σ2θ 라 정의하자.

    한편, 이번엔 ˆθ을 정의하자.
    ˆθ은  확률표본을 통해 도출한 실현된 통계량 (ˆθ,σ2θ) 을 모수로 갖는 정규분포
    N(ˆθ,σ2θ)를 따른다.
    (ˆθˆθ의 정의 차이에 유의하자)

    이 때 ˆθL을 이용하여 ˆθ를 표현하면 다음과 같이 표현할 수 있다.

    P(ˆθˆθL)=P(ˆθˆθz1α/2σ2θ)=P(ˆθˆθσ2θz1α/2)
    위 식은 z1α/2의 반대쪽 구간이므로, α/2와 같다.

    마찬가지로 ˆθU을 이용하여 ˆθ를 표현하면

    P(ˆθˆθU)=P(ˆθˆθzα/2σ2θ)=P(ˆθˆθσ2θzα/2)
    위 식은 zα/2의 반대쪽 구간이므로, 그 확률은 1α/2와 같다.

    ˆθ은 실현값을 통해 구현한 정규분포
    N(ˆθ,σ2θ)를 이용하여 구한 추정량이므로
    이 분포로부터 추정이 필요한 모수 θ에 대한 신뢰성 있는 구간을 구할 수 있게 된다.

    3) 부트스트랩 백분위수 신뢰구간 알고리즘

    (1) 부트스트랩 백분위수 신뢰구간 알고리즘은 다음의 절차를 통해 수행한다.
    단계 절차
    1 j = 1로 초기화한다. 반복 횟수 B를 정의한다.
    2 jB라면 단계 (2) ~ (5)를 반복한다.
    3 다음의 복원 샘플링을 수행한다.
    -. 표본 [x1,,xn]으로부터 n개의 복원 샘플을 추출한다. 
    -. 이 복원 샘플을 xj라는 리스트에 담는다.
    4 모수를 추정할 수 있는 통계량 
    ˆθj=ˆθ(xj)를 구한다.
    5 jj+1
    6 반복 종료 후, [ˆθ1,,ˆθj]을 크기 순서대로 재정렬한다.
     
    m=(α/2)B라고 정의하고

    재정렬된 [ˆθ1,,ˆθj] 에서 
    m번째 값과  B + 1 - m 번째 값을 구한다. 이는 다시말해 (α/2)(1α/2) 백분위수를 구하는것과 같다.
  3. 부트스트랩 평균 검정절차(2표본 검정)

    1) 부트스트랩을 통해 도출한 두 개의 분포의 실현값을 통하여 가설을 검정하는 방법론

    2) 다음의 이론적 근거를 가진다.
    확률표본 XiYi를 정의하자.
    이 때 추출의 대상이 된 확률변수 X와 Y는 각각 다음과 같다.

    X는 cdf F(x)를 가지는 분포를 따르는 확률변수
    Y는 cdf F(xΔ)를 갖는 분포를 따르는 확률변수

    다시말해, X와 Y는 위치모수 Δ를 사이에 두고 서로 연관을 가지고있는 확률변수들이다.
    만약, 두 분포에 각각 평균 μxμy가 존재할 경우, 
    Δ=μxμy와 같다.

    다음의 가설을 검정하고자 한다.

    H0:Δ=0 vs H1:Δ>0

    이 가설의 검정을 위해, 평균 μxμy에 대한 불편추정량인 ¯x¯y를 활용한다.

    V=¯x¯y 라고 할 때
    VcH0를 기각한다고 하자.

    또는, 기각역 c를 활용하지 않고 검정 p-value를 활용하는 다음의 식으로 검정하는 것이다.

    ˆp=PH0[V¯y¯x]

    이제, 부트스트랩의 목적은 이 ˆp를 추정하는 것이다.

    3) 부트스트랩 평균 검정(2표본) 알고리즘

    (1) 부트스트랩 독립성 검정 알고리즘은 다음의 절차를 통해 수행한다.
    단계 절차
    1 xiyi를 하나로 합친다. 즉 z=(xi,yi)
    [xi]의 갯수를 nx라고 하고, [yi]의 갯수를 ny라고 한다.
    임계값 v=¯y¯x를 저장한다.
    2 j = 1로 초기화한다. 반복 횟수 B를 정의한다.
    3 jB라면 단계 (3) ~ (6)을 반복한다.
    4 다음의 비복원 샘플링 x를 수행한다.
    -. 리스트 z로부터 n_{x}개의 비복원 샘플을 추출한다. 
    -. 이 복원 샘플을 xj라는 리스트에 담고, 그 평균값 ¯xj를 구한다.
    5 다음의 비복원 샘플링 y를 수행한다.
    -. 리스트 z로부터 n_{y}개의 비복원 샘플을 추출한다. 
    -. 이 복원 샘플을 yj라는 리스트에 담고, 그 평균값 ¯yj를 구한다.
    6 vj=¯xj¯yj를 구한다.

    jj+1
    7 반복 종료 후, 다음의 값을 구한다.
    ˆp=countBj=1vjvB
    단, count는 부등호식에 해당하는 사례를 카운트하는 함수이다.

    즉, 우리가 미리 결정한 임계값 V를 초과하는 vj의 갯수를 카운트한 후 이를 전체 반복한 횟수 B로 나누어 확률  p를 구한다.
  4. 부트스트랩 평균 검정절차(1표본)

    1) 부트스트랩을 통해 도출한 한개의 분포의 평균이 특정 평균과 유의미하게 다른지 검정하는 방법

    2) 다음의 이론적 근거를 가진다.
    [X1,Xn]를 연속형 cdf F(x)를 가지는 분포를 따르는 확률변수 X에서 추출한 확률표본이라 하자

    이 때, 확률변수 X가 평균 μ를 가진다고 할 때, 다음의 가설을 검정한다.

    H0:μ=μ0 vs H1:μ>μ0
    이 때, μ0는 가설 검정을 원하는 특정 값이다.

    μ에 대한 불편추정량인 ¯x를 이용하여 다음과 같은 결정규칙을 세운다.
    ¯x가 크면 H0를 기각하고 H1 채택

    이 때, [X1,Xn]의 실현값 [x1,xn]을 이용하여 ¯X에 대한 실현값
    ¯x=ni=1xin 를 구한다.

    검정통게량 ˆp는 다음과 같이 구한다.
    ˆp=PH0[¯X¯x]

    한편, 부트스트랩 분포는 오직 단 하나만 도출되기 때문에,
    우리는 H1을 따르는 분포가 아닌 H0를 따르는 분포만 고려하여 p값을 계산하고 가설을 검정해야 한다.
    따라서, ¯x를 직접 도출하는 대신 아래의 zi를 대신 계산한다.

    zi=xi¯x+μ0 

    zi를 이용하여 H0를 따르는 분포 하에서 p값이 얼마나 예외적인 수준인지 확인한다.

    3) 부트스트랩 평균 검정(1표본) 알고리즘
    단계 절차
    1 ¯x를 계산한다.
    zi=xi¯x+μ0 를 계산하여 리스트 z에 담는다. 
    2 j = 1로 초기화한다. 반복 횟수 B를 정의한다.
    3 jB라면 단계 (3) ~ (6)을 반복한다.
    4 다음의 복원 샘플링을 수행한다.
    -. 리스트 z로부터 n개의 복원 샘플을 추출한다. 
    -. 이 복원 샘플을 zj라는 리스트에 담고, 그 평균값 ¯zj를 구한다.
    5 jj+1
    6 반복 종료 후, 다음의 값을 구한다.
    ˆp=countBj=1¯zj¯xB
    단, count는 부등호식에 해당하는 사례를 카운트하는 함수이다.

    즉, ¯x를 초과하는 ¯zj의 갯수를 카운트한 후 이를 전체 반복한 횟수 B로 나누어 확률  p를 구한다.

 

'수리통계' 카테고리의 다른 글

28. 분포수렴  (1) 2023.07.11
27. 확률 수렴  (2) 2023.07.10
25. 몬테카를로 방법  (0) 2023.07.06
24. 카이제곱 검정  (0) 2023.07.05
23-1 단측검정에서 양측검정으로 일반화  (0) 2023.07.05