← 베이지안 통계
PART 3 · 11 베이지안 통계 · 08

MCMC

Markov Chain Monte Carlo · 복잡한 사후분포를 계산하는 방법

마르코프 연쇄몬테카를로워밍업트레이스 플롯R̂ · ESSHMC · NUTS

시작점봉우리 주변을돌아다니며 모은 표본→ 사후분포의 모양

추정해야 할 모수가 많으면 사후분포를 수학적으로 직접 계산하기 어려울 수 있습니다. 베이지안 분석에서는 데이터와 사전정보를 결합해 사후분포를 구합니다. 이때 사용하는 대표적인 방법이 MCMC(Markov Chain Monte Carlo, 마르코프 연쇄 몬테카를로)입니다. MCMC는 사후분포에서 추출한 것처럼 행동하는 표본을 반복적으로 생성해, 복잡한 확률분포의 특성을 근사하는 계산 방법입니다. 이를 이용하면 회귀계수의 평균, 신용구간, 특정 값보다 클 확률 등을 추정할 수 있습니다.

SECTION 01

MCMC는 왜 필요할까?

베이지안 추론의 핵심은 사후분포입니다.

p(θ | D) ∝ p(D | θ) p(θ)
θ: 추정하려는 모수 · D: 관측된 데이터

사후분포의 식을 알고 있더라도 분포를 정규화하거나 필요한 확률을 계산하는 과정이 어려울 수 있습니다. 03장의 베타분포처럼 결과가 깔끔한 분포로 떨어지는 경우는 오히려 드물고, 여러 모수가 서로 연관된 복잡한 모형에서는 계산 부담이 커집니다. MCMC는 이런 상황에서 사후분포를 대표하는 표본을 생성해 분포의 특성을 추정합니다.

사후분포직접 계산하기 어려운 분포MCMC 반복 추출가능한 모수값을 탐색해 표본 생성사후분포의 특성 추정평균 · 신용구간 · 확률MCMC는 별도의 분석이 아니라, 사후분포를 계산하기 위한 수치적 방법
그림 1. MCMC의 역할

중요한 점은 MCMC가 베이지안 추론 자체를 대신하는 별도의 통계 분석이라기보다, 사후분포를 계산하기 위한 수치적 방법이라는 것입니다.

SECTION 02

MCMC는 어떻게 작동할까?

MCMC는 현재 상태를 바탕으로 다음 상태를 생성하는 과정을 반복합니다. 이 과정에서 만들어지는 값들은 마르코프 연쇄를 이룹니다.

마르코프 연쇄 (Markov Chain)

다음 상태의 확률분포가 현재 상태에 의존하는 과정입니다.

몬테카를로 (Monte Carlo)

무작위 표본을 이용해 평균이나 확률 같은 값을 추정하는 방법입니다.

알고리즘은 가능한 모수값들을 탐색하면서 사후분포에서 확률이 높은 영역을 더 자주 방문하도록 표본을 생성합니다. 정확한 답을 알고 있는 03장의 구매 전환율 예에 MCMC를 적용해 보면 그 원리를 확인할 수 있습니다.

0%5%10%15%20%MCMC 표본 20,000개정확한 사후분포 Beta(10, 110)03장의 구매 전환율 예 · 메트로폴리스 알고리즘으로 뽑은 표본의 히스토그램이 정확한 분포와 겹친다
그림 2. MCMC 표본으로 근사한 사후분포

그림 2처럼 MCMC 표본 20,000개의 히스토그램은 정확한 사후분포 Beta(10, 110)와 거의 겹칩니다. 생성된 표본이 사후분포를 적절히 대표한다면 다음과 같은 계산이 가능합니다.

알고 싶은 값MCMC 표본을 활용하는 방법전환율 예의 결과
회귀계수의 평균표본값의 평균 계산8.4% (정확한 값 8.3%)
95% 신용구간표본 분포의 2.5% · 97.5% 분위수 계산[4.2%, 14.0%] (정확한 값 [4.1%, 13.9%])
계수가 0보다 클 확률0보다 큰 표본의 비율 계산전환율 > 10%인 표본 비율 23.8% (정확한 값 23.8%)
두 계수의 차이가 양수일 확률두 계수의 표본별 차이를 계산한 뒤 양수인 비율 계산—

실제 계산의 정확도는 표본 수뿐 아니라 알고리즘이 목표 분포를 얼마나 잘 탐색했는지에도 달려 있습니다.

SECTION 03

MCMC 표본은 왜 처음부터 사용하지 않을까?

