1 개요
단변량 모형(univariate model)은 하나의 확률변수만 다룬다. 그러나 현실의 실험에서 단 하나의 숫자만 관측하는 경우는 드물다. 건강 조사에서는 체중, 키, 혈압, 체온을 동시에 측정하고, 임상시험에서는 처치군과 반응 변수를 함께 기록한다. 이처럼 여러 확률변수를 동시에 다루는 모형이 다변량 모형(multivariate model)이다 (Casella & Berger, 2002, Ch.4).
왜 단변량만으로는 부족한가? 예를 들어, 키의 분포와 체중의 분포를 각각 안다고 해도, 특정 키를 가진 사람의 체중이 어떻게 분포하는지는 알 수 없다. 키가 클 때 체중도 큰 경향이 있는지, 아니면 무관한지는 각 변수의 개별 분포(주변분포)만으로는 파악할 수 없고, 두 변수의 결합분포가 필요하다.
이 포스트는 Casella & Berger Chapter 4의 전체 흐름을 조감하는 개요(overview)이다. 각 주제의 핵심 정의와 직관을 제시하고, 주제 간의 논리적 연결을 밝힌다. 심층 내용은 후속 개별 포스트에서 다룬다.
Ch.4의 구조는 다음과 같다:
결합분포 & 주변분포 (§4.1)
↓
조건부분포 & 독립성 (§4.2)
↓
이변량 변환 (§4.3)
↓
계층모형 & 혼합분포 (§4.4)
↓
공분산 & 상관계수 (§4.5)
↓
다변량 분포 (§4.6)
↓
부등식 (§4.7) → 별도 포스트: 78번
2 결합분포와 주변분포 (Joint and Marginal Distributions)
2.1 확률벡터의 정의
\(n\) 차원 확률벡터(random vector)란 표본공간 \(S\) 에서 \(\mathbb{R}^n\) 으로의 함수이다.
2차원의 경우, 표본공간의 각 원소에 순서쌍 \((x, y)\) 를 대응시키면 이변량 확률벡터 \((X, Y)\) 가 된다.
2.2 결합 PMF / PDF
이산 확률벡터의 경우 (Casella & Berger, 2002, Definition 4.1.3):
\[ f(x, y) = P(X = x, Y = y) \]
연속 확률벡터의 경우:
\[ P((X, Y) \in A) = \iint_A f(x, y) \, dx \, dy \]
결합분포는 두 변수의 동시적 확률 구조를 완전히 기술한다. 여기서 “완전히”라 함은, 결합분포를 알면 각 변수의 개별 분포(주변분포)와 변수 간 관계(조건부분포)를 모두 유도할 수 있다는 의미이다.
2.3 주변분포 (Marginal Distribution)
결합분포에서 한 변수를 적분(연속) 또는 합산(이산)하여 제거하면 나머지 변수의 분포를 얻는다:
\[ f_X(x) = \int_{-\infty}^{\infty} f(x, y) \, dy, \quad f_Y(y) = \int_{-\infty}^{\infty} f(x, y) \, dx \]
직관적으로, 주변분포는 “다른 변수의 값에 관계없이” 한 변수가 어떻게 분포하는지를 나타낸다. 결합 PMF를 테이블로 표현하면, 주변 PMF는 테이블의 행 합계 또는 열 합계에 해당한다 — 이것이 “marginal”(여백)이라는 이름의 유래이다.
2.4 핵심 관계: 결합 → 주변 (역방향은 불가)
결합분포에서 주변분포를 유도하는 것은 항상 가능하다. 그러나 주변분포만으로 결합분포를 복원하는 것은 일반적으로 불가능하다.
직관적 비유: 결합분포는 “전체 사진”이고 주변분포는 “가로축 그림자와 세로축 그림자”이다. 전체 사진을 알면 그림자를 쉽게 그릴 수 있지만, 그림자 두 개만 보고 원래 사진을 복원할 수는 없다. 같은 그림자를 만드는 전혀 다른 사진이 무한히 많기 때문이다.
수학적으로: 같은 주변분포 \(f_X(x)\) , \(f_Y(y)\) 를 가지면서 서로 다른 결합분포 \(f(x, y)\) 가 무한히 존재할 수 있다. 결합분포는 주변분포보다 더 많은 정보 – 즉, 변수 간 관계에 대한 정보 – 를 담고 있으며, 적분/합산 과정에서 이 관계 정보가 소실된다.
3 조건부분포와 독립성 (Conditional Distributions and Independence)
3.1 조건부분포
\(f_X(x) > 0\) 일 때, \(X = x\) 가 주어졌을 때 \(Y\) 의 조건부 PDF/PMF는:
\[ f(y|x) = \frac{f(x, y)}{f_X(x)} \]
조건부분포는 “한 변수의 값을 알 때, 다른 변수의 불확실성이 어떻게 바뀌는가”를 기술한다. 예를 들어, 키가 73인치인 사람의 체중 분포는 키가 41인치인 사람의 체중 분포와 다를 것이다 (Casella & Berger, 2002, Ch.4).
3.2 조건부 기댓값
\(f(y|x)\) 는 그 자체로 합법적인 PDF/PMF이므로, 이를 사용하여 조건부 기댓값을 정의한다:
\[ E[g(Y)|x] = \int g(y) f(y|x) \, dy \]
\(E[Y|X]\) 는 \(X\) 의 함수이며, 따라서 그 자체가 확률변수이다. 이것이 전체 기대값의 법칙(law of total expectation)으로 이어진다.
3.3 독립성
\(X\) 와 \(Y\) 가 독립(independent)이란, 결합분포가 주변분포의 곱으로 분해되는 것이다:
\[ f(x, y) = f_X(x) \cdot f_Y(y) \quad \text{모든 } (x, y) \text{ 에 대해} \]
독립성의 의미: \(X\) 의 값을 아는 것이 \(Y\) 의 분포에 대한 정보를 전혀 주지 않는다. 동치적으로, \(f(y|x) = f_Y(y)\) 이다. 독립성은 결합분포를 주변분포만으로 완전히 복원할 수 있는 유일한 경우이다.
3.4 독립 vs 무상관
독립이면 반드시 무상관( \(\text{Cov}(X, Y) = 0\) )이다. 그러나 무상관이라고 독립은 아니다.
직관적 설명: 무상관은 “직선으로 그은 관계가 없다”는 의미이고, 독립은 “모든 형태의 관계가 없다”는 의미이다. 예를 들어 \(X \sim N(0, 1)\) 이고 \(Y = X^2\) 이면, \(X\) 와 \(Y\) 사이에 명백히 관계가 있다( \(Y\) 는 \(X\) 에 의해 완전히 결정된다). 그러나 \(E[XY] = E[X^3] = 0\) 이므로 공분산은 0이다. 이는 \(X\) 와 \(X^2\) 의 관계가 대칭적인 포물선이어서, 양수 구간과 음수 구간의 기여가 서로 상쇄되기 때문이다.
수학적으로: 무상관은 선형 관계의 부재만 의미하고, 독립은 모든 함수적 관계의 부재를 의미한다. \(\text{Cov}(X, Y) = 0\) 은 \(E[XY] = E[X]E[Y]\) 만 의미하지만, 독립은 \(E[g(X)h(Y)] = E[g(X)]E[h(Y)]\) 가 모든 함수 \(g\) , \(h\) 에 대해 성립함을 의미한다.
4 이변량 변환 (Bivariate Transformations)
\((X, Y)\) 에 변환을 적용하여 \((U, V) = g(X, Y)\) 를 정의하면, 새로운 확률벡터의 분포를 구해야 한다.
4.1 야코비안 방법 (Jacobian Method)
연속인 경우, 변환 \((u, v) = g(x, y)\) 가 일대일이면:
\[ f_{U,V}(u, v) = f_{X,Y}(x(u,v), \, y(u,v)) \cdot |J^{-1}| \]
여기서 야코비안 행렬식은:
\[ J = \det \begin{pmatrix} \frac{\partial u}{\partial x} & \frac{\partial u}{\partial y} \\ \frac{\partial v}{\partial x} & \frac{\partial v}{\partial y} \end{pmatrix} \]
단변량에서 \(f_Y(y) = f_X(g^{-1}(y)) \cdot |dg^{-1}/dy|\) 이었던 것의 다변량 확장이다. 야코비안은 변환이 영역의 “넓이를 얼마나 늘이거나 줄이는지”를 측정한다.
4.2 대표적 응용
| 변환 | 목적 | 예시 |
|---|---|---|
| \(U = X + Y\) , \(V = X\) | 합의 분포 유도 | 독립 포아송의 합은 포아송 |
| \(U = X/Y\) , \(V = Y\) | 비율의 분포 유도 | F-분포, t-분포의 유도 |
| 극좌표 변환 | 정규분포 관련 | Box-Muller 변환 |
5 계층모형과 혼합분포 (Hierarchical Models and Mixture Distributions)
5.1 계층모형
계층모형은 복잡한 확률 구조를 단순한 조건부 모형의 층으로 분해하는 전략이다:
\[ X | Y \sim f(x|y), \quad Y \sim f_Y(y) \]
이 두 단계를 결합하면 \(X\) 의 주변분포를 얻는다:
\[ f_X(x) = \int f(x|y) \, f_Y(y) \, dy \]
5.2 예시: 이항-포아송 계층
곤충이 알을 낳고 각 알이 독립적으로 확률 \(p\) 로 생존한다고 하자 (Casella & Berger, 2002, Example 4.4.1). 알의 수 \(Y \sim \text{Poi}(\lambda)\) 이고 \(X|Y \sim \text{Bin}(Y, p)\) 이면:
\[ X \sim \text{Poi}(\lambda p) \]
계층적으로 사고하면 복잡한 주변분포가 간단해진다. \(E[X] = \lambda p\) 라는 결과도 자연스럽게 따라 나온다.
5.3 전체 기대값의 법칙과 전체 분산의 법칙
\[ E[X] = E[E[X|Y]] \]
이 정리를 반복 기대값의 법칙(law of iterated expectations) 또는 Adam’s law라고도 한다. 직관적으로: “내부 기대값에서 \(Y\) 를 고정하고 \(X\) 의 평균을 구한 뒤, 외부 기대값에서 \(Y\) 에 대해 다시 평균을 내면 전체 평균과 같다.”
분산 버전은:
\[ \text{Var}(X) = E[\text{Var}(X|Y)] + \text{Var}(E[X|Y]) \]
이것을 Eve’s law 또는 전체 분산의 법칙(law of total variance)이라 한다. 전체 분산은 그룹 내 분산의 평균(첫째 항) + 그룹 간 분산(둘째 항)으로 분해된다. ANOVA의 이론적 근거이다.
6 공분산과 상관계수 (Covariance and Correlation)
6.1 공분산
\[ \text{Cov}(X, Y) = E[(X - \mu_X)(Y - \mu_Y)] = E[XY] - E[X]E[Y] \]
공분산은 두 변수가 같은 방향으로 함께 변하는 경향을 측정한다. 양수이면 \(X\) 가 클 때 \(Y\) 도 큰 경향, 음수이면 반대 경향이다.
6.2 상관계수
\[ \rho_{XY} = \frac{\text{Cov}(X, Y)}{\sigma_X \sigma_Y} \]
코시-슈바르츠 부등식에 의해 \(|\rho| \leq 1\) 이 보장되며, 등호는 \(X\) 와 \(Y\) 가 완전한 선형 관계일 때만 성립한다.
6.3 합의 분산
\[ \text{Var}(X + Y) = \text{Var}(X) + \text{Var}(Y) + 2\text{Cov}(X, Y) \]
\(X\) 와 \(Y\) 가 독립이면 \(\text{Cov}(X, Y) = 0\) 이므로 분산이 단순히 합산된다. 독립이 아니면 공분산 항이 분산을 늘리거나(양의 상관) 줄인다(음의 상관).
6.4 공분산의 한계
공분산과 상관계수는 선형 관계만 포착한다. \(X\) 와 \(Y\) 사이에 강한 비선형 관계(예: 2차 함수, 주기 함수)가 있어도 상관계수는 0에 가까울 수 있다. 이 한계를 극복하기 위해 상호정보량(mutual information), 거리 상관(distance correlation) 등의 대안적 의존성 측도가 사용된다.
7 다변량 분포 (Multivariate Distributions)
7.1 \(n\) 차원 확률벡터
\((X_1, X_2, \ldots, X_n)\) 의 결합 PDF/PMF, 주변분포, 조건부분포, 독립성 개념은 2차원에서 \(n\) 차원으로 자연스럽게 확장된다.
7.2 다변량 정규분포
\(\mathbf{X} = (X_1, \ldots, X_n)^T \sim N(\boldsymbol{\mu}, \boldsymbol{\Sigma})\) 의 PDF는:
\[ f(\mathbf{x}) = \frac{1}{(2\pi)^{n/2} |\boldsymbol{\Sigma}|^{1/2}} \exp\!\left( -\frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^T \boldsymbol{\Sigma}^{-1} (\mathbf{x} - \boldsymbol{\mu}) \right) \]
여기서 \(\boldsymbol{\mu}\) 는 평균벡터, \(\boldsymbol{\Sigma}\) 는 공분산행렬이다.
다변량 정규분포가 통계학에서 특별한 위치를 차지하는 이유:
| 성질 | 내용 | 의미 |
|---|---|---|
| 주변분포 | 다변량 정규의 주변분포는 정규 | 부분집합만 봐도 정규 |
| 조건부분포 | 다변량 정규의 조건부분포는 정규 | 회귀분석의 이론적 기반 |
| 선형결합 | \(\mathbf{a}^T\mathbf{X}\) 는 정규 | 주성분분석의 기반 |
| 무상관 = 독립 | 정규분포에서 무상관이면 독립 | 다른 분포에서는 성립하지 않는 특수한 성질 |
마지막 성질이 특히 중요하다. 일반적으로 무상관은 독립을 보장하지 않지만, 다변량 정규분포에서는 무상관과 독립이 동치이다. 이 때문에 정규성 가정 하에서 상관계수만으로 독립성을 판단할 수 있다.
8 왜 다변량 확률변수가 중요한가
단변량 이론만으로는 현실의 데이터 분석이 불가능한 이유:
| 단변량 한계 | 다변량으로의 확장 | 실무 응용 |
|---|---|---|
| 변수 간 관계를 모형화할 수 없음 | 결합분포로 동시 구조 기술 | 회귀분석, 다변량 검정 |
| 조건부 추론 불가 | \(f(y|x)\) 로 예측 모형 구성 | 조건부 기대값 = 최적 예측 |
| 차원 축소 불가 | 공분산 구조 활용 | PCA, 요인분석 |
| 계층적 사고 불가 | \(X|Y\) , \(Y\) 의 분리 | 베이지안 추론, 혼합모형, EM |
9 응용 분야
| 분야 | Ch.4 개념 | 구체적 활용 |
|---|---|---|
| 회귀분석 | 조건부분포 \(f(Y|X)\) | \(E[Y|X]\) = 회귀함수, 최적 예측 |
| ANOVA | 전체 분산의 법칙 | 그룹 내 분산 + 그룹 간 분산 분해 |
| 베이지안 추론 | 계층모형 | 사전분포 → 가능도 → 사후분포 |
| 머신러닝 | 결합분포/독립성 | 나이브 베이즈: \(f(x_1, \ldots, x_p|y) = \prod f(x_j|y)\) |
| 차원 축소 | 공분산행렬 | PCA: \(\boldsymbol{\Sigma}\) 의 고유값 분해 |
| 혼합모형 | 혼합분포 | GMM: \(f(x) = \sum \pi_k f_k(x)\) |
| 인과추론 | 조건부 독립성 | \(X \perp Y | Z\) — 교란 변수 통제 |
10 코드 예시
10.1 Step 1: 순수 Python 구현 (원리 이해)
결합분포에서 주변분포와 조건부분포를 유도하는 과정을 직접 구현한다.
# 이산 결합 PMF 예시: 주사위 두 개
# X = 합, Y = |차이|
import itertools
joint_pmf = {}
for d1, d2 in itertools.product(range(1, 7), repeat=2):
x = d1 + d2
y = abs(d1 - d2)
joint_pmf[(x, y)] = joint_pmf.get((x, y), 0) + 1/36
# 주변분포 f_X(x) = sum_y f(x, y)
marginal_x = {}
for (x, y), p in joint_pmf.items():
marginal_x[x] = marginal_x.get(x, 0) + p
# 조건부분포 f(Y|X=7)
x_given = 7
print(f"주변분포 f_X({x_given}) = {marginal_x[x_given]:.4f}")
print(f"\n조건부분포 f(Y|X={x_given}):")
for (x, y), p in sorted(joint_pmf.items()):
if x == x_given:
cond_p = p / marginal_x[x_given]
print(f" f(Y={y}|X={x_given}) = {p:.4f} / {marginal_x[x_given]:.4f} = {cond_p:.4f}")
# 독립성 검정: f(x,y) == f_X(x) * f_Y(y)?
marginal_y = {}
for (x, y), p in joint_pmf.items():
marginal_y[y] = marginal_y.get(y, 0) + p
independent = True
for (x, y), p in joint_pmf.items():
product = marginal_x[x] * marginal_y[y]
if abs(p - product) > 1e-10:
independent = False
break
print(f"\nX와 Y는 독립인가? {independent}")
print("(주사위 합과 차이는 독립이 아니다)")10.2 Step 2: scipy/numpy 구현 (실무 활용)
다변량 정규분포의 핵심 성질을 확인한다.
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
np.random.seed(42)
# 2변량 정규분포
mu = np.array([2, 5])
Sigma = np.array([[1.0, 0.7],
[0.7, 2.0]])
# 표본 생성
samples = np.random.multivariate_normal(mu, Sigma, size=5000)
X, Y = samples[:, 0], samples[:, 1]
fig, axes = plt.subplots(1, 3, figsize=(14, 4))
# 1) 결합분포 산점도
ax = axes[0]
ax.scatter(X, Y, alpha=0.1, s=5)
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_title("Joint Distribution (scatter)")
ax.set_xlim(-2, 6)
ax.set_ylim(0, 10)
# 2) 주변분포
ax = axes[1]
ax.hist(X, bins=50, density=True, alpha=0.5, label="Marginal X")
ax.hist(Y, bins=50, density=True, alpha=0.5, label="Marginal Y")
x_grid = np.linspace(-2, 10, 200)
ax.plot(x_grid, stats.norm.pdf(x_grid, mu[0], np.sqrt(Sigma[0, 0])), 'b--', label="Theory X")
ax.plot(x_grid, stats.norm.pdf(x_grid, mu[1], np.sqrt(Sigma[1, 1])), 'r--', label="Theory Y")
ax.set_title("Marginal Distributions")
ax.legend(fontsize=8)
# 3) 조건부분포: Y|X ≈ 2
ax = axes[2]
mask = np.abs(X - 2.0) < 0.2
Y_cond = Y[mask]
ax.hist(Y_cond, bins=30, density=True, alpha=0.6, label=f"Y|X≈2 (n={mask.sum()})")
# 이론적 조건부분포 계산
rho = Sigma[0, 1] / np.sqrt(Sigma[0, 0] * Sigma[1, 1])
mu_cond = mu[1] + Sigma[1, 0] / Sigma[0, 0] * (2.0 - mu[0])
var_cond = Sigma[1, 1] - Sigma[1, 0]**2 / Sigma[0, 0]
y_grid = np.linspace(0, 10, 200)
ax.plot(y_grid, stats.norm.pdf(y_grid, mu_cond, np.sqrt(var_cond)), 'r-',
linewidth=2, label=f"Theory: N({mu_cond:.1f}, {var_cond:.2f})")
ax.set_title("Conditional Distribution Y|X=2")
ax.legend(fontsize=8)
plt.tight_layout()
plt.show()
print(f"상관계수 rho = {rho:.3f}")
print(f"조건부 평균 E[Y|X=2] = {mu_cond:.3f}")
print(f"조건부 분산 Var(Y|X=2) = {var_cond:.3f}")10.3 전체 기대값의 법칙 검증
계층모형에서 \(E[X] = E[E[X|Y]]\) 를 시뮬레이션으로 확인한다.
np.random.seed(42)
# 이항-포아송 계층: Y ~ Poi(lambda), X|Y ~ Bin(Y, p)
lam = 10.0
p = 0.3
n_sim = 100000
Y = np.random.poisson(lam, n_sim)
X = np.array([np.random.binomial(y, p) for y in Y])
# 직접 계산
E_X_direct = np.mean(X)
# 전체 기대값의 법칙: E[X] = E[E[X|Y]] = E[Y*p] = lambda*p
E_X_Y = Y * p # E[X|Y] = Y*p (이항분포의 평균)
E_X_iterated = np.mean(E_X_Y)
# 전체 분산의 법칙
Var_X_direct = np.var(X)
E_Var_XY = np.mean(Y * p * (1 - p)) # E[Var(X|Y)] = E[Yp(1-p)]
Var_E_XY = np.var(Y * p) # Var(E[X|Y]) = Var(Yp)
Var_X_iterated = E_Var_XY + Var_E_XY
print("=== 전체 기대값의 법칙 ===")
print(f" E[X] (직접) = {E_X_direct:.3f}")
print(f" E[E[X|Y]] (반복) = {E_X_iterated:.3f}")
print(f" 이론값 lambda*p = {lam * p:.3f}")
print(f"\n=== 전체 분산의 법칙 ===")
print(f" Var(X) (직접) = {Var_X_direct:.3f}")
print(f" E[Var(X|Y)] + Var(E[X|Y]) (분해) = {Var_X_iterated:.3f}")
print(f" 이론값 lambda*p(1-p) + lambda*p^2 = {lam*p*(1-p) + lam*p**2:.3f}")
print(f" = lambda*p = {lam*p:.3f}")11 Ch.4 주제별 후속 포스트 로드맵
이 개요 포스트에서 다룬 각 주제는 후속 개별 포스트에서 심층적으로 다룰 예정이다.
| 주제 | 핵심 내용 | 상태 |
|---|---|---|
| 결합분포와 주변분포 | 결합 CDF/PDF, 주변분포 유도, 연속·이산 사례 | 후속 예정 |
| 조건부분포와 독립성 | 조건부 기대값, 상호/쌍별 독립, 조건부 독립 | 후속 예정 |
| 이변량 변환 | 야코비안 방법, 순서통계량, 합/비율의 분포 | 후속 예정 |
| 계층모형과 혼합분포 | 전체 기대값/분산의 법칙, 혼합분포, EM | 후속 예정 |
| 공분산과 상관계수 | 공분산 성질, 상관계수 해석, 조건부 분산 | 후속 예정 |
| 다변량 정규분포 | 공분산행렬, 조건부/주변 정규성, 선형결합 | 후속 예정 |
| 확률 부등식과 항등식 | 코시-슈바르츠, 횔더, 젠센, 스타인 보조정리 | 포스트 78 |
12 관련 주제
선행 지식
후속 주제
- 확률 부등식과 항등식 — Ch.4.7 심층
- 확률 표본의 성질 — Ch.5로의 연결
- 충분통계량 — Ch.6 데이터 축소
관련 개념