기대값 vs 실현값 (Expected Value vs Realized Value)

E[X]와 X(ω) — 확률변수를 숫자로 만드는 실험의 순간

E[X]는 분포에 대한 고정된 상수이고, X(ω)는 실험 후 얻은 숫자이다. 이 둘의 구분은 추정량과 추정값, 모평균과 표본 평균, 기대 손실과 경험 손실을 구분하는 통계학의 핵심 언어이다.

Statistics
저자

Kwangmin Kim

공개

2026년 03월 29일

1 왜 구분이 중요한가

통계학을 처음 공부할 때 가장 자주 혼동하는 개념 쌍이 있다: 기대값 \(E[X]\)실현값 \(X(\omega)\). 이 둘은 다른 종류의 수학적 객체이다.

핵심 구분 — 한 줄로
  • \(E[X]\): 분포 전체에 대한 가중 평균 — 고정된 상수, 실험 전에도 계산 가능
  • \(X(\omega)\): 특정 결과 \(\omega\)에서의 값 — 확률변수의 실현, 실험 후에만 결정됨

이 구분이 없으면 다음 질문에 답할 수 없다:

  • “비편향 추정량이란 무엇인가?” → \(E[\hat{\theta}] = \theta\) 에서 \(\hat{\theta}\)는 확률변수, \(E[\hat{\theta}]\)는 상수
  • “표본 평균 \(\bar{X}\)와 모평균 \(\mu\)의 차이는?” → \(\mu = E[X]\)는 상수, \(\bar{X}\)는 확률변수, \(\bar{x}\)는 실현값
  • “모델의 기대 손실과 훈련 손실의 차이는?” → 기대 손실은 \(E[L]\), 훈련 손실은 \(\frac{1}{n}\sum_i L(x_i)\)

2 확률변수와 실현값

2.1 확률변수는 함수이다

Casella & Berger(Ch.1)에 따르면, 확률변수 \(X\)는 표본공간 \(\Omega\) 에서 실수로의 가측 함수이다:

\[ X : \Omega \to \mathbb{R}, \quad \omega \mapsto X(\omega) \]

  • \(\Omega\): 실험의 모든 가능한 결과의 집합
  • \(\omega \in \Omega\): 실험의 특정 결과 (하나의 시나리오)
  • \(X(\omega)\): 그 결과에 대응하는 숫자 — 실현값(realized value)

2.2 예시: 주사위

주사위를 던지는 실험에서 \(\Omega = \{1, 2, 3, 4, 5, 6\}\).

확률변수 \(X(\omega) = \omega\) 로 정의하면:

결과 \(\omega\) 실현값 \(X(\omega)\)
1 1
2 2
\(\vdots\) \(\vdots\)
6 6

던지기 전에는 “다음 주사위 값”이 불확실하다 — 이것이 확률변수 \(X\). 던진 후에 3이 나왔다면, \(X(\omega) = 3\) — 이것이 실현값 \(x = 3\).

확률변수 \(X\) 는 함수이다. 실현값 \(x\) 는 숫자이다.


3 기대값: 분포의 무게중심

3.1 정의

확률변수 \(X\)의 기대값은 분포 전체에 대한 가중 평균이다:

\[ E[X] = \begin{cases} \displaystyle\sum_{x \in \mathcal{X}} x \, p_X(x) & \text{이산형} \\[6pt] \displaystyle\int_{-\infty}^{\infty} x \, f_X(x) \, dx & \text{연속형} \end{cases} \]

\(E[X]\)는: - 실험 전에도 계산할 수 있다 (분포만 알면 됨) - 특정 결과 \(\omega\)에 의존하지 않는다 - 상수이다 — 무작위성이 없다

주사위 예시에서 \(E[X] = \frac{1+2+3+4+5+6}{6} = 3.5\). 주사위를 아직 던지지 않았어도 이 값은 정해져 있다.

3.2 E[X]는 실현되지 않을 수 있다

\(E[X] = 3.5\) 이지만, 실제 주사위를 던지면 3.5는 절대 나오지 않는다. 기대값은 반복 시행의 장기 평균을 의미하지, “이번 실험에서 나올 값”을 의미하지 않는다.

기대값의 확률론적 의미

강수의 법칙(Law of Large Numbers)에 따르면, iid 확률변수 \(X_1, X_2, \ldots\)에 대해:

\[ \bar{X}_n = \frac{1}{n} \sum_{i=1}^n X_i \xrightarrow{P} E[X] \quad (n \to \infty) \]

개별 실현값은 \(E[X]\)와 다를 수 있지만, 반복 시행의 평균은 \(E[X]\)에 수렴한다.


