10wk-2: 마코프체인 (7)

최규빈

2023-05-09

강의영상

youtube: https://youtube.com/playlist?list=PLQqh36zP38-yMXZ2TSGxoh-rIjn8vp6cV

imports

import numpy as np

LLN의 확장 – 정상분포 관련내용

- 유일한 정상분포를 가진다는 것을 알고 있다고 하자. 이를 쉽고 편하게 구하는 방법?

  • 배운것1: 문제를 잘 이해하고 \({\boldsymbol \pi}^\top = {\boldsymbol \pi}^\top {\bf P}\) 에 맞는 분포를 때려맞춤.
  • 배운것2: 고유값, 고유벡터의 개념을 이용하여 찾아냄

- 정리(큰 수의 법칙): 확률변수열 \(\{X_t\}_{t \in \mathbb{N}_0}\) 이 서로 독립이고 동일한 분포를 가진다고 하자. 또한 \(\mathbb{E}[|X_0|]<\infty\) 이라고 가정하자. 그러면 아래가 성립한다.

\[\lim_{T\to\infty} \frac{1}{T}\sum_{t=0}^{T-1}X_t = \mathbb{E}_{\pi}[X_0]\]

단, 여기에서 \(\pi\)\(X_0\)의 분포이다.

- Thm (에르고딕정리): 확률변수열 \(\{X_t\}_{t \in \mathbb{N}_0}\)이 finite and irreducible HMC 라고 하자. 그러면 임의의 함수 \(f:S \to \mathbb{R}\)에 대하여 아래가 성립한다.

\[\lim_{T\to\infty} \frac{1}{T}\sum_{t=0}^{T-1}f(X_t) = \mathbb{E}_{\boldsymbol \pi}[f(X_0)]\]

여기에서 \(\boldsymbol \pi\)\({\boldsymbol \pi}^\top = {\boldsymbol \pi}^\top{\bf P}\)를 만족하는 유일한 정상분포이고 \({\bf P}\)\(\{X_t\}\)의 transition matrix 이다.

- (\(f\)의 해석) 만약에 \[f(i)= I(i=0)=\begin{cases} 1 & i = 0 \\ 0 & o.w\end{cases}\] 이라고 하자. 그러면 위의 이론은 아래와 같이 변경된다.

\[\lim_{T\to\infty} \frac{1}{T}\sum_{t=0}^{T-1}I(X_t=0) =\mathbb{E}_{\pi}[I(X_0=0)] = \mathbb{P}_{\pi}[X_0=0]=\pi_0\]

이 이론의 의미: 우리가 만약에 어떠한 마코프체인이 유일한 정상분포를 가진다는 사실을 알고 있다고 가정하자. 그럴때 에르고딕 정리를 이용하면 정상분포의 값을 시간평균으로 근사할 수 있다는 의미이다.

예제1: 단위행렬

HMC \(\{X_t\}\)의 전이행렬이 아래와 같다고 하자.

P = np.array([[1,0],
              [0,1]])
P
array([[1, 0],
       [0, 1]])

\(\{X_t\}\)는 유일한 정상분포를 가지는가? 가진다면 시간평균을 이용하여 정상분포를 근사하라.

(풀이)

이 경우는 IRR 조건이 만족되지 않으므로 유일한 정상분포가 존재하지 않음. 그래서 에르고딕정리를 이용할 수 없다.

예제2: 순환이동

HMC \(\{X_t\}\)의 전이행렬이 아래와 같다고 하자.

P = np.array([[0,1],
              [1,0]])
P
array([[0, 1],
       [1, 0]])

\(\{X_t\}\)는 유일한 정상분포를 가지는가? 가진다면 시간평균을 이용하여 정상분포를 구하여라.

(풀이)

\(\{X_t\}\)는 finite and irreducible HMC 이므로 유일한 정상분포를 가진다. 시뮬레이션을 한다면

  • \(0,1,0,1,0,1,0, \dots\)
  • \(1,0,1,0,1,0,1, \dots\)

중 하나의 열(array)이 관찰 될 것이고 두 경우 모두

  • \(\big(\frac{1}{T}\sum_{t=0}^{T-1}I(X_t=0),\frac{1}{T}\sum_{t=0}^{T-1}I(X_t=1)\big)=(\hat{\pi}_0,\hat{\pi}_1)\approx (1/2,1/2)\)

와 같이 구할 수 있음

예제3: 비가 온다, 안온다

HMC \(\{X_t\}\)의 전이행렬이 아래와 같다고 하자.

P = np.array([[0.4,0.6],
              [0.7,0.3]])
P
array([[0.4, 0.6],
       [0.7, 0.3]])

\(\{X_t\}\)는 유일한 정상분포를 가지는가? 가진다면 시간평균을 이용하여 정상분포를 구하여라.

(풀이) 이 강의노트의 풀이4

def rain(before):
    if before == True: # 비가 왔음 
        after = np.random.rand() < 0.3
    else: # 비가 안왔음 
        after = np.random.rand() < 0.6 
    return after 
def doctor_strange(today):
    lst = [today]
    for i in range(10000): 
        lst.append(rain(lst[i]))
    return lst 
np.mean(doctor_strange(True)[1:])
0.4616

정리

\(\{X_t\}\)는 HMC 라고 하자.

CaseNO 대표예제 FINITE IRR(연결) AP(비주기) \({\bf P}\)의 수렴 동일한 row 정상분포존재 정상분포유일 에르고딕정리를 만족 에르고딕
1 O X X X X O X X X
2 단위행렬 O X O O X O X X X
3 순환이동 O O X X X O O O X
4 나이스 O O O O O O O O O