1 동기: 왜 변환된 확률변수의 분포가 필요한가
실무에서 관심 있는 양(quantity)은 원래 확률변수 \(X\) 자체가 아니라, \(X\) 의 함수 \(Y = g(X)\) 인 경우가 대부분이다.
- 로그 변환: 소득 \(X\) 가 로그정규분포를 따른다면, \(Y = \log X\) 의 분포는 정규분포 — 이 사실을 이용해 정규 기반 검정을 적용한다
- 제곱: \(X \sim N(0,1)\) 일 때 \(Y = X^2 \sim \chi^2(1)\) — 검정 통계량의 분포를 유도하는 핵심 단계이다
- 표준화: \(Z = (X - \mu)/\sigma\) — 서로 다른 스케일의 확률변수를 비교 가능하게 만든다
- MLE의 불변성: \(\hat{\theta}\) 가 \(\theta\) 의 MLE이면 \(g(\hat{\theta})\) 는 \(g(\theta)\) 의 MLE — 변환된 모수의 추론에 직접 사용된다
- Delta method: 추정량 \(\hat{\theta}\) 의 함수 \(g(\hat{\theta})\) 의 근사 분산을 구할 때, 변수변환의 점근적 버전을 적용한다
- 시뮬레이션: \(U \sim \text{Uniform}(0,1)\) 로부터 \(X = F^{-1}(U)\) 로 임의의 분포를 생성한다 (역변환법)
문제를 형식화하면:
\[ X \sim f_X(x) \text{ (알려져 있음)} \quad\Longrightarrow\quad Y = g(X) \sim f_Y(y) = \;? \]
이 포스트에서는 이 문제를 푸는 세 가지 전략을 다룬다.
2 전략 개관
| 방법 | 핵심 아이디어 | 적용 조건 | 장점 | 단점 |
|---|---|---|---|---|
| CDF법 | \(F_Y(y) = P(g(X) \leq y)\) 를 직접 계산 후 미분 | 항상 적용 가능 | 가장 일반적 | 적분/미분이 복잡할 수 있음 |
| 변수변환법 | \(f_Y(y) = f_X(g^{-1}(y)) \cdot \lvert (g^{-1})'(y) \rvert\) | \(g\) 가 단조 + 미분 가능 | 공식 하나로 즉시 계산 | 단조가 아니면 구간 분할 필요 |
| MGF법 | \(M_Y(t) = E[e^{tg(X)}]\) 를 계산하여 분포 식별 | MGF가 존재 + 알려진 분포로 식별 가능 | 대수적으로 깔끔 | 모든 분포에 MGF가 존재하지는 않음 |
- 비단조 변환 (예: \(Y = X^2\)): CDF법이 유일한 선택지이다
- 단조 변환 (예: \(Y = e^X\), \(Y = 1/X\)): 변수변환법이 가장 빠르다
- 독립 확률변수의 합 (예: \(Y = X_1 + X_2\)): MGF법이 압도적으로 효율적이다
- 확실하지 않을 때: CDF법으로 시작하면 절대 틀리지 않는다
3 방법 1: CDF법 (CDF Technique)
3.1 정의와 절차
\(Y = g(X)\) 의 CDF를 직접 구한 후 미분하여 PDF를 얻는다:
- \(F_Y(y) = P(Y \leq y) = P(g(X) \leq y)\)
- \(g\) 의 구조에 따라 \(\{g(X) \leq y\}\) 를 \(X\) 의 조건으로 변환
- \(f_Y(y) = F_Y'(y)\)
CDF법은 항상 적용 가능하다. \(g\) 가 단조이든, 비단조이든, 이산이든, 연속이든 상관없다.
3.2 예시: \(X \sim \text{Uniform}(0,1)\), \(Y = -\log X\) (지수분포 유도)
Step 1: \(Y\) 의 지지 집합을 결정한다. \(X \in (0,1)\) 이므로 \(Y = -\log X \in (0, \infty)\).
Step 2: \(y > 0\) 에 대해 CDF를 구한다:
\[ F_Y(y) = P(Y \leq y) = P(-\log X \leq y) = P(\log X \geq -y) = P(X \geq e^{-y}) \]
\(X \sim \text{Uniform}(0,1)\) 이므로:
\[ F_Y(y) = 1 - P(X < e^{-y}) = 1 - e^{-y} \]
Step 3: 미분하여 PDF를 구한다:
\[ f_Y(y) = F_Y'(y) = e^{-y}, \quad y > 0 \]
이는 \(\text{Exp}(1)\) 의 PDF이다. 따라서 \(Y = -\log X \sim \text{Exp}(1)\).
위 결과를 뒤집으면: \(U \sim \text{Uniform}(0,1)\) 로부터 \(X = -\frac{1}{\lambda}\log U \sim \text{Exp}(\lambda)\) 를 생성할 수 있다. 이것이 몬테카를로 시뮬레이션의 기본 원리인 역변환법이다.
3.3 예시: \(X \sim N(0,1)\), \(Y = X^2\) (카이제곱 분포 유도)
이 변환은 비단조이므로 CDF법이 필수적이다.
Step 1: \(Y\) 의 지지 집합은 \([0, \infty)\).
Step 2: \(y > 0\) 에 대해:
\[ F_Y(y) = P(X^2 \leq y) = P(-\sqrt{y} \leq X \leq \sqrt{y}) = \Phi(\sqrt{y}) - \Phi(-\sqrt{y}) = 2\Phi(\sqrt{y}) - 1 \]
여기서 \(\Phi\) 는 표준정규분포의 CDF이다.
Step 3: 미분한다. \(\phi(x) = \Phi'(x) = \frac{1}{\sqrt{2\pi}}e^{-x^2/2}\) 이므로:
\[ f_Y(y) = 2\phi(\sqrt{y}) \cdot \frac{1}{2\sqrt{y}} = \frac{1}{\sqrt{y}} \cdot \frac{1}{\sqrt{2\pi}} e^{-y/2} = \frac{1}{2^{1/2}\,\Gamma(1/2)}\,y^{1/2-1}\,e^{-y/2} \]
이는 \(\chi^2(1) = \text{Gamma}(1/2, 2)\) 의 PDF이다.
\(\chi^2\) 분포는 분산 검정, 적합도 검정, 카이제곱 독립성 검정의 기반이다. 이 모든 검정 통계량은 “정규 확률변수의 제곱합”이라는 구조를 가지며, 그 분포가 \(\chi^2\) 임을 위 유도가 보장한다.
4 방법 2: 변수변환법 (Change of Variables / Jacobian Method)
4.1 단조 변환의 공식
\(X\) 가 연속형이고 \(g\) 가 \(X\) 의 지지 집합에서 단조(monotone) 이며 미분 가능하면, \(Y = g(X)\) 의 PDF:
\[ f_Y(y) = f_X\!\left(g^{-1}(y)\right) \cdot \left|\frac{d}{dy}\,g^{-1}(y)\right| \]
여기서 \(\left|dg^{-1}/dy\right|\) 는 야코비안(Jacobian) 이다.
증명 (\(g\) 가 단조 증가인 경우):
\[ F_Y(y) = P(g(X) \leq y) = P(X \leq g^{-1}(y)) = F_X(g^{-1}(y)) \]
연쇄 법칙으로 미분:
\[ f_Y(y) = f_X(g^{-1}(y)) \cdot \frac{d}{dy} g^{-1}(y) \]
\(g\) 가 단조 감소이면 부등호가 뒤집히므로 \(-1\) 이 붙고, 절대값으로 통합하면 위 공식을 얻는다. \(\quad\blacksquare\)
야코비안 \(|dg^{-1}/dy|\) 는 변환이 “공간을 얼마나 신축시키는가”를 보정하는 항이다.
- \(g\) 가 공간을 늘리면(예: \(g(x) = 2x\)): 확률이 넓은 영역에 퍼지므로 밀도가 감소 → 야코비안이 \(< 1\)
- \(g\) 가 공간을 압축하면: 확률이 좁은 영역에 집중되므로 밀도가 증가 → 야코비안이 \(> 1\)
- 확률 자체는 보존되어야 하므로: \(f_Y(y)\,|dy| = f_X(x)\,|dx|\) → \(f_Y(y) = f_X(x) \cdot |dx/dy|\)
4.2 예시: \(X \sim N(\mu, \sigma^2)\), \(Y = e^X\) (로그정규분포)
\(g(x) = e^x\) 는 단조 증가. \(g^{-1}(y) = \log y\), \(\frac{d}{dy} g^{-1}(y) = \frac{1}{y}\).
\[ f_Y(y) = \frac{1}{\sigma\sqrt{2\pi}} \exp\!\left(-\frac{(\log y - \mu)^2}{2\sigma^2}\right) \cdot \frac{1}{y}, \quad y > 0 \]
이것이 로그정규분포 \(\text{LogNormal}(\mu, \sigma^2)\) 의 PDF이다.
- 소득 분포: 소득의 로그가 대략 정규 → 소득 자체는 로그정규
- 주가 수익률: 연속 복리 수익률 \(\log(S_t/S_{0})\) 이 정규 → \(S_t/S_0\) 은 로그정규 (Black-Scholes 모형)
- 생존 시간: 일부 생존 시간 데이터가 로그정규를 잘 따른다
4.3 예시: \(X \sim \text{Gamma}(\alpha, \beta)\), \(Y = 1/X\) (역감마분포)
\(g(x) = 1/x\) 는 \((0, \infty)\) 에서 단조 감소. \(g^{-1}(y) = 1/y\), \(|dg^{-1}/dy| = 1/y^2\).
\[ f_Y(y) = \frac{1}{\beta^\alpha \Gamma(\alpha)} \left(\frac{1}{y}\right)^{\alpha-1} e^{-1/(\beta y)} \cdot \frac{1}{y^2} = \frac{1}{\beta^\alpha \Gamma(\alpha)} \cdot y^{-\alpha-1} \cdot e^{-1/(\beta y)}, \quad y > 0 \]
이것이 역감마분포(Inverse-Gamma) 의 PDF이다. 베이지안 추론에서 분산 \(\sigma^2\) 의 사후 분포로 자주 등장한다.
4.4 비단조 변환의 처리: 구간 분할
\(g\) 가 비단조이면, 지지 집합을 \(g\) 가 단조인 구간들로 분할한 뒤 각 구간의 기여를 합산한다.
\(g\) 가 \(X\) 의 지지 집합을 \(A_1, A_2, \ldots, A_k\) 로 분할하여 각 \(A_i\) 에서 단조이면:
\[ f_Y(y) = \sum_{i=1}^k f_X\!\left(g_i^{-1}(y)\right) \cdot \left|\frac{d}{dy}\,g_i^{-1}(y)\right| \]
여기서 \(g_i^{-1}\) 은 \(A_i\) 에서의 역함수이다.
예시: \(X \sim N(0,1)\), \(Y = X^2\).
\(g(x) = x^2\) 은 \(A_1 = (-\infty, 0)\) 에서 단조 감소, \(A_2 = (0, \infty)\) 에서 단조 증가.
- \(A_1\): \(g_1^{-1}(y) = -\sqrt{y}\), \(|dg_1^{-1}/dy| = 1/(2\sqrt{y})\)
- \(A_2\): \(g_2^{-1}(y) = \sqrt{y}\), \(|dg_2^{-1}/dy| = 1/(2\sqrt{y})\)
\[ f_Y(y) = \phi(-\sqrt{y}) \cdot \frac{1}{2\sqrt{y}} + \phi(\sqrt{y}) \cdot \frac{1}{2\sqrt{y}} = \frac{2\phi(\sqrt{y})}{2\sqrt{y}} = \frac{1}{\sqrt{2\pi y}}\,e^{-y/2} \]
CDF법과 동일한 결과 — \(\chi^2(1)\) — 를 얻는다.
5 방법 3: MGF법
5.1 핵심 아이디어
\(Y = g(X)\) 의 MGF를 계산한 뒤, 알려진 분포의 MGF와 대조하여 분포를 식별한다.
\[ M_Y(t) = E[e^{tY}] = E[e^{t\,g(X)}] \]
MGF가 열린 구간에서 존재하고, 두 분포의 MGF가 일치하면 분포가 동일하다 (유일성 정리).
5.2 예시: \(X \sim N(\mu, \sigma^2)\), \(Y = aX + b\)
\[ M_Y(t) = E[e^{t(aX+b)}] = e^{bt} \cdot E[e^{atX}] = e^{bt} \cdot M_X(at) \]
\(M_X(t) = e^{\mu t + \sigma^2 t^2/2}\) 이므로:
\[ M_Y(t) = e^{bt} \cdot e^{\mu(at) + \sigma^2(at)^2/2} = e^{(a\mu+b)t + a^2\sigma^2 t^2/2} \]
이는 \(N(a\mu + b, \; a^2\sigma^2)\) 의 MGF이다. 따라서 정규분포의 선형변환은 다시 정규분포이다.
\(Z = (X - \mu)/\sigma\) 는 \(a = 1/\sigma\), \(b = -\mu/\sigma\) 인 선형변환이므로 \(Z \sim N(0, 1)\). 표준화(standardization)가 정규성을 보존한다는 사실이 위 결과의 직접적 응용이다.
5.3 예시: 독립 정규 확률변수의 합
\(X_1 \sim N(\mu_1, \sigma_1^2)\), \(X_2 \sim N(\mu_2, \sigma_2^2)\) 이 독립일 때:
\[ M_{X_1+X_2}(t) = M_{X_1}(t) \cdot M_{X_2}(t) = e^{\mu_1 t + \sigma_1^2 t^2/2} \cdot e^{\mu_2 t + \sigma_2^2 t^2/2} = e^{(\mu_1+\mu_2)t + (\sigma_1^2+\sigma_2^2)t^2/2} \]
따라서 \(X_1 + X_2 \sim N(\mu_1 + \mu_2, \; \sigma_1^2 + \sigma_2^2)\). CDF법이나 합성곱(convolution)으로 구하면 훨씬 복잡하지만, MGF법은 한 줄이다.
- 표본 평균의 분포: \(\bar{X} = \frac{1}{n}\sum X_i\) 에서 \(X_i \overset{iid}{\sim} N(\mu, \sigma^2)\) 이면 \(\bar{X} \sim N(\mu, \sigma^2/n)\) — 이 결과가 z-검정, t-검정의 출발점이다
- 포트폴리오 수익률: 정규 수익률 가정 하에서 포트폴리오 전체의 분포를 즉시 구할 수 있다
6 이산형 확률변수의 변환
이산형에서는 야코비안이 필요 없다. \(Y = g(X)\) 의 PMF를 직접 구한다:
\[ p_Y(y) = P(Y = y) = \sum_{x:\,g(x) = y} p_X(x) \]
6.1 예시: \(X \sim \text{Binomial}(n, p)\), \(Y = n - X\)
\[ p_Y(y) = P(n - X = y) = P(X = n - y) = \binom{n}{n-y} p^{n-y}(1-p)^y = \binom{n}{y}(1-p)^y p^{n-y} \]
따라서 \(Y \sim \text{Binomial}(n, 1-p)\). 성공/실패의 역할을 바꾸면 모수가 \(p \to 1-p\) 로 바뀐다.
7 확률 적분 변환 (Probability Integral Transform)
\(X\) 가 연속형이고 CDF \(F_X\) 가 순증가이면:
\[ U = F_X(X) \sim \text{Uniform}(0, 1) \]
역으로, \(U \sim \text{Uniform}(0,1)\) 이면 \(X = F_X^{-1}(U) \sim F_X\).
증명:
\[ P(U \leq u) = P(F_X(X) \leq u) = P(X \leq F_X^{-1}(u)) = F_X(F_X^{-1}(u)) = u \]
이는 \(\text{Uniform}(0,1)\) 의 CDF이다. \(\quad\blacksquare\)
PIT는 확률론에서 가장 실용적인 정리 중 하나이다:
| 응용 | 방향 | 설명 |
|---|---|---|
| 역변환 시뮬레이션 | \(U \to X\) | \(\text{Uniform}(0,1)\) 난수로부터 임의의 분포 표본을 생성 |
| 모형 진단 | \(X \to U\) | 관측값에 CDF를 적용하면 균등해야 한다 — 균등성 검정으로 모형 적합도를 평가 |
| Copula | \(X \to U \to\) 결합 | 주변 분포를 균등으로 변환한 뒤, 의존 구조만 따로 모형화 |
8 주요 변환 결과 요약
| 원래 분포 | 변환 \(g(X)\) | 결과 분포 | 유도 방법 |
|---|---|---|---|
| \(\text{Uniform}(0,1)\) | \(-\frac{1}{\lambda}\log X\) | \(\text{Exp}(\lambda)\) | CDF법 |
| \(N(0,1)\) | \(X^2\) | \(\chi^2(1)\) | CDF법 (비단조) |
| \(N(\mu, \sigma^2)\) | \(e^X\) | \(\text{LogNormal}(\mu, \sigma^2)\) | 변수변환법 |
| \(\text{Gamma}(\alpha, \beta)\) | \(1/X\) | \(\text{Inv-Gamma}(\alpha, 1/\beta)\) | 변수변환법 |
| \(N(\mu, \sigma^2)\) | \(aX + b\) | \(N(a\mu+b, a^2\sigma^2)\) | MGF법 |
| \(N(\mu_1, \sigma_1^2) + N(\mu_2, \sigma_2^2)\) | 합 (독립) | \(N(\mu_1+\mu_2, \sigma_1^2+\sigma_2^2)\) | MGF법 |
| \(\text{Exp}(\lambda)\) | \(\lceil X \rceil\) | \(\text{Geometric}\) | CDF법 (이산화) |
| 연속 \(F_X\) | \(F_X(X)\) | \(\text{Uniform}(0,1)\) | CDF법 (PIT) |
9 응용 분야
| 분야 | 변환 활용 | 구체적 예시 |
|---|---|---|
| 가설 검정 | 검정 통계량의 분포 유도 | \(t = \bar{X}/(\hat{\sigma}/\sqrt{n})\) 의 분포가 \(t(n-1)\) 임을 증명 |
| 베이지안 추론 | 사후 분포의 변환 | \(\sigma^2\) 의 사후가 역감마 → \(\sigma\) 의 사후 유도 |
| 금융 공학 | Black-Scholes 모형 | \(\log(S_T/S_0) \sim N\) → \(S_T\) 는 로그정규 → 옵션 가격 산정 |
| 시뮬레이션 | 역변환법, Box-Muller | 균등 난수 → 지수, 정규 등 표본 생성 |
| 신뢰구간 | 피벗량 구성 | \((n-1)S^2/\sigma^2 \sim \chi^2(n-1)\) → 분산의 신뢰구간 |
| 데이터 전처리 | Box-Cox, 로그 변환 | 비정규 데이터를 정규에 근사시켜 모형 가정 충족 |
| Delta method | 추정량의 점근 분산 | \(g(\hat{\theta}) \approx N(g(\theta),\; [g'(\theta)]^2 \text{Var}(\hat{\theta}))\) |
10 코드 예시
10.1 Step 1: 순수 Python 구현 (원리 이해)
import math
def pdf_transform_monotone(f_x, g_inv, g_inv_deriv, y):
"""
단조 변환의 PDF 공식을 직접 구현한다.
f_Y(y) = f_X(g^{-1}(y)) * |d/dy g^{-1}(y)|
"""
x = g_inv(y)
jacobian = abs(g_inv_deriv(y))
return f_x(x) * jacobian
# 예시: X ~ N(0,1), Y = e^X (로그정규)
def std_normal_pdf(x):
return math.exp(-x**2 / 2) / math.sqrt(2 * math.pi)
# g(x) = e^x, g^{-1}(y) = log(y), d/dy g^{-1}(y) = 1/y
g_inv = math.log
g_inv_deriv = lambda y: 1 / y
# y = 1, 2, 3에서 로그정규 PDF 계산
for y in [0.5, 1.0, 2.0, 5.0]:
f_y = pdf_transform_monotone(std_normal_pdf, g_inv, g_inv_deriv, y)
print(f"f_Y({y}) = {f_y:.6f}")
# 검증: 로그정규 PDF 직접 계산
def lognormal_pdf(y, mu=0, sigma=1):
return math.exp(-(math.log(y) - mu)**2 / (2*sigma**2)) / (y * sigma * math.sqrt(2*math.pi))
print("\n검증 (로그정규 PDF 직접):")
for y in [0.5, 1.0, 2.0, 5.0]:
print(f"f_Y({y}) = {lognormal_pdf(y):.6f}")10.2 Step 2: scipy/numpy 구현 (실무 활용)
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
np.random.seed(42)
n = 100_000
# --- 변수변환: X ~ N(0,1), Y = X^2 ~ chi^2(1) ---
X = stats.norm.rvs(size=n)
Y = X**2
# 이론적 chi^2(1)과 비교
y_grid = np.linspace(0.01, 8, 200)
chi2_pdf = stats.chi2.pdf(y_grid, df=1)
fig, axes = plt.subplots(1, 2, figsize=(12, 4))
axes[0].hist(Y, bins=100, density=True, alpha=0.6, label="시뮬레이션")
axes[0].plot(y_grid, chi2_pdf, "r-", lw=2, label=r"$\chi^2(1)$ PDF")
axes[0].set_title(r"$Y = X^2$, $X \sim N(0,1)$")
axes[0].legend()
axes[0].set_xlim(0, 8)
# --- 확률 적분 변환 (PIT) ---
# X ~ Exp(2)의 관측값에 CDF 적용 → Uniform(0,1)이어야 함
X_exp = stats.expon.rvs(scale=0.5, size=n) # Exp(lambda=2), scale=1/lambda
U = stats.expon.cdf(X_exp, scale=0.5)
axes[1].hist(U, bins=50, density=True, alpha=0.6, label="PIT 결과")
axes[1].axhline(y=1, color="r", lw=2, label="Uniform(0,1)")
axes[1].set_title("PIT: $U = F_X(X)$는 균등분포")
axes[1].legend()
plt.tight_layout()
plt.show()
# --- 역변환 시뮬레이션: Uniform → Exponential ---
U_sim = np.random.uniform(0, 1, n)
lam = 2.0
X_sim = -np.log(U_sim) / lam # 역변환: F^{-1}(u) = -log(u)/lambda
print(f"역변환 시뮬레이션 (Exp({lam})):")
print(f" 이론 평균 = {1/lam:.4f}, 시뮬레이션 = {X_sim.mean():.4f}")
print(f" 이론 분산 = {1/lam**2:.4f}, 시뮬레이션 = {X_sim.var():.4f}")
# --- MGF로 분포 확인: 독립 정규의 합 ---
X1 = stats.norm.rvs(loc=3, scale=2, size=n)
X2 = stats.norm.rvs(loc=7, scale=1, size=n)
S = X1 + X2
print(f"\n독립 정규의 합 X1 + X2:")
print(f" 이론: N({3+7}, {4+1})")
print(f" 시뮬레이션 평균 = {S.mean():.2f} (이론: 10)")
print(f" 시뮬레이션 분산 = {S.var():.2f} (이론: 5)")11 관련 주제
선행 지식
- 확률론 개요 — 확률 공간, 확률변수, 분포 함수의 전체 조감
- 확률변수 — 확률변수의 정의, PMF, PDF, CDF
- 분포 함수 — CDF의 완전한 이론, 확률 적분 변환
- 밀도 함수와 질량 함수 — PDF/PMF 존재 조건, 커널 표현
- 변환과 기대값 개요 — Ch.2 전체 조감
후속 주제
- Moment Generating Function — MGF의 정의와 적률 계산
- 주요 분포의 밀도 함수 — 변환으로 유도되는 분포들의 카탈로그
- MLE와 통계적 편향 — MLE의 불변성(invariance): \(g(\hat{\theta}_{MLE})\) 는 \(g(\theta)\) 의 MLE
- 수렴 이론 — 연속 매핑 정리, Delta method의 이론적 기반
- Monte Carlo Simulation — 역변환법의 실무 구현
관련 개념
참고 교재
- Casella, G. & Berger, R.L. (2002). Statistical Inference (2nd Ed.), Ch.2.1. Cengage.