4 E[X] vs. X(ω): 차원이 다르다

개념 기호 종류 무작위성 언제 결정되나
기대값 \(E[X]\), \(\mu\) 상수 없음 분포가 정해지면
확률변수 \(X\) 함수 \(\Omega \to \mathbb{R}\) 있음
실현값 \(X(\omega) = x\) 숫자 없음 (이미 고정) 실험 후

\(E[X]\)\(X(\omega)\)의 차이는 오차(error) 또는 잡음(noise)이다:

\[ X(\omega) = E[X] + \underbrace{(X(\omega) - E[X])}_{\text{zero-mean noise}} \]

\(E[X(\omega) - E[X]] = E[X] - E[X] = 0\) 이므로, 실현값과 기대값의 차이는 평균이 0인 변동이다.


5 추정량 vs. 추정값

통계적 추론에서 이 구분이 가장 명확하게 드러난다.

5.1 추정량 (Estimator) = 확률변수

모수 \(\theta\) 를 추정하기 위해 표본 \(X_1, \ldots, X_n\) 의 함수를 정의한다:

\[ \hat{\theta} = T(X_1, X_2, \ldots, X_n) \]

\(X_i\)들이 확률변수이므로, \(\hat{\theta}\)확률변수이다. 표본을 뽑기 전에는 \(\hat{\theta}\)의 값이 결정되지 않는다.

5.2 추정값 (Estimate) = 실현값

실제 데이터 \(x_1, \ldots, x_n\) 이 관측되면:

\[ \hat{\theta}(\mathbf{x}) = T(x_1, x_2, \ldots, x_n) = \text{숫자} \]

이것이 실현된 추정값 — 하나의 고정된 숫자이다.

5.3 비편향성 (Unbiasedness)

비편향 추정량의 정의:

\[ E[\hat{\theta}] = \theta \]

여기서 \(E[\hat{\theta}]\)상수 \(\theta\)와 같아야 한다는 조건이다. \(\hat{\theta}\)가 확률변수이므로, 그것의 기대값(분포의 무게중심)이 참값 \(\theta\)와 일치해야 한다는 의미이다.

개별 추정값 \(\hat{\theta}(\mathbf{x})\)\(\theta\)와 다를 수 있다 — 비편향성은 평균적으로 맞힌다는 뜻이지, 매번 맞힌다는 뜻이 아니다.

흔한 오해

비편향 추정량이라도, 특정 표본에서의 추정값은 \(\theta\)와 다를 수 있다. 비편향성은 \(E[\hat{\theta}] = \theta\) — “반복 실험의 평균이 \(\theta\)”라는 장기적 성질이다.


6 표본 평균: E[X]의 추정

6.1 모평균 \(\mu = E[X]\): 상수

모집단 분포가 정해지면 \(\mu = E[X]\)는 고정된 상수이다. 관측하기 전에도 원리상 계산 가능하지만, 현실에서는 모집단 전체를 알 수 없으므로 추정이 필요하다.

6.2 표본 평균 \(\bar{X}_n\): 확률변수

크기 \(n\)의 iid 표본 \(X_1, \ldots, X_n\)에서:

\[ \bar{X}_n = \frac{1}{n} \sum_{i=1}^n X_i \]

\(\bar{X}_n\)확률변수이다 — 어떤 표본이 추출되느냐에 따라 값이 달라진다.

\[ E[\bar{X}_n] = \mu, \quad \text{Var}(\bar{X}_n) = \frac{\sigma^2}{n} \]

6.3 실현된 표본 평균 \(\bar{x}\): 숫자

실제 데이터 \(x_1, \ldots, x_n\)을 얻으면:

\[ \bar{x} = \frac{1}{n} \sum_{i=1}^n x_i = \text{숫자} \]

이것이 실현값 — 우리가 실제로 계산하는 숫자이다.

기호 의미 종류
\(\mu = E[X]\) 모평균 상수 (unknown)
\(\bar{X}_n\) 표본 평균 추정량 확률변수
\(\bar{x}\) 실현된 표본 평균 숫자

7 기대 손실 vs. 경험 손실

머신러닝에서 이 구분은 일반화(generalization) 문제의 핵심이다.

7.1 기대 손실 (Population Risk)

데이터 생성 분포 \(P(X, Y)\)에 대한 기대값:

\[ R(f) = E_{(X,Y) \sim P}[L(f(X), Y)] = \int L(f(x), y) \, dP(x, y) \]

이것이 우리가 최소화하고 싶은 진정한 목표이다. 하지만 \(P\)를 모르므로 직접 계산할 수 없다.

