다변량 확률변수 개요 (Multiple Random Variables Overview)

결합분포, 주변분포, 조건부분포, 독립성, 이변량 변환, 계층모형, 공분산, 다변량 정규분포

현실의 데이터는 하나의 변수만으로 구성되지 않는다. 다변량 확률변수의 결합분포에서 출발하여 주변분포, 조건부분포, 독립성, 이변량 변환, 계층모형과 혼합분포, 공분산과 상관계수, 그리고 다변량 정규분포까지의 이론적 흐름을 개관한다.

Statistics
저자

Kwangmin Kim

공개

2026년 03월 30일

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\) 차원 확률벡터 (Casella & Berger, 2002, Definition 4.1.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 조건부분포

정의: 조건부 PMF/PDF (Casella & Berger, 2002, Definitions 4.2.1, 4.2.3)

\(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 독립성

정의: 독립성 (Independence)

\(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 전체 기대값의 법칙과 전체 분산의 법칙

정리: 전체 기대값의 법칙 (Casella & Berger, 2002, Theorem 4.4.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 관련 주제

선행 지식

후속 주제

관련 개념

Subscribe

Enjoy this blog? Get notified of new posts by email: