Gibbs Sampling

Briley·2022년 8월 19일
0

Bayesian_Stat

목록 보기
3/3

들어가기 전에

이 포스트는 Hoff, First Course in Bayesian Statistics (2009) 및 학부 통계전산 강의안을 참고하여 정리한 것임을 밝힙니다.

1. 왜 샘플링이 필요할까?

베이지안 통계학을 접하다 보면 빠지지 않는 내용이 MCMC, Gibbs sampling 등 다양한 sampling 방법에 관한 것이다. 기본적으로 통계학의 목적은 모집단으로부터 추출한 샘플을 통해 모집단의 특성을 유추하는 것이므로, 통계학에서 샘플링 방법론은 당연히 중요할 수 밖에 없다. 그런데 유독 베이지안 통계학에서 위와 같은 샘플링 방법들이 자주 등장하는 이유는 무엇일까?

지난 포스트에서 베이지안들의 궁극적인 목적이 posterior distribution임을 살펴본 바 있다. FCB 5장을 보면 normal model에서 mean 과 variance에 대해 joint (posterior) distribution을 구하는 내용이 나온다. 헌데 conjugate prior를 사용해준다 치더라도, μ\muσ2\sigma^2의 joint distribution은 우리가(학부생 따위가) 알고 있는 분포도 아니고, 단순히 pdf 만 가지고는 감을 잡기가 어렵다. 이런 경우 μ\muσ2\sigma^2의 샘플들을 마구마구 생성한 다음, 이 친구들의 plot을 그려보면 어느정도 분포에 관해 유추해볼 수 있을 것이다. 실제 posterior distribution은 마음처럼 예쁘게 나와주지 않는 경우가 대부분이므로, sampling을 통한 분포 유추는 베이지안들에게 꼭 필요하다고 볼 수 있다.

2. 깁스 샘플링이란 무엇인가?

그럼 이제 깁스 샘플링이 무엇인지 알아보자. 깁스 샘플링의 유용성은 아래와 같다.

Useful when sampling from the joint denstiy ff is difficult, but the full conditionals fii(xixj,ji)f_{i|-i}(x_i|x_j,j\neq i) are available and sampling from them is easy

즉, 구하고자 하는 것이 joint distribution인데 이것이 어려울 때, full conditional distribution을 활용하여 우회하여 구하자는 것이다.

예를 들어, θ\theta, ϕ\phi 라는 두 모수의 joint posterior distribution을 구하고 싶다고 하자.

P(θ,ϕy)=P(ϕy)P(θϕ,y)=P(θy)P(ϕθ,y)P(\theta, \phi | y) = P(\phi|y)P(\theta|\phi,y) = P(\theta|y)P(\phi|\theta,y)

이므로,

P(θϕ,y)P(\theta|\phi,y)P(ϕθ,y)P(\phi|\theta,y)라는 full conditional distribution으로부터 P(θ,ϕy)P(\theta, \phi | y)라는 joint density를 따르는 (θ,ϕ)(\theta, \phi) 를 샘플링할 수 있다. ( joint density를 각각 θ\theta, ϕ\phi 의 함수로 보면 P(ϕy)P(\phi|y), P(θy)P(\theta|y) 는 상수로 취급하여 무시할 수 있다. )

따라서 깁스 샘플링의 과정은 다음과 같다.

Step1. Initialize θ(0)\theta^{(0)}, ϕ(0)\phi^{(0)}
Step2. Sample θ(i)\theta^{(i)} from P(θϕ(i1),y)P(\theta|\phi^{(i-1)},y)
Step3. Sample ϕ(i)\phi^{(i)} from P(ϕθ(i),y)P(\phi|\theta^{(i)},y)
and so on

  • 이를 살펴보면 (θ,ϕ)(\theta, \phi) 샘플은 그 이전 단계의 샘플에만 영향을 받는데 (conditionally independent) , 이는 Markov chain의 특성이다. 따라서 깁스 샘플링은 크게 보면 MCMC에 속한다.

이렇게 얻은 sampling distribution은 샘플 수가 많아지면 target distribution에 수렴한다.

P(θ(s),ϕ(s)A)Ap(θ,ϕ)dθdϕas sP(\theta^{(s)}, \phi^{(s)} \in A) \rightarrow \int_Ap(\theta, \phi) d\theta d\phi \\ as \ s \rightarrow \infin

참고) sampling distribution은 sample의 분포가 아니라 statistic의 분포이다. (A sampling distribution is a probability distribution of a statistic obtained from a larger number of samples drawn from a specific population.)

3. 샘플링을 이용한 추정과 표준오차

이렇게 샘플을 생성했다면, 분포를 plotting 하는 것 외에도 다양한 추정을 할 수 있다. 예를 들어 평균에 대해 알고 싶다면 표본평균을 통해 추정할 수 있고, 분산을 알고싶다면 표본분산을 통해 추정할 수 있다.

그런데 그렇게 추정한 estimate가 괜찮은(?) 값인지는 어떻게 결정할 수 있을까? 하나의 기준이 될 수 있는 것이 바로 표준오차이다. 표준오차는 통계량의 분산을 가리키는 개념이다. 우리가 뽑은 샘플은 수많은 가능한 샘플의 경우의 수 중 하나이므로, 샘플을 어떻게 뽑느냐에 따라 추정치는 달라질 것이다. 만약 샘플을 어떻게 뽑든 이 추정치가 크게 달라지지 않는다면, 그 추정치는 나쁘지 않은 추정치라고 볼 수 있을 것이다.

image source : http://scott.fortmann-roe.com/docs/BiasVariance.html

더 자세한 설명과 예시 문제는 다음에...

+) 깁스샘플링과 Metropolis-Hastings 알고리즘의 연관성

깁스샘플링은 Metropolis-Hastings 알고리즘의 speical case로 볼 수 있다.

q(yx)=1dfii(yxj,ji)=1df(y)f(x1,...xi1,xi+1,...xd)q(y|x) = \frac{1}{d}f_{i|-i}(y|x_j,j\neq i) = \frac{1}{d}\frac{f(y)}{f(x_1,...x_{i-1},x_{i+1},...x_d)}
α=min(f(y)q(xy)f(x)q(yx),1)=min(f(y)f(x)f(x)f(y),1)=1\alpha = min(\frac{f(y)q(x|y)}{f(x)q(y|x)},1) = min(\frac{f(y)f(x)}{f(x)f(y)},1) = 1

따라서 acceptance rate = 1 이므로 생성된 샘플을 reject할 필요가 없는 경우이다.

profile
응용통계학과 학부생의 정리 노트

0개의 댓글