7.2 경험 손실 (Empirical Risk)

관측된 훈련 데이터 \((x_1, y_1), \ldots, (x_n, y_n)\)에서의 평균 손실:

\[ \hat{R}(f) = \frac{1}{n} \sum_{i=1}^n L(f(x_i), y_i) = \text{숫자} \]

\(\hat{R}(f)\)\(R(f)\)실현된 추정값이다.

7.3 일반화 오차 (Generalization Gap)

\[ R(f) - \hat{R}(f) = \underbrace{E[L]}_{\text{기대 손실}} - \underbrace{\frac{1}{n}\sum_i L(x_i, y_i)}_{\text{경험 손실}} \]

이 갭이 크면 과적합(overfitting) — 훈련 데이터의 실현값에만 맞추고, 기대값(새 데이터)에는 못 맞추는 상태이다.


8 실무 응용 분야

분야 기대값 \(E[X]\) 실현값 \(x\) 핵심 질문
A/B 테스트 모집단 전환율 \(p^*\) 관측된 전환율 \(\hat{p}\) 실현 차이가 기대 차이와 다른가?
금융 기대 수익률 \(E[R]\) 실현 수익률 \(r\) 예상치 못한 손실이 발생했는가?
품질관리 공정 평균 \(\mu\) 측정값 \(x_i\) 실현값이 관리 한계를 벗어나는가?
보험수리 기대 손해 \(E[\text{loss}]\) 실제 청구액 준비금이 충분한가?
ML 모델 기대 손실 \(R(f)\) 훈련 손실 \(\hat{R}(f)\) 일반화가 되는가?

9 코드 예시

9.1 Step 1: 순수 Python — 기대값 vs. 실현값 직접 계산

import random
import math

# 이산균등 분포: 주사위 (1~6)
# 기대값: E[X] = (1+2+3+4+5+6)/6 = 3.5
pmf = {1: 1/6, 2: 1/6, 3: 1/6, 4: 1/6, 5: 1/6, 6: 1/6}

# 기대값 계산 (이론적 상수 — 실험 전에 결정됨)
expected_value = sum(x * p for x, p in pmf.items())
print(f"E[X] = {expected_value:.4f}")  # 3.5000

# 실현값: 실험 1회
random.seed(42)
realized_once = random.choices(list(pmf.keys()), weights=list(pmf.values()))[0]
print(f"실현값 (1회): X(ω) = {realized_once}")  # 3.5와 다를 수 있음

# 실현값: 표본 평균 — n이 커질수록 E[X]에 수렴
for n in [10, 100, 1000, 10000]:
    sample = random.choices(list(pmf.keys()), weights=list(pmf.values()), k=n)
    sample_mean = sum(sample) / n
    print(f"n={n:>6}: x̄ = {sample_mean:.4f}  (E[X]와의 차이: {abs(sample_mean - expected_value):.4f})")
E[X] = 3.5000
실현값 (1회): X(ω) = 4
n=    10: x̄ = 3.3000  (E[X]와의 차이: 0.2000)
n=   100: x̄ = 3.5600  (E[X]와의 차이: 0.0600)
n=  1000: x̄ = 3.5020  (E[X]와의 차이: 0.0020)
n= 10000: x̄ = 3.4981  (E[X]와의 차이: 0.0019)

큰 수의 법칙(LLN): 표본 평균(실현값의 평균)은 \(n\) 이 커질수록 \(E[X] = 3.5\)에 수렴한다.

9.2 Step 2: numpy/scipy — 추정량 vs. 추정값의 표집 분포

import numpy as np
from scipy import stats

# 모집단: 정규분포 N(mu=5, sigma=2)
mu_true = 5.0
sigma_true = 2.0

np.random.seed(0)

# 추정량 X̄는 확률변수 — 표본마다 다른 실현값을 가짐
n = 30
n_simulations = 10000

sample_means = []  # 추정량 X̄의 실현값들
for _ in range(n_simulations):
    sample = np.random.normal(mu_true, sigma_true, n)
    x_bar = sample.mean()  # 실현된 표본 평균 (숫자)
    sample_means.append(x_bar)

sample_means = np.array(sample_means)

print("=== 추정량 X̄의 표집 분포 ===")
print(f"E[X̄] = {sample_means.mean():.4f}  (참값 μ = {mu_true})  ← 비편향성 확인")
print(f"Var(X̄) = {sample_means.var():.4f}  (이론값 σ²/n = {sigma_true**2/n:.4f})")
print()

