랜덤변수 \(X\)의 확률밀도함수(pdf, probability density function)가 \(p_X (x)\)이고, 랜덤변수 \(Y\)가 함수 \(Y=g(X)\)로 주어졌을 때, \(Y\)의 확률밀도함수 \(p_Y (y)\)를 구할 수 있었다.
또한 랜덤변수 \(Y\)의 확률분포에서 샘플을 직접 추출하기 어려운 경우에는 가우시안 또는 균등분포(uniform distribution)를 갖는 랜덤변수 \(X\)로부터 샘플 \(X=x^{(i)}\)를 추출하여 함수 관계식 \(y^{(i)}=g(x^{(i)})\)로 변환해서 사용할 수 있었다.
그렇다면, 랜덤변수 \(X\)의 확률밀도함수 \(p_X (x)\)와 랜덤변수 \(Y\)의 확률밀도함수 \(p_Y (y)\)가 주어졌을 때, X와 Y의 함수 관계식 \(Y=g(X)\)는 어떻게 구할 수 있을까. 만약 이 관계식을 구할 수 있다면 임의의 확률분포로부터 샘플을 쉽게 추출할 수 있을 것이다. 왜냐하면 파이썬(Python)이나 매트랩(Matlab)에서는 가우시안 또는 균등분포로부터 샘플을 추출해주는 함수를 제공하고 있기 때문이다.
먼저 랜덤변수 \(X\)의 누적분포함수(cdf, cumulative distribution function) \(F_X (x)\)를 함수 \(g(X)\)로 놓자. 즉, \(Y=g(X)=F_X (X)\). 그러면 랜덤변수 \(Y\)의 누적분포함수는 다음과 같이 계산된다.
\[ \begin{align} F_Y (y) &= P \{Y \le y \} \\ \\ &= P \{ X \le F_X^{-1} (y) \} \\ \\ &= F_X \left( F_X^{-1} (y) \right) \\ \\ &=y \end{align} \]
누적분포함수의 특성에 의해서 \(0 \le F_X (X) \le 1\)이므로 \( 0 \le Y \le 1 \)이 된다. 따라서 \( y \lt 0\)이면 \(F_Y (y)=0\)이고 \( y \gt 1 \)이면 \(F_Y (y)=1 \)이다. 결국
\[ F_Y (y)= \begin{cases} 0, & y \lt 0 \\ y, & 0 \le y \le 1 \\ 1, & y \gt 1 \end{cases} \]
이다. 따라서 랜덤변수 \(Y\)는 \([0,1]\) 구간에서 균등분포를 갖는다는 것을 알 수 있다. 즉 \(Y \sim U[0,1]\)이다.
결론적으로 임의의 확률분포를 갖는 랜덤변수 \(X\)에서 균등분포를 갖는 랜덤변수 \(Y \sim U[0,1]\)를 만들어 낼 수 있다.
반대로, 균등분포를 갖는 랜덤변수 \(X \sim U[0,1]\)에서 미리 설정된 확률분포를 갖는 랜덤변수 \(Y\)를 만들어 보자. 이 경우가 더 유용한 시나리오가 되겠다. 랜덤변수 \(Y\)의 누적분포함수를 \(F(y)\)로 설정했을 때, \(X\)와 \(Y\)의 함수 관계식을 \(Y=g(X)=F^{-1} (X)\)로 놓자. 또는 \(X=F(Y)\). 그러면 랜덤변수 \(Y\)의 누적분포함수 \(F_Y (y)\)는 다음과 같이 계산된다.
\[ \begin{align} F_Y (y) &= P \{Y \le y \} \\ \\ &= P \{ F^{-1} (X) \le y \} \\ \\ &= P \{ X \le F(y) \} \\ \\ &= F_X (F(y)) \end{align} \]
여기서 \( X \sim U[0,1]\) 이므로 \( F_X (x)=x \)이기 때문에 위 식은
\[ \begin{align} F_Y (y) &= F_X (F(y)) \\ \\ &= F(y) \end{align} \]
가 된다. 따라서 \(Y\)의 누적분포함수 \(F_Y (y)\)는 설정된 누적분포함수 \(F(y)\)가 됨을 알 수 있다.
결론적으로 균등분포를 갖는 랜덤변수 \(X \sim U[0,1]\)에서 임의의 확률분포를 갖는 랜덤변수 \(Y\)를 만들어 낼 수 있다.
정리하면,
1. 가우시안 또는 균등분포를 갖는 랜덤변수를 임의의 확률분포를 갖는 랜덤변수로 변환시킬 수 있다. 또는 반대로 임의의 확률분포를 갖는 랜덤변수를 가우시안 또는 균등분포를 갖는 랜덤변수로 변환시킬 수 있다.
2. 가우시안 또는 균등분포를 갖는 샘플을 이용하여 임의의 확률분포를 갖는 샘플을 생성할 수 있다.
예를 들어보자. 만약 랜덤변수 \(Y\)의 확률밀도함수가 다음과 같이 주어졌을 때,
\[ p_Y (y) = \begin{cases} y , & 0 \le y \lt 1 \\ (2-y), & 1 \le y \le 2 \\ 0, & else \end{cases} \]
균등분포 \( X \sim U[0,1] \)에서 \(Y\)로 변환되는 함수 \(Y=g(X) \)를 구해보자.
먼저 Y의 확률밀도함수에서 누적분포함수를 구한다.
\[ \begin{align} F_Y (y) &= \int_{-\infty}^y p_Y (y) dy \\ \\ &= \begin{cases} 0, & y \lt 0 \\ \frac{y^2}{2}, & 0 \le y \lt 1 \\ -1+2y-\frac{y^2}{2}, & y 1 \le y \le2 \\ 1, & y \gt 2 \end{cases} \end{align} \]
그런 후, 함수 \( y=g(x)=F_Y^{-1}(x) \)를 구하면 된다.
\[ y = g(x)= \begin{cases} \sqrt{2x} , & 0 \le x \lt \frac{1}{2} \\ 2-\sqrt{2(1-x)}, & \frac{1}{2} \le x \le 1 \\ 0, & else \end{cases} \]
'AI 수학 > 랜덤프로세스' 카테고리의 다른 글
중요 샘플링 (Importance Sampling) (0) | 2021.01.06 |
---|---|
혼합 랜덤변수 (Mixed Random Variables) (0) | 2020.12.27 |
랜덤변수의 함수와 샘플링 - 2 (0) | 2020.12.24 |
랜덤변수의 함수와 샘플링 - 1 (0) | 2020.12.22 |
반복적인 기댓값 계산 (0) | 2020.12.12 |
댓글