MCMC를 시작하면 알고리즘은 초기값에서 출발합니다. 초기 상태가 목표 사후분포를 잘 대표하지 않을 수 있으므로, 초반에 생성된 표본을 분석에서 제외하는 경우가 많습니다. 이를 워밍업(warm-up) 또는 문맥에 따라 번인(burn-in)이라고 부릅니다.

① 초기 탐색 · 워밍업

초기값의 영향을 줄이고 적절한 탐색 상태에 도달하도록 진행합니다.

② 표본 수집 · 추론에 사용

생성된 표본을 이용해 사후평균, 신용구간, 확률을 계산합니다.

워밍업 (버림)표본 수집 (추론에 사용)0%20%40%60%050010001500← 초기값 60%반복 횟수 · 사후분포와 동떨어진 60%에서 출발해도 몇십 번 만에 8% 근처로 내려와 안정된다 · 여유 있게 300번을 워밍업으로 둠
그림 3. 워밍업과 표본 수집

그림 3에서 연쇄는 일부러 사후분포와 동떨어진 60%에서 출발했지만, 수십 번의 반복 만에 8% 근처로 내려와 안정적으로 움직입니다. 실제 분석에서는 이보다 여유 있게 워밍업 구간을 둡니다. 다만 워밍업을 마쳤다고 해서 표본이 자동으로 신뢰할 수 있게 되는 것은 아닙니다. 연쇄가 충분히 혼합되는지, 목표 분포의 주요 영역을 탐색하는지, 추정값이 안정적인지 확인해야 합니다.

SECTION 04

수렴과 혼합은 무엇을 의미할까?

MCMC 결과를 해석하기 전에 반드시 확인해야 할 부분이 수렴 진단입니다.

제안 폭이 너무 좁음수용률 98% · ESS 11적절함수용률 57% · ESS 412제안 폭이 너무 넓음수용률 11% · ESS 142같은 2,000번 반복이라도 얼마나 독립적인 정보를 모았는지(ESS)는 크게 다르다
그림 4. 혼합이 잘 될 때와 잘 안 될 때의 트레이스 플롯

그림 4처럼 연쇄가 한 영역에 오래 머물거나 탐색이 느리면 표본을 많이 생성하더라도 실제로 얻는 정보는 제한적입니다. 같은 2,000번 반복이라도 후보를 너무 조금씩 움직이면 거의 다 수용되지만 천천히 기어가 유효표본크기가 약 11개에 그치고, 너무 멀리 던지면 대부분 기각되어 같은 값에 머무릅니다. 적절한 폭에서는 약 412개의 독립 표본에 해당하는 정보를 얻습니다.

진단 방법확인하는 내용
트레이스 플롯반복에 따른 표본값의 움직임과 안정성
R̂여러 연쇄의 결과가 서로 얼마나 일치하는지
유효표본크기(ESS)표본 간 상관을 고려했을 때의 실질적인 정보량
몬테카를로 표준오차(MCSE)표본 추출에 따른 추정값의 계산 오차
잘 혼합된 4개 연쇄R̂ = 1.00아직 수렴하지 않은 4개 연쇄R̂ = 1.54출발점 2% · 15% · 30% · 50% · 왼쪽은 모두 같은 영역으로 모이지만, 오른쪽은 출발점의 흔적이 남아 있다
그림 5. 여러 연쇄로 수렴 확인하기

여러 연쇄를 실행하면 서로 다른 초기값에서 출발한 결과가 비슷한 분포로 모이는지 비교할 수 있습니다. 그림 5의 왼쪽은 네 연쇄가 같은 영역에서 겹쳐 R̂ = 1.00이고, 오른쪽은 출발점의 흔적이 남아 R̂ = 1.54입니다. 일반적으로 R̂이 1에 가깝고(흔히 1.01 이하) 유효표본크기가 충분한지 살펴보지만, 특정 숫자 하나만으로 수렴을 확정해서는 안 됩니다.

SECTION 05

대표적인 MCMC 알고리즘

MCMC에는 여러 알고리즘이 있으며, 모형의 구조와 계산 특성에 따라 적합한 방법이 달라집니다.

① 메트로폴리스-헤이스팅스② 깁스 샘플링③ 해밀토니안 MC후보를 제안하고 수용 · 기각한 모수씩 번갈아 이동기울기를 따라 멀리 이동상관 0.9인 두 모수의 사후분포 · 주황 = 출발점 · 같은 출발점에서 각 알고리즘이 움직이는 방식 (단순화한 예시)
그림 6. 세 가지 MCMC 알고리즘의 움직임
① 메트로폴리스-헤이스팅스 (Metropolis–Hastings)

현재 상태에서 후보값을 제안하고, 목표 분포에 맞도록 정해진 확률에 따라 후보값을 수용하거나 현재 상태를 유지합니다. 다양한 확률분포에 적용할 수 있지만, 후보값을 제안하는 방식에 따라 효율이 달라집니다(그림 4).

