1 검정 도출 문제의 성격
가설검정 개요에서 검정을 평가하는 기준(검정력, 크기, UMP)을 다뤘다. 그 전에 풀어야 할 질문이 있다.
“어떤 기각역을 사용해야 하는가?”
이 장(Casella & Berger, 2002, §8.2)은 이 질문에 답하는 방법론을 다룬다. 검정 도출 방법으로 크게 세 가지가 있다:
- 우도비 검정(Likelihood Ratio Test, LRT): 가장 범용적. MLE 이론과 연결
- 베이즈 검정(Bayesian Test): 사전정보를 활용
- 합집합-교집합/교집합-합집합 검정(UI/IU Test): 복합 귀무가설에 특화
이 포스트는 LRT를 중심으로 상세히 전개하고, 나머지 방법은 개요를 제공한다.
2 우도비 검정 (Likelihood Ratio Test, LRT)
2.1 핵심 아이디어
우도함수 \(L(\theta | \mathbf{x}) = \prod_{i=1}^n f(x_i | \theta)\) 는 “모수 \(\theta\) 가 관측된 데이터 \(\mathbf{x}\) 를 생성했을 가능성”을 나타낸다.
\(H_0: \theta \in \Theta_0\) vs \(H_1: \theta \in \Theta_0^c\) 를 검정할 때 두 가지 최대화를 비교한다:
- 분자: \(\Theta_0\) 안에서 우도를 최대화 — 귀무가설이 허용하는 최선의 설명력
- 분모: 전체 모수 공간 \(\Theta\) 에서 우도를 최대화 — 제한 없는 최선의 설명력
이 비율이 작으면 (\(\lambda \approx 0\)), \(H_0\) 로 가능한 최선의 설명이 전체 최선과 크게 다르다는 뜻이다. 즉, \(H_0\) 는 데이터를 잘 설명하지 못한다 → 기각.
\[ \lambda(\mathbf{x}) = \frac{\sup_{\theta \in \Theta_0} L(\theta | \mathbf{x})}{\sup_{\theta \in \Theta} L(\theta | \mathbf{x})} = \frac{L(\hat{\theta}_0 | \mathbf{x})}{L(\hat{\theta} | \mathbf{x})} \]
- \(\hat{\theta}_0\): \(H_0\) 제약 하의 제한 MLE (restricted MLE)
- \(\hat{\theta}\): 제약 없는 비제한 MLE (unrestricted MLE)
성질: \(0 \leq \lambda(\mathbf{x}) \leq 1\) (분모 \(\geq\) 분자이므로)
기각역: \(\{\mathbf{x}: \lambda(\mathbf{x}) \leq c\}\), 단 \(0 \leq c \leq 1\)
비유: 두 가지 경우를 상상하자. 동전을 10번 던져 7번 앞면이 나왔다.
- \(H_0: p = 0.5\) 하에서 이 데이터의 우도: \(\binom{10}{7}(0.5)^{10}\)
- \(\hat{p} = 0.7\) (MLE) 하에서 이 데이터의 우도: \(\binom{10}{7}(0.7)^7(0.3)^3\)
비율이 작으면 (\(0.5\) 로 고정했을 때보다 \(0.7\) 로 추정했을 때 설명력이 훨씬 높으면) \(H_0\) 를 기각한다.
2.2 LRT 구성 절차
- 우도함수 \(L(\theta | \mathbf{x})\) 를 작성한다
- 비제한 MLE \(\hat{\theta}\) 를 구한다 (분모)
- \(H_0\) 제약 하의 제한 MLE \(\hat{\theta}_0\) 를 구한다 (분자)
- \(\lambda(\mathbf{x}) = L(\hat{\theta}_0|\mathbf{x}) / L(\hat{\theta}|\mathbf{x})\) 를 계산한다
- \(\lambda(\mathbf{x}) \leq c\) 를 더 단순한 검정통계량으로 변환한다
- 유의수준 \(\alpha\) 로부터 \(c\) 를 결정한다
3 예시 1: 정규분포 (분산 알려진 경우)
\(X_1, \ldots, X_n \overset{iid}{\sim} N(\theta, 1)\), \(H_0: \theta = \theta_0\) vs \(H_1: \theta \neq \theta_0\)
Step 1-2: 비제한 MLE
\[ L(\theta | \mathbf{x}) = (2\pi)^{-n/2} \exp\left[-\frac{1}{2}\sum_{i=1}^n (x_i - \theta)^2\right] \]
\(L\) 을 최대화하는 \(\hat{\theta} = \bar{x}\) (표본 평균).
Step 3: 제한 MLE
\(H_0\) 가 \(\theta = \theta_0\) 로 고정하므로 \(\hat{\theta}_0 = \theta_0\).
Step 4: LRT 통계량
\[ \lambda(\mathbf{x}) = \frac{L(\theta_0 | \mathbf{x})}{L(\bar{x} | \mathbf{x})} = \frac{\exp\left[-\frac{1}{2}\sum(x_i - \theta_0)^2\right]}{\exp\left[-\frac{1}{2}\sum(x_i - \bar{x})^2\right]} \]
항등식 \(\sum(x_i - \theta_0)^2 = \sum(x_i - \bar{x})^2 + n(\bar{x} - \theta_0)^2\) 을 이용하면:
\[ \lambda(\mathbf{x}) = \exp\left[-\frac{n(\bar{x} - \theta_0)^2}{2}\right] \]
Step 5: 기각역 단순화
\(\lambda(\mathbf{x}) \leq c\) 는
\[ \exp\left[-\frac{n(\bar{x} - \theta_0)^2}{2}\right] \leq c \iff |\bar{x} - \theta_0| \geq \sqrt{\frac{-2\log c}{n}} \]
따라서 LRT 기각역은 \(\{|\bar{X} - \theta_0| \geq c'\}\) 이다. 직관적으로도 자연스럽다: 표본 평균이 \(\theta_0\) 에서 멀면 기각.
Step 6: 크기 \(\alpha\) 결정
\(H_0\) 하에서 \(\sqrt{n}(\bar{X} - \theta_0) \sim N(0,1)\) 이므로:
\[ \alpha = P_{\theta_0}(|\bar{X} - \theta_0| \geq c') \implies c' = z_{\alpha/2} / \sqrt{n} \]
4 예시 2: 지수분포 (위치 모수)
\(X_1, \ldots, X_n \overset{iid}{\sim} \text{Exp}(\theta)\), pdf \(f(x|\theta) = e^{-(x-\theta)}\) \((x \geq \theta)\), \(H_0: \theta \leq \theta_0\) vs \(H_1: \theta > \theta_0\)
우도함수:
\[ L(\theta | \mathbf{x}) = \begin{cases} e^{-\sum x_i + n\theta} & \theta \leq x_{(1)} \\ 0 & \theta > x_{(1)} \end{cases} \]
\(L\) 은 \(\theta\) 에 대해 증가하므로 (단, \(\theta \leq x_{(1)}\) 조건 하에): - 비제한 MLE: \(\hat{\theta} = x_{(1)} = \min_i x_i\) - 제한 MLE: \(\hat{\theta}_0 = \min(x_{(1)}, \theta_0) = \begin{cases} x_{(1)} & x_{(1)} \leq \theta_0 \\ \theta_0 & x_{(1)} > \theta_0 \end{cases}\)
따라서:
\[ \lambda(\mathbf{x}) = \begin{cases} 1 & x_{(1)} \leq \theta_0 \\ e^{-n(x_{(1)} - \theta_0)} & x_{(1)} > \theta_0 \end{cases} \]
\(\lambda(\mathbf{x}) \leq c\) \((0 < c < 1)\) 는 \(x_{(1)} > \theta_0 - (\log c)/n\) 과 동치이다.
직관: \(x_{(1)}\) (최솟값)이 \(\theta_0\) 보다 많이 크면, 표본 전체가 \(\theta_0\) 보다 오른쪽에 있다는 뜻이므로 \(H_1: \theta > \theta_0\) 을 지지한다.
5 예시 3: 정규분포 (분산 모르는 경우) → t-검정 유도
\(X_1, \ldots, X_n \overset{iid}{\sim} N(\mu, \sigma^2)\), 둘 다 미지수. \(H_0: \mu \leq \mu_0\) vs \(H_1: \mu > \mu_0\) — \(\sigma^2\) 은 방해모수(nuisance parameter).
방해모수와 LRT: \(H_0\) 가 \(\mu\) 만 제약하므로 \(\sigma^2\) 은 자유롭게 최대화한다.
- 비제한 MLE: \(\hat{\mu} = \bar{x}\), \(\hat{\sigma}^2 = \frac{1}{n}\sum(x_i - \bar{x})^2\)
- 제한 MLE (\(\mu \leq \mu_0\)):
- \(\bar{x} \leq \mu_0\) 이면: \(\hat{\mu}_0 = \bar{x}\), \(\hat{\sigma}_0^2 = \hat{\sigma}^2\) → \(\lambda = 1\) (제약이 활성화되지 않음)
- \(\bar{x} > \mu_0\) 이면: \(\hat{\mu}_0 = \mu_0\), \(\hat{\sigma}_0^2 = \frac{1}{n}\sum(x_i - \mu_0)^2\)
\(\bar{x} > \mu_0\) 인 경우에만 기각이 발생하고, 이때
\[ \lambda(\mathbf{x}) = \frac{L(\mu_0, \hat{\sigma}_0^2 | \mathbf{x})}{L(\bar{x}, \hat{\sigma}^2 | \mathbf{x})} \]
대수 변환과 정리를 거치면 (\(t = (\bar{X} - \mu_0) / (S/\sqrt{n})\) 으로 정의):
\[ \lambda(\mathbf{x}) = \left(1 + \frac{t^2}{n-1}\right)^{-n/2} \]
\(\lambda(\mathbf{x}) \leq c\) 는 \(t \geq c'\) 와 동치이다. 즉, LRT는 t-검정을 유도한다.
정규분포에서 분산을 모르는 경우의 LRT는 자동으로 학생 t-통계량을 기각역으로 채택한다. t-검정은 자의적인 선택이 아니라, 우도 원리에서 자연스럽게 도출되는 최적 절차이다.
6 LRT와 충분통계량의 관계
\(T(\mathbf{X})\) 가 \(\theta\) 의 충분통계량이면, \(T\) 기반 LRT 통계량 \(\lambda^*(t)\) 와 전체 표본 \(\mathbf{X}\) 기반 LRT 통계량 \(\lambda(\mathbf{x})\) 는 동일하다:
\[ \lambda^*(T(\mathbf{x})) = \lambda(\mathbf{x}) \quad \forall\, \mathbf{x} \]
증명 아이디어: 인수분해 정리에 의해 \(f(\mathbf{x}|\theta) = g(T(\mathbf{x})|\theta) \cdot h(\mathbf{x})\). \(h(\mathbf{x})\) 는 \(\theta\) 에 무관하므로 우도비의 분자·분모에서 상쇄된다.
실무적 의미: LRT를 계산할 때 원시 표본 \(\mathbf{x}\) 전체를 다룰 필요가 없다. 충분통계량 \(T(\mathbf{x})\) 만으로 동일한 LRT를 구성할 수 있다.
예시에서 이미 확인했다: - 정규분포 예시 1에서: \(\bar{X}\) 가 충분통계량 → LRT는 \(|\bar{X} - \theta_0|\) 에만 의존 - 지수분포 예시 2에서: \(X_{(1)}\) 이 충분통계량 → LRT는 \(X_{(1)}\) 에만 의존
7 LRT의 점근 분포 (-2 log λ → χ²)
표본이 클 때 LRT 통계량의 로그 변환은 카이제곱 분포로 수렴한다.
\(H_0\) 가 참이고 정규성 조건이 만족되면, 자유도 \(= \dim(\Theta) - \dim(\Theta_0)\) 인 카이제곱 분포로 수렴한다:
\[ -2\log\lambda(\mathbf{X}) \overset{d}{\to} \chi^2_r, \quad r = \dim(\Theta) - \dim(\Theta_0) \]
이를 이용하면 어떤 분포에서도 대표본 근사로 LRT를 수행할 수 있다. 정확한 전개는 점근 가설검정 포스트를 참조한다.
직관: \(-2\log\lambda\) 가 0에 가까우면 (\(\lambda \approx 1\)) \(H_0\) 가 참임을 지지하고, 크면 기각한다. 점근적으로 이 값의 분포가 \(\chi^2_r\) 이므로 p-value를 계산할 수 있다.
8 베이즈 검정 (Bayesian Test)
베이즈 검정은 사전분포 \(\pi(\theta)\) 를 통해 사후 확률로 의사결정한다.
\[ \text{기각} \iff P(\theta \in \Theta_0 | \mathbf{x}) < P(\theta \in \Theta_0^c | \mathbf{x}) \]
즉, 데이터를 관측한 후 \(H_1\) 이 더 가능성 높다고 판단되면 \(H_0\) 를 기각한다.
정규분포 예시: \(X_1, \ldots, X_n \overset{iid}{\sim} N(\theta, \sigma^2)\), 사전 \(\theta \sim N(\mu, \tau^2)\), \(H_0: \theta \leq \theta_0\) 에서 사후분포도 정규:
\[ \pi(\theta | \bar{x}) \sim N\left(\frac{n\tau^2 \bar{x} + \sigma^2 \mu}{n\tau^2 + \sigma^2},\; \frac{\sigma^2\tau^2}{n\tau^2 + \sigma^2}\right) \]
\(\mu = \theta_0\) (사전에 \(H_0\), \(H_1\) 각각 0.5 확률) 이면, \(H_0\) 를 채택하는 조건은 \(\bar{X} \leq \theta_0\) 이다. 이는 빈도론 검정과 동일한 결론이지만, 해석이 다르다.
빈도론 vs 베이즈:
| 빈도론 LRT | 베이즈 검정 | |
|---|---|---|
| \(\theta\) 관점 | 고정된 미지 상수 | 확률변수 |
| 판단 근거 | \(P_{\theta_0}(\text{극단적 데이터})\) | \(P(\theta \in \Theta_1 | \text{데이터})\) |
| 사전정보 | 사용 안 함 | 사전분포로 반영 |
| 해석 | \(H_0\) 하에서 데이터 극단성 | \(H_1\) 의 사후 확률 |
9 합집합-교집합 검정 (UIT/IUT)
9.1 합집합-교집합 검정 (UI Test)
\(H_0\) 가 교집합으로 표현될 때:
\[ H_0: \theta \in \bigcap_{\gamma \in \Gamma} \Theta_\gamma \]
각 \(\Theta_\gamma\) 에 대한 개별 검정 기각역의 합집합이 UI 검정 기각역이다:
\[ \bigcup_{\gamma \in \Gamma}\{T_\gamma(\mathbf{x}) \in R_\gamma\} \]
논리: \(H_0\) 는 모든 조건이 동시에 성립해야 참이다. 어느 하나라도 거짓이면 \(H_0\) 전체가 거짓.
예시: 양방향 t-검정
\(H_0: \mu = \mu_0\) = \(\{\mu \leq \mu_0\} \cap \{\mu \geq \mu_0\}\) 로 분해. - 우측 검정: \((\bar{X} - \mu_0)/(S/\sqrt{n}) \geq t_L\) - 좌측 검정: \((\bar{X} - \mu_0)/(S/\sqrt{n}) \leq t_U\)
UI 검정 기각역: 둘 중 하나라도 → \(|(\bar{X} - \mu_0)/(S/\sqrt{n})| \geq t_{L}\) (대칭 선택 시)
이 UI 검정은 양방향 LRT와 동일하다.
9.2 교집합-합집합 검정 (IU Test)
\(H_0\) 가 합집합으로 표현될 때:
\[ H_0: \theta \in \bigcup_{\gamma \in \Gamma} \Theta_\gamma \]
각 개별 검정 기각역의 교집합이 IU 검정 기각역이다.
논리: \(H_0\) 는 어느 하나의 조건만 성립해도 참이다. \(H_0\) 를 기각하려면 모든 조건이 동시에 거짓이어야 한다.
예시: 품질 검사 (Acceptance Sampling)
원단이 합격하려면: - 파단 강도 \(\theta_1 > 50\) kg AND 난연성 통과율 \(\theta_2 > 0.95\)
\[ H_0: \{\theta_1 \leq 50\} \cup \{\theta_2 \leq 0.95\} \quad \text{vs} \quad H_1: \{\theta_1 > 50\} \cap \{\theta_2 > 0.95\} \]
IU 검정: \(t_1 > c_1\) AND \(t_2 > c_2\) 일 때만 합격 판정(기각). 두 기준을 동시에 만족해야 기각한다.
10 코드 예시
10.1 Step 1: 순수 Python으로 LRT 구현
import numpy as np
from scipy.stats import norm, t as t_dist, chi2
def lrt_normal_known_var(X, theta0, sigma=1.0, alpha=0.05, alternative='two-sided'):
"""
정규분포 (분산 알려진) LRT: H0: theta = theta0 vs H1: theta != theta0
LRT 통계량: lambda(x) = exp(-n*(x_bar - theta0)^2 / 2)
동치 검정: |sqrt(n) * (x_bar - theta0)| > z_{alpha/2}
"""
n = len(X)
x_bar = np.mean(X)
# LRT 통계량 (로그 변환: -2 log lambda)
log_lambda_neg2 = n * (x_bar - theta0) ** 2 # -2 log lambda(x)
Z = np.sqrt(n) * (x_bar - theta0) / sigma # 동치 검정통계량
# p-value
if alternative == 'two-sided':
p_value = 2 * (1 - norm.cdf(abs(Z)))
elif alternative == 'greater':
p_value = 1 - norm.cdf(Z)
else:
p_value = norm.cdf(Z)
# 점근 LRT p-value (-2 log lambda ~ chi2(1))
p_asymptotic = 1 - chi2.cdf(log_lambda_neg2, df=1)
return {
'lambda': np.exp(-log_lambda_neg2 / 2),
'-2_log_lambda': log_lambda_neg2,
'Z': Z,
'p_value_exact': p_value,
'p_value_asymptotic': p_asymptotic,
'reject': p_value < alpha
}
def lrt_normal_unknown_var(X, mu0, alpha=0.05):
"""
정규분포 (분산 미지) LRT: H0: mu <= mu0 vs H1: mu > mu0
LRT는 t-검정으로 단순화된다:
t = (x_bar - mu0) / (S / sqrt(n)) ~ t(n-1) under H0
"""
n = len(X)
x_bar = np.mean(X)
s = np.std(X, ddof=1)
t_stat = (x_bar - mu0) / (s / np.sqrt(n))
p_value = 1 - t_dist.cdf(t_stat, df=n - 1)
# lambda(x) 계산 (bar_x > mu0일 때만 < 1)
if x_bar <= mu0:
lrt_stat = 1.0
else:
sigma0_hat2 = np.mean((X - mu0) ** 2)
sigma_hat2 = np.var(X, ddof=0)
lrt_stat = (sigma_hat2 / sigma0_hat2) ** (n / 2)
return {
'lambda': lrt_stat,
't_statistic': t_stat,
'p_value': p_value,
'reject': p_value < alpha
}
# 시뮬레이션
np.random.seed(42)
n = 30
true_mu = 0.4 # H1이 참 (mu > 0)
X = np.random.normal(true_mu, 1.0, n)
# 알려진 분산 LRT
res1 = lrt_normal_known_var(X, theta0=0.0, alpha=0.05)
print("=== 분산 알려진 LRT ===")
print(f"lambda(x) = {res1['lambda']:.4f}")
print(f"-2 log lambda = {res1['-2_log_lambda']:.4f}")
print(f"Z = {res1['Z']:.4f}")
print(f"p-value (exact) = {res1['p_value_exact']:.4f}")
print(f"p-value (chi2 근사) = {res1['p_value_asymptotic']:.4f}")
print(f"H0 기각: {res1['reject']}")
print()
# 미지 분산 LRT (t-검정)
res2 = lrt_normal_unknown_var(X, mu0=0.0, alpha=0.05)
print("=== 분산 미지 LRT (t-검정) ===")
print(f"lambda(x) = {res2['lambda']:.4f}")
print(f"t = {res2['t_statistic']:.4f}")
print(f"p-value = {res2['p_value']:.4f}")
print(f"H0 기각: {res2['reject']}")10.2 Step 2: scipy 실무 구현 및 검정력 비교
from scipy import stats
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
# 분산 미지 t-검정 (scipy)
t_stat, p_val = stats.ttest_1samp(X, popmean=0.0, alternative='greater')
print(f"\nscipy t-검정: t={t_stat:.4f}, p={p_val:.4f}")
# -2 log lambda의 점근 분포 시뮬레이션
n_sims = 10000
n = 25
mu0 = 0.0
lrt_stats_h0 = [] # H0 참일 때
for _ in range(n_sims):
X_sim = np.random.normal(mu0, 1.0, n)
x_bar = np.mean(X_sim)
lrt = n * (x_bar - mu0) ** 2 # -2 log lambda
lrt_stats_h0.append(lrt)
# 이론적 chi2(1) vs 시뮬레이션 비교
lrt_array = np.array(lrt_stats_h0)
q95_sim = np.percentile(lrt_array, 95)
q95_chi2 = chi2.ppf(0.95, df=1)
print(f"\n-2 log lambda의 95th percentile:")
print(f" 시뮬레이션: {q95_sim:.3f}")
print(f" chi2(1) 이론: {q95_chi2:.3f}")
# → 거의 일치 (Wilks 정리 확인)10.3 R 코드: LRT 직접 구현
library(MASS)
# 정규분포 분산 미지 LRT: H0: mu = mu0
lrt_normal <- function(x, mu0) {
n <- length(x)
xbar <- mean(x)
s2_hat <- var(x) * (n - 1) / n # MLE (n으로 나눔)
s2_0 <- mean((x - mu0)^2) # 제한 MLE
# 우도비
lambda <- (s2_hat / s2_0)^(n / 2)
# -2 log lambda -> chi2(1)
neg2_log_lambda <- -2 * log(lambda)
p_val <- pchisq(neg2_log_lambda, df = 1, lower.tail = FALSE)
# t-검정과 비교
t_result <- t.test(x, mu = mu0, alternative = "two.sided")
list(
lambda = lambda,
neg2_log_lambda = neg2_log_lambda,
p_lrt_asymptotic = p_val,
p_ttest = t_result$p.value
)
}
set.seed(42)
x <- rnorm(30, mean = 0.4, sd = 1.0)
res <- lrt_normal(x, mu0 = 0)
cat("lambda:", res$lambda, "\n")
cat("-2 log lambda:", res$neg2_log_lambda, "\n")
cat("p-value (LRT 점근):", res$p_lrt_asymptotic, "\n")
cat("p-value (t-검정):", res$p_ttest, "\n")
# → 두 p-value는 대표본에서 거의 같다11 LRT의 장점과 한계
| 항목 | 내용 |
|---|---|
| 장점 | 거의 모든 모형에 적용 가능. MLE가 존재하면 자동으로 구성됨 |
| 장점 | 충분통계량과 자동 연결. 최적성과 연결됨 (NP 보조정리) |
| 장점 | 점근 분포 (\(\chi^2\))를 통해 어떤 분포에도 대표본 검정 가능 |
| 한계 | 작은 표본에서 점근 근사 부정확할 수 있음 |
| 한계 | 방해모수가 많으면 제한 MLE 계산이 복잡 |
| 한계 | UMP가 아닐 수 있음 (양방향 검정 등). 단순가설에서만 NP 보조정리 적용 |
12 정리
LRT는 MLE 원리를 검정에 그대로 적용한 방법이다.
\[ \lambda(\mathbf{x}) = \frac{\text{제약 하에서 데이터를 가장 잘 설명하는 우도}}{\text{모든 모수에서 데이터를 가장 잘 설명하는 우도}} \]
이 비율이 작을수록 귀무가설의 설명력이 부족하다는 증거이고, 기각 임계값 \(c\) 이하이면 기각한다.
중요한 특성: 1. LRT는 항상 충분통계량에만 의존한다 (Thm. 8.2.4) 2. 정규분포 분산 미지 LRT는 t-통계량을 자동 유도한다 3. 대표본에서 \(-2\log\lambda \overset{d}{\to} \chi^2_r\) (Wilks 정리) 4. 단순가설에서 NP 보조정리에 의해 UMP이다
13 관련 주제
선행 지식
후속 주제
관련 개념