# 단 하나의 표본에서의 실현값
single_sample = np.random.normal(mu_true, sigma_true, n)
x_bar_realized = single_sample.mean()
print(f"=== 특정 표본의 실현값 ===")
print(f"x̄ = {x_bar_realized:.4f}  (μ와의 차이: {abs(x_bar_realized - mu_true):.4f})")
print(f"이 값이 CI [mu-1.96*se, mu+1.96*se] 안에 있는가: "
      f"{'Yes' if abs(x_bar_realized - mu_true) < 1.96 * sigma_true / np.sqrt(n) else 'No'}")
=== 추정량 X̄의 표집 분포 ===
E[X̄] = 5.0012  (참값 μ = 5.0)  ← 비편향성 확인
Var(X̄) = 0.1327  (이론값 σ²/n = 0.1333)

=== 특정 표본의 실현값 ===
x̄ = 4.8231  (μ와의 차이: 0.1769)
이 값이 CI 안에 있는가: Yes

9.3 Step 3: ML 맥락 — 기대 손실 vs. 경험 손실

import numpy as np

# 데이터 생성 분포: Y = 2X + 1 + ε, ε ~ N(0, 1)
np.random.seed(1)
n_population = 100000  # 모집단 (매우 크게)
n_train = 50           # 훈련 표본

X_pop = np.random.uniform(0, 10, n_population)
eps_pop = np.random.normal(0, 1, n_population)
Y_pop = 2 * X_pop + 1 + eps_pop

# 모델: f(x) = 2x + 1 (참 모형을 안다고 가정)
def model(x):
    return 2 * x + 1

def mse(y_pred, y_true):
    return np.mean((y_pred - y_true) ** 2)

# 기대 손실 (population risk) — 모집단 전체에서 계산
expected_loss = mse(model(X_pop), Y_pop)
print(f"기대 손실 E[L] (population risk) = {expected_loss:.4f}")
# 이론값: E[(Y - f(X))²] = E[ε²] = Var(ε) = 1.0

# 경험 손실 (empirical risk) — 훈련 표본에서만 계산 (실현값)
X_train = np.random.uniform(0, 10, n_train)
Y_train = 2 * X_train + 1 + np.random.normal(0, 1, n_train)
empirical_loss = mse(model(X_train), Y_train)
print(f"경험 손실 R̂(f) (훈련 데이터) = {empirical_loss:.4f}")

# 일반화 갭
print(f"일반화 갭 = {abs(expected_loss - empirical_loss):.4f}")
print()

# 표본마다 경험 손실이 달라짐 (경험 손실도 확률변수의 실현값)
empirical_losses = []
for _ in range(1000):
    X_s = np.random.uniform(0, 10, n_train)
    Y_s = 2 * X_s + 1 + np.random.normal(0, 1, n_train)
    empirical_losses.append(mse(model(X_s), Y_s))

print(f"경험 손실의 평균 E[R̂] = {np.mean(empirical_losses):.4f}  (기대 손실과 비교: {expected_loss:.4f})")
print(f"경험 손실의 표준편차 = {np.std(empirical_losses):.4f}")
기대 손실 E[L] (population risk) = 0.9981
경험 손실 R̂(f) (훈련 데이터) = 1.0431
일반화 갭 = 0.0450

경험 손실의 평균 E[R̂] = 0.9984  (기대 손실과 비교: 0.9981)
경험 손실의 표준편차 = 0.2002

경험 손실은 기대 손실의 비편향 추정값이다 — 단 개별 실현값은 기대 손실과 다를 수 있다.


10 개념 정리

맥락 기대값 (상수) 추정량 (확률변수) 실현값 (숫자)
기본 \(E[X] = \mu\) \(\bar{X}_n\) \(\bar{x}\)
추정 \(\theta\) (모수) \(\hat{\theta} = T(\mathbf{X})\) \(\hat{\theta}(\mathbf{x})\)
ML \(R(f)\) (기대 손실) \(\hat{R}(f)\) (경험 손실 변수) 특정 훈련셋의 손실값
금융 \(E[R]\) (기대 수익) \(R\) (수익률 변수) \(r\) (실현 수익)

핵심 메시지: - 기대값 \(E[X]\): 분포에 내재된 상수, 실험과 무관하게 고정 - 확률변수 \(X\): 실험 결과를 숫자로 매핑하는 함수, 아직 불확실 - 실현값 \(x = X(\omega)\): 특정 실험 후 확정된 숫자, 더 이상 불확실하지 않음

이 세 개념의 구분은 비편향성, 일치성, 신뢰구간의 빈도론적 해석, 머신러닝의 일반화 이론 전반에 걸쳐 반복적으로 등장한다.


11 관련 주제

선행 지식

후속 주제

관련 개념

Subscribe

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