② 깁스 샘플링 (Gibbs Sampling)

여러 모수가 있을 때 다른 모수의 현재 값을 조건으로 삼아 한 모수씩 번갈아 표본을 생성합니다. 조건부 분포에서 표본을 추출할 수 있는 모형에 유용하며, 07장의 회귀계수도 이 방법으로 계산했습니다.

③ 해밀토니안 몬테카를로 (HMC)

분포의 기울기 정보를 활용해 효율적으로 탐색하는 방법입니다. 연속형 모수가 많은 모형에서 유용하며, 적절한 설정을 통해 무작위 보행 방식보다 효율적으로 표본을 생성할 수 있습니다.

그림 6처럼 두 모수의 상관이 높으면 메트로폴리스는 좁은 골짜기를 따라 조금씩 움직이고, 깁스 샘플링은 축 방향의 짧은 계단으로만 이동합니다. HMC는 기울기를 따라 한 번에 멀리 이동해 같은 반복 수로 더 넓은 영역을 탐색합니다. HMC를 개선한 NUTS(No-U-Turn Sampler)는 탐색 경로의 길이를 자동으로 조절하는 방식으로, Stan과 같은 베이지안 분석 도구에서 널리 사용됩니다.

SECTION 06

실제 분석에서는 어떻게 활용할까?

광고비, 가격, 계절로 매출을 설명하는 07장의 베이지안 회귀모형을 예로 들면 다음 순서로 진행합니다.

  1. 회귀계수와 오차항에 적절한 사전분포를 설정합니다.
  2. 관측 데이터에 맞는 사후분포를 구성합니다.
  3. MCMC를 실행해 회귀계수와 다른 모수의 표본을 생성합니다.
  4. 트레이스 플롯, R̂, 유효표본크기 등을 확인합니다.
  5. 진단이 적절한 경우 사후평균, 신용구간, 관심 계수의 확률을 계산합니다.
  6. 필요하다면 사후예측검사로 모형이 실제 데이터의 특성을 재현하는지도 살펴봅니다.

이 과정에서 MCMC는 모형이 올바른지 자동으로 판정하지 않습니다. 잘못 설정한 모형에서도 알고리즘이 표본을 생성할 수 있으므로, 계산 진단과 통계적 모형 검토를 함께 수행해야 합니다.

SECTION 07

MCMC의 한계

MCMC는 복잡한 사후분포를 분석하는 강력한 도구지만, 몇 가지 주의점이 있습니다.

계산 비용

모형이 복잡하거나 데이터가 크면 계산 시간이 길어질 수 있습니다.

표본 간 상관

연속된 표본이 서로 비슷하면 표본 수에 비해 정보량이 적을 수 있습니다.

수렴 문제

여러 연쇄가 서로 다른 영역에 머물거나 특정 모드를 충분히 탐색하지 못할 수 있습니다.

모형의 한계

MCMC가 성공적으로 작동해도 데이터와 모형의 가정이 부적절하다면 결과 해석에 문제가 생길 수 있습니다.

따라서 표본을 많이 생성하는 것만으로 충분하지 않습니다. 표본이 목표 분포를 적절히 대표하는지, 추정 결과가 안정적인지, 모형이 연구 목적에 맞는지를 함께 검토해야 합니다.

보고 문장 예시

사후분포는 서로 다른 초기값에서 시작한 4개의 연쇄로 추정하였으며, 각 연쇄에서 워밍업 500회를 제외한 표본을 사용하였다. 모든 모수의 R̂은 1.01 이하였고 트레이스 플롯에서 연쇄들이 같은 영역을 안정적으로 탐색하였으며, 유효표본크기는 모두 400 이상이었다. 구매 전환율의 사후평균은 8.4%, 95% 신용구간은 [4.2%, 14.0%]였다.

✓ 핵심 정리

사후분포를 표본으로 근사하고, 그 표본을 믿을 수 있는지 진단합니다.


다음은 09 사후예측검사입니다. 추정한 베이지안 모형이 실제 데이터의 특성을 얼마나 잘 재현하는지 확인하는 방법을 알아봅니다.

KEY TAKEAWAYS

MCMC는 사후분포에서 표본을 반복 생성해 평균 · 신용구간 · 확률을 표본의 평균 · 분위수 · 비율로 계산합니다. 워밍업을 버린 뒤 트레이스 플롯, R̂, 유효표본크기로 수렴과 혼합을 확인해야 하며, 계산이 잘 되었다는 사실이 모형이 옳다는 뜻은 아닙니다.