1 개요
검정 도출 방법과 최강력 검정에서는 검정을 검정력 함수 \(\beta(\theta)\) 로 평가했다. 이 포스트에서는 같은 문제를 의사결정 이론의 시각으로 바라본다 (Casella & Berger, 2002, Ch.8 §8.3.5).
Ch.7.3.4에서 점추정량을 손실함수로 평가했던 것처럼, 가설검정도 손실함수와 위험함수로 평가할 수 있다. 핵심 발견은 단순하다: 검정의 위험함수는 검정력 함수의 선형 결합이다. 이 구조 덕분에 의사결정 이론이 기존 빈도주의 검정 이론을 흡수하면서 더 풍부한 평가 기준을 제공한다.
2 검정을 의사결정 문제로 바라보기
2.1 행동 공간
점추정에서는 \(\mathcal{A} = \Theta\) (모수 공간 전체가 행동 공간)였다. 가설검정은 훨씬 단순하다 — 선택 가능한 행동이 딱 두 가지이다.
\[ \mathcal{A} = \{a_0, a_1\} \]
- \(a_0\): \(H_0\) 채택 (귀무가설을 기각하지 않는다)
- \(a_1\): \(H_0\) 기각 (대립가설을 채택한다)
결정 규칙 \(\delta(\mathbf{x})\) 는 \(\mathcal{X} \to \{a_0, a_1\}\) 인 함수이다.
- 채택 영역: \(\{\mathbf{x} : \delta(\mathbf{x}) = a_0\}\)
- 기각 영역: \(\{\mathbf{x} : \delta(\mathbf{x}) = a_1\}\)
직관: 행동 공간이 두 점으로 줄어든 것이 검정을 추정보다 단순하게 만드는 이유이다. 어떤 추정량의 위험함수는 \(\theta\) 마다 다른 값을 취하는 복잡한 함수이지만, 검정의 위험함수는 오직 두 종류의 오류(1종, 2종)의 가중합으로 완전히 표현된다.
3 손실함수의 구조
3.1 오류의 분류
검정에서 발생 가능한 결과는 네 가지이다.
| 참값 | 결정 | 결과 | 손실 |
|---|---|---|---|
| \(\theta \in \Theta_0\) (\(H_0\) 참) | \(a_0\) (채택) | 올바른 결정 | 0 |
| \(\theta \in \Theta_0\) (\(H_0\) 참) | \(a_1\) (기각) | 1종 오류 (Type I) | \(c_I > 0\) |
| \(\theta \in \Theta_0^c\) (\(H_1\) 참) | \(a_0\) (채택) | 2종 오류 (Type II) | \(c_{II} > 0\) |
| \(\theta \in \Theta_0^c\) (\(H_1\) 참) | \(a_1\) (기각) | 올바른 결정 | 0 |
3.2 0-1 손실 (0-1 Loss)
가장 단순한 손실함수는 맞으면 0, 틀리면 1을 부여한다.
\[ L(\theta, a_0) = \begin{cases} 0 & \theta \in \Theta_0 \\ 1 & \theta \in \Theta_0^c \end{cases} \quad \text{및} \quad L(\theta, a_1) = \begin{cases} 1 & \theta \in \Theta_0 \\ 0 & \theta \in \Theta_0^c \end{cases} \]
직관: 0-1 손실은 “오류인가 아닌가”만 따진다. 1종 오류와 2종 오류를 동등하게 취급하며, 오류의 심각성 차이를 무시한다. 현실 문제에서는 두 오류의 비용이 매우 다른 경우가 많으므로, 0-1 손실은 이상화된 출발점이다.
3.3 일반화 0-1 손실 (Generalized 0-1 Loss)
두 오류의 비용을 다르게 설정한다.
\[ L(\theta, a_0) = \begin{cases} 0 & \theta \in \Theta_0 \\ c_{II} & \theta \in \Theta_0^c \end{cases} \quad \text{및} \quad L(\theta, a_1) = \begin{cases} c_I & \theta \in \Theta_0 \\ 0 & \theta \in \Theta_0^c \end{cases} \]
- \(c_I > 0\): 1종 오류(귀무 기각 오류)의 비용
- \(c_{II} > 0\): 2종 오류(귀무 채택 오류)의 비용
핵심 관찰: 절대적 비용 \(c_I\), \(c_{II}\) 가 아닌 비율 \(c_{II}/c_I\) 만이 결정에 실질적 영향을 미친다. \(c_I = c_{II}\) 이면 0-1 손실로 환원된다.
직관 — 왜 비율만 중요한가? 모든 비용을 두 배로 늘려도 최적 행동은 바뀌지 않는다. 예를 들어, “1종 오류 비용 = 신약 허가 취소 비용, 2종 오류 비용 = 효과 없는 신약 허가 비용”에서 비율이 중요한 것은 이 때문이다. 1종 오류가 10배 더 비싸면( \(c_I/c_{II} = 10\) ), 검정은 유의수준을 매우 낮게 설정해야 합리적이다.
4 위험함수 — 검정력 함수와의 관계
4.1 위험함수 도출
일반화 0-1 손실 하에서, 검정 \(\delta\) 의 위험함수는
\[ R(\theta, \delta) = \begin{cases} c_I \, \beta(\theta) & \theta \in \Theta_0 \\ c_{II} \left(1 - \beta(\theta)\right) & \theta \in \Theta_0^c \end{cases} \]
여기서 \(\beta(\theta) = P_\theta(\mathbf{X} \in R)\) 는 검정력 함수이다.
유도: 임의의 \(\theta\) 에서 손실은 \(L(\theta, a_0)\) 또는 \(L(\theta, a_1)\) 두 값만 가능하다. 따라서
\[ R(\theta, \delta) = L(\theta, a_0) P_\theta(\delta(\mathbf{X}) = a_0) + L(\theta, a_1) P_\theta(\delta(\mathbf{X}) = a_1) \]
\(\theta \in \Theta_0\) 이면 \(L(\theta, a_0) = 0\), \(L(\theta, a_1) = c_I\) 이고 \(P_\theta(\delta = a_1) = \beta(\theta)\) 이므로:
\[ R(\theta, \delta) = 0 \cdot (1-\beta(\theta)) + c_I \cdot \beta(\theta) = c_I \beta(\theta) \]
\(\theta \in \Theta_0^c\) 이면 \(L(\theta, a_0) = c_{II}\), \(L(\theta, a_1) = 0\) 이고 \(P_\theta(\delta = a_0) = 1-\beta(\theta)\) 이므로:
\[ R(\theta, \delta) = c_{II} \cdot (1-\beta(\theta)) + 0 \cdot \beta(\theta) = c_{II}(1-\beta(\theta)) \]
4.2 직관: 위험함수의 의미
이 공식이 말하는 것을 해석하면:
- \(H_0\) 영역 \((\theta \in \Theta_0)\): 위험 \(= c_I \times\)(1종 오류율). \(c_I\) 가 클수록 기각을 신중하게 해야 한다.
- \(H_1\) 영역 \((\theta \in \Theta_0^c)\): 위험 \(= c_{II} \times\)(2종 오류율 $= 1 - $ 검정력). \(c_{II}\) 가 클수록 검정력을 높여야 한다.
왜 위험함수가 \(\theta = \theta_0\) 에서 불연속인가?
\(\theta\) 가 \(\Theta_0\) 에서 \(\Theta_0^c\) 로 넘어가는 경계에서 위험 공식이 \(c_I \beta(\theta)\) 에서 \(c_{II}(1-\beta(\theta))\) 로 바뀐다. 두 식은 \(\theta = \theta_0\) 에서 일반적으로 다른 값을 가지므로, 위험함수는 이 지점에서 점프(불연속) 를 가진다 — 심지어 검정력 함수 \(\beta(\theta)\) 가 \(\theta_0\) 에서 연속이더라도.
5 일반 손실함수로의 확장
5.1 비대칭 연속 손실
0-1 손실은 오류의 심각성이 \(\theta\) 위치에 무관하다고 가정한다. 하지만 \(H_0: \theta \geq \theta_0\) vs \(H_1: \theta < \theta_0\) 에서, \(\theta\) 가 \(\theta_0\) 보다 훨씬 클 때 \(H_0\) 를 기각하는 것(1종 오류)은 \(\theta\) 가 \(\theta_0\) 에 아주 가까울 때보다 훨씬 더 큰 실수이다.
이를 반영하는 손실함수 (식 8.3.13):
\[ L(\theta, a_0) = \begin{cases} 0 & \theta \geq \theta_0 \\ b(\theta_0 - \theta) & \theta < \theta_0 \end{cases} \quad \text{및} \quad L(\theta, a_1) = \begin{cases} c(\theta - \theta_0) & \theta \geq \theta_0 \\ 0 & \theta < \theta_0 \end{cases} \]
여기서 \(b, c > 0\) 는 양의 상수이다.
직관: \(|\theta - \theta_0|\) 이 클수록 손실이 커진다. \(\theta\) 가 \(\theta_0\) 에서 멀리 떨어진 방향으로 잘못된 결정을 내리는 것이 더 비싼 실수임을 자동으로 반영한다.
\(H_0\): 신약이 콜레스테롤을 낮추지 않는다 (\(\theta \geq \theta_0\))
\(H_1\): 신약이 콜레스테롤을 낮춘다 (\(\theta < \theta_0\))
\(\theta\) 가 \(\theta_0\) 보다 훨씬 크면 (콜레스테롤이 매우 높은 상태), 이 약을 허가하는 것(1종 오류)은 심장병 위험이 높은 환자들에게 무효 약을 투여하는 결과를 낳는다. 손실이 \(\theta\) 에 비례해야 하는 이유가 여기 있다.
5.2 일반 손실의 위험함수
어떤 손실함수 \(L(\theta, a_0)\), \(L(\theta, a_1)\) 에 대해서도 위험함수는 동일한 구조를 유지한다 (식 8.3.14):
\[ R(\theta, \delta) = L(\theta, a_0)(1 - \beta(\theta)) + L(\theta, a_1)\beta(\theta) \]
결론: 손실함수가 아무리 복잡해도, 검정의 위험은 검정력 함수 \(\beta(\theta)\) 를 통해서만 나타난다. 즉, 검정력 함수를 완전히 알면 임의의 손실 하에서의 위험을 계산할 수 있다.
6 예시: UMP 검정의 위험함수
설정: \(X_1, \ldots, X_n \overset{\text{iid}}{\sim} N(\mu, \sigma^2)\), \(\sigma^2\) 알려짐.
\(H_0: \theta \geq \theta_0\) vs \(H_1: \theta < \theta_0\).
UMP 수준 \(\alpha\) 검정: \((\bar{X} - \theta_0)/(\sigma/\sqrt{n}) < -z_\alpha\) 이면 \(H_0\) 기각.
검정력 함수:
\[ \beta(\theta) = P_\theta\!\left(Z < -z_\alpha - \frac{\theta - \theta_0}{\sigma/\sqrt{n}}\right), \quad Z \sim N(0,1) \]
일반화 0-1 손실 \(c_I = 8\), \(c_{II} = 3\), \(\alpha = 0.10\) 하에서의 위험함수:
\[ R(\theta, \delta) = \begin{cases} 8 \cdot \beta(\theta) & \theta \geq \theta_0 \\ 3 \cdot (1 - \beta(\theta)) & \theta < \theta_0 \end{cases} \]
위험함수의 형태 해석:
- \(\theta \gg \theta_0\): \(H_0\) 가 명백히 참인 상황. \(\beta(\theta) \approx 0\) 이므로 위험 \(\approx 0\). 검정이 \(H_0\) 를 거의 기각하지 않는다.
- \(\theta = \theta_0\): 경계. \(\beta(\theta_0) = P(Z < -z_\alpha) = \alpha = 0.10\) 이므로 \(H_0\) 영역에서 위험 \(= 8 \times 0.10 = 0.8\).
- \(\theta \ll \theta_0\): \(H_1\) 이 명백히 참인 상황. \(\beta(\theta) \approx 1\) 이므로 \(H_1\) 영역에서 위험 \(= 3 \times (1-1) \approx 0\).
- \(\theta = \theta_0\) 에서 불연속: \(H_0\) 영역 극한값 \(8 \times \alpha = 0.8\) vs \(H_1\) 영역 극한값 \(3 \times (1-\alpha) = 2.7\). \(c_I \neq c_{II}\) 이기 때문에 점프가 발생한다.
7 Ch.7.3.4 vs Ch.8.3.5 비교
Ch.7.3.4 (점추정 손실함수 최적성)와 Ch.8.3.5 (검정 손실함수 최적성)를 나란히 비교하면 공통 구조와 차이가 명확히 드러난다.
| 항목 | Ch.7 (점추정) | Ch.8 (가설검정) |
|---|---|---|
| 행동 공간 \(\mathcal{A}\) | \(\Theta\) (연속) | \(\{a_0, a_1\}\) (이산) |
| 대표 손실 | 제곱 오차 \((a-\theta)^2\) | 0-1 손실, 일반화 0-1 손실 |
| 위험함수 형태 | \(E_\theta[L(\theta, \delta(\mathbf{X}))]\) — 복잡한 함수 | \(\beta(\theta)\) 의 선형 결합 — 단순한 구조 |
| 최적성 개념 | 허용성, 미니맥스, 베이즈 위험 | 동일하게 적용 가능 |
| 주된 평가 도구 | MSE (제곱 손실) / Cramer-Rao | 검정력 함수 \(\beta(\theta)\) |
7.1 직관: 왜 검정이 더 단순한가
점추정에서는 행동 공간이 실수 전체이므로 어떤 \(a\) 를 선택하느냐에 따라 손실이 연속적으로 변한다. 반면, 검정에서는 행동이 “기각” 또는 “채택” 둘 뿐이다. 이 이진 구조 덕분에 위험함수가 \(\beta(\theta)\) 로 완전히 요약된다.
바꿔 말하면: 검정을 잘 한다는 것 = 검정력 함수를 잘 설계한다는 것. 이것이 Neyman-Pearson 보조정리와 UMP 검정이 검정력 함수를 핵심 도구로 쓰는 이유를 의사결정 이론이 사후적으로 정당화한다.
8 손실 가중치와 최적 유의수준
일반화 0-1 손실은 “어떤 \(\alpha\) 를 선택해야 하는가”라는 오래된 질문에도 답을 준다.
베이즈 위험을 최소화하는 최적 검정은 사전분포 \(\pi(\theta)\) 와 손실 비율 \(c_{II}/c_I\) 에 의존한다. 이를 직관적으로 보면:
- \(c_{II}/c_I\) 가 크면 (2종 오류가 더 비싸다): 검정력을 높이기 위해 \(\alpha\) 를 크게 설정하는 것이 합리적이다.
- \(c_{II}/c_I\) 가 작으면 (1종 오류가 더 비싸다): \(\alpha\) 를 작게 설정해 1종 오류를 억제해야 한다.
- 규제 기관의 관행 \(\alpha = 0.05\) 는 이 비율을 암묵적으로 가정하는 것이다.
\(\alpha = 0.05\) 의 의사결정 이론적 해석: 이것은 “1종 오류의 비용이 2종 오류 비용보다 약 19배 크다는 암묵적 가정”에 해당한다 (특정 균등 사전 하에서). 이 가정이 내 문제에 맞는지 항상 점검해야 한다.
9 코드 예시
9.1 Step 1: 위험함수 계산 — 일반화 0-1 손실
import math
def power_function(theta, theta_0, sigma, n, alpha):
"""단측 정규 검정의 검정력: H0: theta >= theta_0 vs H1: theta < theta_0"""
z_alpha = 1.2816 # z_{0.10}
z = -z_alpha - (theta - theta_0) / (sigma / math.sqrt(n))
# 표준정규 CDF 근사
return normal_cdf(z)
def normal_cdf(x):
"""표준정규 누적분포함수 (근사)"""
return 0.5 * (1 + math.erf(x / math.sqrt(2)))
def risk_function(theta, theta_0, sigma, n, alpha, c_I, c_II):
"""일반화 0-1 손실 하에서의 위험함수"""
beta = power_function(theta, theta_0, sigma, n, alpha)
if theta >= theta_0:
return c_I * beta
else:
return c_II * (1 - beta)
# 설정
theta_0 = 0.0
sigma = 1.0
n = 10
alpha = 0.10
c_I = 8
c_II = 3
print(f"=== 위험함수: c_I={c_I}, c_II={c_II}, alpha={alpha} ===\n")
print(f"{'theta':>8s} | {'beta(theta)':>12s} | {'R(theta, delta)':>16s} | {'영역':>10s}")
print("-" * 56)
for theta in [-3, -2, -1, -0.5, 0, 0.5, 1, 2, 3]:
beta = power_function(theta, theta_0, sigma, n, alpha)
risk = risk_function(theta, theta_0, sigma, n, alpha, c_I, c_II)
region = "H0 영역" if theta >= theta_0 else "H1 영역"
print(f" {theta:6.1f} | {beta:12.4f} | {risk:16.4f} | {region:>10s}")
print(f"\n--- theta=0 경계에서의 불연속 ---")
eps = 1e-6
theta_left = theta_0 - eps
theta_right = theta_0 + eps
r_left = risk_function(theta_left, theta_0, sigma, n, alpha, c_I, c_II)
r_right = risk_function(theta_right, theta_0, sigma, n, alpha, c_I, c_II)
print(f" H1 극한 (theta→0-): {r_left:.4f}")
print(f" H0 극한 (theta→0+): {r_right:.4f}")
print(f" 점프 크기: {abs(r_right - r_left):.4f}")
print(f" 이론값 H0: c_I * alpha = {c_I * alpha:.4f}")
print(f" 이론값 H1: c_II * (1-alpha) = {c_II * (1-alpha):.4f}")9.2 Step 2: 비율 \(c_{II}/c_I\) 에 따른 최적 유의수준 탐색
import numpy as np
from scipy.stats import norm
from scipy.optimize import minimize_scalar
def bayes_risk(alpha, theta_0, sigma, n, c_I, c_II, prior_mean=0, prior_std=2):
"""
균등 사전 근사: N(theta_0, prior_std^2) 하에서 베이즈 위험
H0: theta >= theta_0, H1: theta < theta_0
"""
# 수치 적분 (이산화)
thetas = np.linspace(theta_0 - 4*prior_std, theta_0 + 4*prior_std, 500)
d_theta = thetas[1] - thetas[0]
prior = norm.pdf(thetas, prior_mean, prior_std)
prior /= prior.sum() * d_theta # 정규화
z_alpha = norm.ppf(1 - alpha)
total_risk = 0
for th, p in zip(thetas, prior):
beta = norm.cdf(-z_alpha - (th - theta_0) / (sigma / np.sqrt(n)))
if th >= theta_0:
risk = c_I * beta
else:
risk = c_II * (1 - beta)
total_risk += risk * p * d_theta
return total_risk
sigma, n = 1.0, 10
print("=== 비율 c_II/c_I에 따른 최적 유의수준 ===\n")
print(f"{'c_I':>5s} | {'c_II':>5s} | {'c_II/c_I':>10s} | {'최적 alpha':>12s} | {'해석':>20s}")
print("-" * 65)
ratios = [(1, 1), (1, 5), (1, 10), (1, 19), (5, 1), (10, 1)]
for c_I, c_II in ratios:
res = minimize_scalar(
lambda a: bayes_risk(a, 0, sigma, n, c_I, c_II),
bounds=(0.001, 0.5), method='bounded'
)
opt_alpha = res.x
ratio = c_II / c_I
if ratio > 1:
interpretation = "2종 오류 비쌈 → alpha 높임"
elif ratio < 1:
interpretation = "1종 오류 비쌈 → alpha 낮춤"
else:
interpretation = "동등 → 중간 alpha"
print(f" {c_I:3d} | {c_II:3d} | {ratio:10.1f} | {opt_alpha:12.4f} | {interpretation:>20s}")
print(f"\n관행적 alpha=0.05는 암묵적으로 c_I >> c_II를 가정")10 Ch.7 손실함수 최적성과의 연결
Ch.7 손실함수 최적성에서 점추정의 의사결정 이론 전반을 다루었다. 두 장의 관계를 정리하면:
- 공통 구조: 손실함수 → 위험함수 → 허용성/미니맥스/베이즈 기준으로 추정량(검정) 평가
- Ch.7 고유: 연속 행동 공간, MSE = 제곱 손실의 위험, 편향-분산 트레이드오프, Stein 손실
- Ch.8 고유: 이진 행동 공간, 위험 = \(\beta(\theta)\) 의 선형 결합, 유의수준의 의사결정 이론적 해석
11 관련 주제
선행 지식
- 검정 평가 — 검정력 함수, UMP, Neyman-Pearson
- 최강력 검정 — NP 보조정리, MLR, Karlin-Rubin
- 손실함수 최적성 (Ch.7.3.4) — 점추정에서의 의사결정 이론
- 베이즈 추정량 — 사후 기대 손실 최소화
상위 주제
관련 개념
- p-값의 이론적 기초 — p-값과 유의수준의 관계
- UI·IU 검정의 크기 — 복합 가설에서의 크기 제어
12 참고 문헌
- Casella, G. & Berger, R. L. (2002). Statistical Inference (2nd ed.). Duxbury. Chapter 8, Section 8.3.5.
- Berger, J. O. (1985). Statistical Decision Theory and Bayesian Analysis (2nd ed.). Springer.
- Vardeman, S. B. (1987). Comment. Journal of the American Statistical Association, 82, 130-131.