1 이 포스트의 위치
EIV 시리즈의 네 번째 포스트이다. EIV 모형 개요에서 감쇠 편향을, 직교 LS 유도에서 수학적 해법을, MLE 유도에서 통계적 해법과 신뢰구간 한계를 개관하였다. 이 포스트는 §12.2.4의 핵심 질문에 답한다:
EIV 모형에서 β에 대한 유효한 신뢰 집합(confidence set)을 구성할 수 있는가?
결론부터 제시하면: 유한 길이 신뢰구간은 원리적으로 불가능하다. 유한 길이를 포기하면 정확한 신뢰 집합(Creasy-Williams)이 존재하지만, 그것조차도 불연속이거나 무한 구간을 포함하는 구조적 한계를 갖는다.
2 Gleser-Hwang 불가능성 정리
2.1 정리
분산비 \(\sigma_\delta^2 = \lambda\sigma_\epsilon^2\) 가정 하에 EIV 모형에서 길이가 항상 유한한 어떤 신뢰구간도 \(\beta\) 에 대한 피복률(coverage probability)이 0이다.
더 정확하게: 임의의 유한 길이 구간 추정량 \([L(\mathbf{x}, \mathbf{y}),\, U(\mathbf{x}, \mathbf{y})]\) 에 대해
\[\inf_{\boldsymbol{\theta}} P_{\boldsymbol{\theta}}\bigl(\beta \in [L, U]\bigr) = 0\]
이 된다 (Gleser & Hwang, 1987).
이 결과는 처음 접하면 충격적이다. “보통 회귀에서는 잘 되는데 왜?” — 답은 EIV 모형의 기하적 구조에 있다.
2.2 왜 피복률이 0이 되는가: τ² 모수
Gleser & Hwang(1987)은 아래 모수가 기울기 \(\beta\) 를 추정하는 데 잠재적으로 가용한 정보량을 결정한다는 것을 보였다.
\[\tau^2 = \frac{\sigma_\xi^2}{\sigma_\delta^2}\]
- \(\sigma_\xi^2\): latent 변수 \(\xi_i\) 의 분산 (값들이 얼마나 퍼져 있는가)
- \(\sigma_\delta^2\): 측정 오차의 분산
직관: \(\tau^2 = \sigma_\xi^2 / \sigma_\delta^2\) 는 “신호 대 잡음비(SNR)” 와 같다.
- \(\tau^2\) 가 크면: \(\xi_i\) 들이 다양하게 분포 → 회귀 직선의 기울기를 잘 식별할 수 있다
- \(\tau^2 \to 0\) 이면: \(\xi_i\) 들이 거의 변하지 않음 → 기울기를 전혀 식별할 수 없다
\(\tau^2 = 0\) 극단: \(\xi_i\) 들이 모두 같은 점에 모여 있으면 어떤 기울기를 가진 직선이든 그 점을 지나므로, \(\beta\) 를 유일하게 결정할 수 없다. 이것이 바로 유한 신뢰구간의 피복률이 0이 되는 원인이다.
Gleser & Hwang(1987)이 보인 것: \(\tau^2 \to 0\) 일 때 길이가 유한한 모든 신뢰구간의 피복률이 \(\to 0\) 이다. 그러므로 infimum은 0.
일반 선형 회귀와의 비교: 통상 SLR에서는 \(x_i\) 가 고정된 설계점이어서 \(\tau^2\) 에 해당하는 불확실성이 없다. EIV에서는 \(\xi_i\) 자체가 랜덤이므로 \(\tau^2\) 가 작아질 수 있고, 그때마다 추론이 근본적으로 무력해진다.
3 근사 신뢰구간
3.1 CLT + Slutsky 기반 근사 CI
교재 §12.2.3에서 유도한 MLE \(\hat{\beta}\) 에 대해, 아래 추정량이 \(\sigma_\beta^2\) (즉, \(\hat{\beta}\) 의 진짜 분산)의 일치 추정량임을 보일 수 있다 (Casella & Berger, 2002, §12.2.4):
\[\hat{\sigma}_\beta^2 = \frac{(1 + \lambda\hat{\beta}^2)^2 (S_{xx}S_{yy} - S_{xy}^2)}{(S_{xx} - \lambda S_{yy})^2 + 4\lambda S_{xy}^2}\]
여기서 \(S_{xx} = \sum(x_i - \bar{x})^2\), \(S_{yy} = \sum(y_i - \bar{y})^2\), \(S_{xy} = \sum(x_i - \bar{x})(y_i - \bar{y})\) 이다.
CLT와 Slutsky 정리를 결합하면:
\[\frac{\sqrt{n}(\hat{\beta} - \beta)}{\hat{\sigma}_\beta} \xrightarrow{d} N(0, 1)\]
이로부터 근사 \(1 - \alpha\) 신뢰구간:
\[\hat{\beta} - \frac{z_{\alpha/2}\, \hat{\sigma}_\beta}{\sqrt{n}} \leq \beta \leq \hat{\beta} + \frac{z_{\alpha/2}\, \hat{\sigma}_\beta}{\sqrt{n}}\]
이 구간은 유한 길이를 가지므로 Gleser-Hwang 정리에 의해 피복률 infimum이 0이다. 그러나 실무에서는 \(\tau^2\) 가 충분히 크고 \(n\) 이 클 때 이 구간이 합리적으로 작동한다.
3.2 Gleser 수정안 \(C_G(\hat{\beta})\)
Gleser(1987)는 \(z_{\alpha/2}\) 대신 \(t_{n-2, \alpha/2}\) 를 사용하고 분모를 \(\sqrt{n-2}\) 로 교체한 수정안을 제안하였다 (Casella & Berger, 2002, 식 12.2.22):
\[C_G(\hat{\beta}): \quad \hat{\beta} - \frac{t_{n-2,\, \alpha/2}\, \hat{\sigma}_\beta}{\sqrt{n-2}} \leq \beta \leq \hat{\beta} + \frac{t_{n-2,\, \alpha/2}\, \hat{\sigma}_\beta}{\sqrt{n-2}}\]
CLT + Slutsky로 이것도 근사 \(1-\alpha\) 신뢰구간이다. 역시 유한 길이이므로 정확한 피복률은 보장되지 않는다. 그러나 Gleser(1987)의 유한 표본 수치 계산에 따르면:
- \(n \geq 10\) 이고 \(\tau^2 \geq 0.25\) 이면, 공칭 90% 구간의 피복률이 최소 80% 이상
- \(\tau^2\) 또는 \(n\) 이 증가할수록 성능이 개선된다
즉, 이 수정안은 “보장은 없지만 실용 조건에서 합리적으로 작동하는” 타협안이다. 피복률 80%의 실무 의미: 공칭 90% 구간이 10회 중 2회는 \(\beta\) 를 포함하지 못한다는 뜻이다. 통상 SLR에서 정확히 90%를 유지하는 것과 비교하면, 이 손실은 \(\tau^2\) 가 작은 상황(측정오차가 지배적인 상황)에서 불가피한 대가로 해석된다. \(\tau^2 \geq 0.25\) 조건을 사전에 확인하지 못했다면, 보고된 신뢰구간의 명목 신뢰수준을 액면 그대로 해석하지 말아야 한다.
4 Creasy-Williams 정확 신뢰 집합
4.1 핵심 아이덴티티: 영(zero) 공분산
정확한 신뢰 집합을 구성하려면 피봇 통계량(pivotal quantity)이 필요하다. 피봇 통계량이란 미지 모수 \(\beta\) 를 포함하지만 그 분포가 \(\beta\) 의 참값에 관계없이 완전히 알려진 함수이다 — “모수를 알아야 분포를 알고, 분포를 알아야 모수를 구할 수 있다”는 순환을 깨는 장치이다. 피봇이 존재하면 피봇 분포의 분위수를 이용해 신뢰 집합을 역전(inversion)으로 정확히 구성할 수 있다. Creasy(1956)와 Williams(1959)는 EIV 모형의 다음 성질에서 피봇을 발견하였다.
\(\sigma_\delta^2 = \lambda\sigma_\epsilon^2\) 이면, 임의의 \(\beta\) 값에 대해
\[\mathrm{Cov}\bigl(\beta\lambda Y_i + X_i,\; Y_i - \beta X_i\bigr) = 0\]
이 성립한다.
증명: 모형 \(Y_i = \alpha + \beta\xi_i + \epsilon_i\), \(X_i = \xi_i + \delta_i\) 에서
\[\begin{aligned} \beta\lambda Y_i + X_i &= \beta\lambda\alpha + (\beta^2\lambda + 1)\xi_i + \beta\lambda\epsilon_i + \delta_i \\ Y_i - \beta X_i &= \alpha + \epsilon_i - \beta\delta_i \end{aligned}\]
공분산을 계산하면 (\(\xi_i\), \(\epsilon_i\), \(\delta_i\) 는 서로 독립):
\[\mathrm{Cov}(\beta\lambda Y_i + X_i,\; Y_i - \beta X_i) = \beta\lambda \cdot \sigma_\epsilon^2 + (-\beta) \cdot \sigma_\delta^2 = \beta(\lambda\sigma_\epsilon^2 - \sigma_\delta^2) = 0 \quad \blacksquare\]
마지막 등호는 \(\sigma_\delta^2 = \lambda\sigma_\epsilon^2\) 가정으로 성립한다.
이 아이덴티티의 의미: 참 기울기 \(\beta\) 를 대입할 때, 변환된 두 변수 \((\beta\lambda Y_i + X_i)\) 와 \((Y_i - \beta X_i)\) 는 이분산 정규이고 공분산이 0이다. 정규성 아래 공분산 0은 독립을 의미한다.
4.2 피봇 통계량 \(r_\lambda(\beta)\)
\(r_\lambda(\beta)\) 를 \((\beta\lambda y_i + x_i)\) 와 \((y_i - \beta x_i)\) 사이의 표본 상관계수로 정의한다:
\[r_\lambda(\beta) = \frac{\sum_{i=1}^n \bigl[(\beta\lambda y_i + x_i) - (\beta\lambda\bar{y} + \bar{x})\bigr]\bigl[(y_i - \beta x_i) - (\bar{y} - \beta\bar{x})\bigr]}{\sqrt{\sum_i \bigl[(\beta\lambda y_i + x_i) - (\beta\lambda\bar{y} + \bar{x})\bigr]^2 \cdot \sum_i \bigl[(y_i - \beta x_i) - (\bar{y} - \beta\bar{x})\bigr]^2}}\]
표본 통계량으로 단순히 정리하면 (Casella & Berger, 2002, 식 12.2.23):
\[r_\lambda(\beta) = \frac{\beta\lambda S_{yy} + (1 - \beta^2\lambda)S_{xy} - \beta S_{xx}}{\sqrt{(\beta^2\lambda^2 S_{yy} + 2\beta\lambda S_{xy} + S_{xx})(S_{yy} - 2\beta S_{xy} + \beta^2 S_{xx})}}\]
참 기울기 \(\beta\) 를 대입하면, 두 변량이 이변량 정규이고 상관이 0이므로 표본 상관계수에 대한 표준 결과(Exercise 11.33)에 의해:
\[\frac{\sqrt{n-2}\; r_\lambda(\beta)}{\sqrt{1 - r_\lambda^2(\beta)}} \sim t_{n-2}\]
이것이 피봇 통계량이다. \(\beta\) 가 참이면 분포가 \(t_{n-2}\) 로 완전히 결정된다.
4.3 Creasy-Williams 신뢰 집합
피봇에서 신뢰 집합을 역전(invert)하면:
\[C_{CW} = \left\{ \beta : \frac{(n-2)\, r_\lambda^2(\beta)}{1 - r_\lambda^2(\beta)} \leq F_{1,\, n-2,\, \alpha} \right\}\]
는 \(\beta\) 에 대한 정확한 \(1 - \alpha\) 신뢰 집합이다.
좌변은 \(t^2_{n-2}\) 가 \(F_{1,n-2}\) 와 같다는 관계를 이용한 것이다. 즉,
\[\left[\frac{\sqrt{n-2}\, r_\lambda(\beta)}{\sqrt{1 - r_\lambda^2(\beta)}}\right]^2 = \frac{(n-2) r_\lambda^2(\beta)}{1 - r_\lambda^2(\beta)} \sim F_{1,n-2}\]
이것이 유한 길이를 포기한 대가로 얻은 정확성이다. 피복률이 정확히 \(1-\alpha\) 임은 피봇 분포의 성질에서 직접 따른다.
5 Creasy-Williams 집합의 구조적 특성
5.1 집합의 형태: 세 가지 경우
\(r_\lambda(\beta)\) 는 \(\beta\) 의 유리함수이며 두 개의 극소점(minima)을 가진다. \(F\) 통계량 함수 \(\beta \mapsto (n-2)r_\lambda^2(\beta)/(1-r_\lambda^2(\beta))\) 의 형태에 따라 집합은 세 가지 형태 중 하나이다:
| 형태 | 조건 | 예 |
|---|---|---|
| 두 개의 유한 분리 구간 | \(F\) 통계량이 임계값 아래를 두 구간에서 통과 | \([a_1, b_1] \cup [a_2, b_2]\) |
| 유한 구간 하나 + 두 반무한 구간 | \(F\) 통계량이 임계값 아래를 세 구간에서 통과 | \((-\infty, a] \cup [b, c] \cup [d, \infty)\) |
| 전체 실선 | \(F\) 통계량이 항상 임계값 이하 | \((-\infty, \infty)\) |
집합 형태와 \(\tau^2\) 의 관계: \(\tau^2\) 가 클수록(신호가 잡음보다 충분히 크면) F 통계량 곡선이 임계값 아래로 두 번만 내려오는 형태(분리 유한 구간)가 나타난다. \(\tau^2\) 가 작아질수록 곡선이 임계값보다 넓은 영역에서 낮아져 반무한 구간을 포함하게 되고, 극단적으로 \(\tau^2 \to 0\) 이면 F 통계량 전체가 임계값 이하로 깔려 전체 실선이 된다. 즉, 집합의 형태 자체가 데이터에 담긴 신호 대 잡음비의 시각적 표현이다.
실제 예: Casella & Berger(2002)는 Table 11.3.1 데이터(n = 24)에 \(\lambda = 1\) 을 적용한 결과를 제시한다:
- \(\alpha = 0.05\), \(F_{1,22,0.05} = 4.30\): 신뢰 집합 \(= [-1.13,\; -0.14] \cup [0.89,\; 7.38]\)
- \(\alpha = 0.01\), \(F_{1,22,0.01} = 7.95\): 신뢰 집합 \(= (-\infty,\; -18.18] \cup [-1.68,\; 0.06] \cup [0.60,\; \infty)\)
\(\alpha\) 가 작아질수록(더 보수적인 신뢰 수준) 집합이 더 넓어지며 결국 무한 구간을 포함한다. 이것은 측정오차가 큰 상황에서 \(\beta\) 의 부호조차 확실히 알 수 없다는 현실을 반영한다.
결과 해석: \(\alpha = 0.05\) 의 신뢰 집합 \([-1.13, -0.14] \cup [0.89, 7.38]\) 는 음수 영역과 양수 영역이 분리되어 있다. 즉, \(\beta < 0\) 인지 \(\beta > 0\) 인지를 이 데이터만으로는 확신할 수 없다. “회귀 직선의 기울기가 양인지 음인지 모른다”는 것은 분석으로 결론을 낼 수 없다는 강한 진술이다. \(\alpha = 0.01\) 로 내려가면 집합이 무한 구간을 포함하여 \(\beta\) 의 범위를 전혀 좁히지 못한다 — Gleser-Hwang 정리가 표본 하나에서 구체적으로 나타나는 장면이다.
5.2 부호 식별 불가능성: \(\beta\) vs \(-1/(\lambda\beta)\)
Creasy-Williams 집합은 항상 양수와 음수 값을 함께 포함한다. 이 성질은 다음 항등식에서 비롯된다:
\[-r_\lambda(\beta) = r_\lambda\!\left(-\frac{1}{\lambda\beta}\right)\]
이 성립하므로, \(\beta\) 가 신뢰 집합에 속하면 \(-1/(\lambda\beta)\) 도 반드시 집합에 속한다.
직관: \(\beta\) 와 \(-1/(\lambda\beta)\) 는 EIV 모형에서 데이터만으로는 구별되지 않는 “대칭 쌍”이다. \(\lambda = 1\) 이면 이 쌍은 \(\beta\) 와 \(-1/\beta\) 이고, 이 둘은 서로 부호가 다르다. 따라서 Creasy-Williams 집합에서 기울기의 부호를 결론 짓는 것은 불가능하다.
이것은 EIV 모형의 비식별성(non-identifiability)의 한 측면이다. 측정 오차가 있는 상황에서는 \(Y\) 에 대한 \(X\) 의 영향과 \(X\) 에 대한 \(Y\) 의 영향을 단일 데이터셋으로 구별할 수 없는 경우가 있다.
5.3 Fieller 구간과의 연결
Creasy-Williams 집합의 이러한 특성은 Fieller 구간(두 정규 평균의 비에 대한 신뢰구간)의 성질과 동일하다. Fieller 구간도 두 분리 구간, 또는 전체 실선으로 나타날 수 있다. EIV 기울기 추정은 구조적으로 비율 추정 문제와 같기 때문이다.
\(\hat{\beta}\) 를 분자와 분모 각각 정규 분포를 따르는 두 통계량의 비로 쓸 수 있고, 이 비의 신뢰 집합이 Fieller 구간과 같은 수학적 구조를 가진다. 구체적으로, EIV 문맥에서 \(\hat{\beta} = S_{XY} / S_{\xi\xi}\) 형태로 표현되며, 분모 \(S_{\xi\xi}\) 는 관측 불가능한 잠재 변수의 표본 분산으로 추정 불확실성을 가진다. 이 분모의 불확실성이 “비(ratio) 추정” 문제와 동일한 수학 구조를 만들어, Fieller(1954)의 비 신뢰구간 이론과 동일한 형태의 집합이 도출된다.
6 실무 가이드
6.1 어떤 구간을 써야 하는가
| 구간 | 특징 | 추천 조건 |
|---|---|---|
| CLT 기반 근사 CI | 유한 길이, 단순, 피복률 보장 없음 | \(n \geq 50\), \(\tau^2 \geq 1.0\) 이상 |
| Gleser 수정 \(C_G\) | 유한 길이, \(t\) 분포 기반, 피복률 보장 없음 | \(n \geq 10\), \(\tau^2 \geq 0.25\) |
| Creasy-Williams | 정확한 \(1-\alpha\), 불연속/무한 가능 | 정확성 요구, \(\tau^2\) 작거나 불분명 |
핵심 원칙: \(\tau^2 = \hat{\sigma}_\xi^2 / \hat{\sigma}_\delta^2\) 를 먼저 추정하고, 이것이 작으면(0.25 미만) 어떤 유한 구간도 신뢰하기 어렵다는 진단을 먼저 내려야 한다.
7 코드 예시
7.1 Step 1: 순수 Python 구현 (원리 이해)
import numpy as np
from scipy.stats import f as f_dist
def r_lambda(beta, lam, x, y):
"""Casella & Berger 식 (12.2.23) — r_lambda(beta) 계산"""
n = len(x)
xbar, ybar = np.mean(x), np.mean(y)
Sxx = np.sum((x - xbar)**2)
Syy = np.sum((y - ybar)**2)
Sxy = np.sum((x - xbar) * (y - ybar))
num = beta * lam * Syy + (1 - beta**2 * lam) * Sxy - beta * Sxx
den = np.sqrt(
(beta**2 * lam**2 * Syy + 2*beta*lam*Sxy + Sxx) *
(Syy - 2*beta*Sxy + beta**2 * Sxx)
)
return num / den if abs(den) > 1e-15 else np.nan
def f_stat_cw(beta, lam, x, y):
"""Creasy-Williams F 통계량: (n-2) r² / (1 - r²)"""
n = len(x)
r = r_lambda(beta, lam, x, y)
if r is np.nan or abs(r) >= 1.0:
return np.inf
return (n - 2) * r**2 / (1 - r**2)
def beta_hat_eiv(lam, x, y):
"""EIV MLE: 직교 LS 해"""
xbar, ybar = np.mean(x), np.mean(y)
Sxx = np.sum((x - xbar)**2)
Syy = np.sum((y - ybar)**2)
Sxy = np.sum((x - xbar) * (y - ybar))
disc = Sxx - lam * Syy
return (disc + np.sqrt(disc**2 + 4*lam*Sxy**2)) / (2*lam*Sxy)
def sigma_beta_hat(lam, beta_hat, x, y):
"""β̂ 의 분산 일치 추정량 — Casella & Berger §12.2.4"""
xbar, ybar = np.mean(x), np.mean(y)
Sxx = np.sum((x - xbar)**2)
Syy = np.sum((y - ybar)**2)
Sxy = np.sum((x - xbar) * (y - ybar))
num = (1 + lam * beta_hat**2)**2 * (Sxx * Syy - Sxy**2)
den = (Sxx - lam * Syy)**2 + 4*lam*Sxy**2
return np.sqrt(num / den)
# 시뮬레이션 데이터
np.random.seed(42)
n = 30
lam = 1.0 # sigma_delta^2 = sigma_eps^2
xi = np.random.normal(5, 2, n) # 참 xi
eps = np.random.normal(0, 0.5, n)
delta = np.random.normal(0, 0.5, n)
alpha_true, beta_true = 1.0, 2.5
y = alpha_true + beta_true * xi + eps
x = xi + delta
# β̂ MLE
beta_est = beta_hat_eiv(lam, x, y)
print(f"β̂ (MLE) = {beta_est:.4f} (참값: {beta_true})")
# 분산 추정
sbeta = sigma_beta_hat(lam, beta_est, x, y)
# 1. CLT 근사 신뢰구간
from scipy.stats import norm, t
z = norm.ppf(0.975)
ci_z = (beta_est - z * sbeta / np.sqrt(n),
beta_est + z * sbeta / np.sqrt(n))
print(f"\n[CLT 근사 95% CI]: [{ci_z[0]:.4f}, {ci_z[1]:.4f}]")
# 2. Gleser 수정
t_val = t.ppf(0.975, df=n-2)
ci_g = (beta_est - t_val * sbeta / np.sqrt(n-2),
beta_est + t_val * sbeta / np.sqrt(n-2))
print(f"[Gleser 수정 95% CI]: [{ci_g[0]:.4f}, {ci_g[1]:.4f}]")
# 3. Creasy-Williams 신뢰 집합 탐색
alpha_level = 0.05
f_crit = f_dist.ppf(1 - alpha_level, 1, n-2)
betas = np.linspace(-10, 15, 5000)
in_set = [f_stat_cw(b, lam, x, y) <= f_crit for b in betas]
cw_members = betas[np.array(in_set)]
if len(cw_members) > 0:
print(f"\n[Creasy-Williams 95% 신뢰 집합]")
print(f"F 임계값: F_{{1,{n-2},0.05}} = {f_crit:.3f}")
print(f"집합 범위: [{cw_members[0]:.4f}, {cw_members[-1]:.4f}]")
# 불연속 여부 확인
gaps = np.where(np.diff(np.array(in_set, dtype=int)) != 0)[0]
print(f"전환 횟수 (집합 경계): {len(gaps)} → {'분리 구간' if len(gaps) > 2 else '연속 구간'}")결과 해석: CLT 근사 95% CI와 Gleser 수정 95% CI는 길이가 비슷하지만, Gleser 수정은 \(t_{n-2}\) 분포를 사용하므로 소표본에서 약간 더 넓다. 두 구간은 유한 길이이므로 피복률 보장이 없다. Creasy-Williams 집합의 “전환 횟수”가 2이면 연속 구간(데이터가 충분히 정보적), 4이면 두 분리 구간(부호 불확실), 6 이상이면 반무한 구간을 포함한다는 것을 이 코드로 확인할 수 있다. \(\tau^2 = \sigma_\xi^2 / \sigma_\delta^2 = (2.0/0.5)^2 = 16\) 으로 크기 때문에(sigma_xi=2, sigma_delta=0.5) 이 시뮬레이션에서는 CW 집합이 연속 유한 구간으로 나올 것으로 예상된다.
7.2 Step 2: statsmodels 기반 실무 활용
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import f as f_dist
def creasy_williams_confidence_set(x, y, lam=1.0, alpha=0.05,
beta_range=(-20, 20), n_grid=5000):
"""
Creasy-Williams 정확 신뢰 집합 시각화.
Returns:
beta_in_set: 집합에 속하는 β 값들
f_stats: F 통계량 배열
"""
n = len(x)
betas = np.linspace(beta_range[0], beta_range[1], n_grid)
xbar, ybar = np.mean(x), np.mean(y)
Sxx = np.sum((x - xbar)**2)
Syy = np.sum((y - ybar)**2)
Sxy = np.sum((x - xbar) * (y - ybar))
def f_stat(b):
num = b * lam * Syy + (1 - b**2 * lam) * Sxy - b * Sxx
den2 = ((b**2 * lam**2 * Syy + 2*b*lam*Sxy + Sxx) *
(Syy - 2*b*Sxy + b**2 * Sxx))
if den2 <= 0:
return np.inf
r = num / np.sqrt(den2)
if abs(r) >= 1.0:
return np.inf
return (n-2) * r**2 / (1 - r**2)
f_stats = np.array([f_stat(b) for b in betas])
f_crit = f_dist.ppf(1 - alpha, 1, n-2)
in_set = f_stats <= f_crit
# β̂ MLE
disc = Sxx - lam * Syy
beta_mle = (disc + np.sqrt(disc**2 + 4*lam*Sxy**2)) / (2*lam*Sxy)
# 시각화
fig, ax = plt.subplots(figsize=(10, 5))
ax.plot(betas, f_stats, 'b-', lw=1.5, label='F 통계량')
ax.axhline(f_crit, color='r', ls='--', lw=1.5,
label=f'F 임계값 ({1-alpha:.0%}, df=1,{n-2}): {f_crit:.2f}')
ax.fill_between(betas, 0, f_crit,
where=in_set, alpha=0.25, color='green',
label='신뢰 집합 (F ≤ 임계값)')
ax.axvline(beta_mle, color='k', ls=':', lw=1.5,
label=f'β̂ = {beta_mle:.3f}')
ax.set_ylim(0, min(50, 3*f_crit))
ax.set_xlabel('β')
ax.set_ylabel('F 통계량')
ax.set_title(f'Creasy-Williams 신뢰 집합 (λ={lam}, {1-alpha:.0%} 수준)')
ax.legend()
plt.tight_layout()
plt.show()
return betas[in_set], f_stats
# τ² 에 따른 신뢰 집합 비교
np.random.seed(0)
n = 30
alpha_true, beta_true, lam = 1.0, 2.5, 1.0
for tau2 in [2.0, 0.5, 0.1]:
sigma_xi = np.sqrt(tau2)
sigma_del = sigma_eps = 1.0
xi = np.random.normal(5, sigma_xi, n)
y_s = alpha_true + beta_true * xi + np.random.normal(0, sigma_eps, n)
x_s = xi + np.random.normal(0, sigma_del, n)
print(f"\n--- τ² = {tau2} (σ_ξ={sigma_xi:.2f}, σ_δ={sigma_del}) ---")
beta_in_set, _ = creasy_williams_confidence_set(
x_s, y_s, lam=lam, alpha=0.05, beta_range=(-20, 20)
)
if len(beta_in_set) == 0:
print("신뢰 집합: 전체 실선 또는 빈 집합")
else:
print(f"신뢰 집합 범위: [{beta_in_set[0]:.3f}, {beta_in_set[-1]:.3f}]")
print(f"참값 β={beta_true} 포함 여부: {beta_true >= beta_in_set[0] and beta_true <= beta_in_set[-1]}")8 요약
| 항목 | 핵심 내용 |
|---|---|
| Gleser-Hwang 불가능성 | 유한 길이 구간 → \(\inf P(\beta \in C) = 0\). \(\tau^2 \to 0\) 이 원인 |
| τ² | \(\sigma_\xi^2 / \sigma_\delta^2\) = SNR. 이 값이 작을수록 추론이 근본적으로 어려움 |
| CLT 근사 CI | \(\hat{\beta} \pm z_{\alpha/2}\hat{\sigma}_\beta/\sqrt{n}\). 실무 통용, 정확 피복률 불보장 |
| Gleser 수정 \(C_G\) | \(t_{n-2}\) 기반, \(\tau^2 \geq 0.25\), \(n \geq 10\) 이면 90% 구간 피복률 \(\geq 80\%\) |
| 영 공분산 아이덴티티 | \(\mathrm{Cov}(\beta\lambda Y_i + X_i,\, Y_i - \beta X_i) = 0\) (\(\sigma_\delta^2 = \lambda\sigma_\epsilon^2\) 하에서) |
| Creasy-Williams | 피봇 \(r_\lambda(\beta)\), \(\sqrt{n-2}\,r_\lambda/\sqrt{1-r_\lambda^2} \sim t_{n-2}\). 정확한 \(1-\alpha\) |
| 집합 형태 | 분리 구간, 반무한 구간, 전체 실선 중 하나. Fieller 구간과 동일 구조 |
| 부호 식별 불가 | \(-r_\lambda(\beta) = r_\lambda(-1/(\lambda\beta))\) → β와 \(-1/(\lambda\beta)\) 가 항상 공존 |
9 관련 주제
선행 지식
- EIV 모형 개요 — Functional/Structural 구분, 감쇠 편향
- EIV: 직교 LS 유도 — 직교 최소제곱 해
- EIV: MLE 유도 — 분산비 가정, MLE, 일치성
후속 주제
- Logistic Regression — Casella §12.3, GLM으로의 확장
- Robust Regression — Casella §12.4, M-추정
- Multiple Linear Regression — 행렬 OLS, Gauss-Markov
- Fieller’s Theorem — 비율 모수의 신뢰구간, Creasy-Williams와 동일 구조
관련 개념
- 구간 추정 평가 — UMA 신뢰 집합, 비편향 신뢰 집합
- 최대우도추정량 — MLE 일반론
- CLT와 Slutsky 정리 — 근사 CI의 이론적 기반