1 개요
귀무가설이 복잡한 구조를 가질 때, 예를 들어 여러 조건이 동시에 성립해야 하거나 적어도 하나가 성립해야 하는 경우, 전체 검정을 한 번에 구성하기 어렵다. 이 때 유용한 전략이 Casella & Berger (2002, Ch.8) §8.2.3에서 소개하는 합집합-교집합 검정(Union-Intersection Test, UIT)과 교집합-합집합 검정(Intersection-Union Test, IUT)이다.
두 방법 모두 핵심 아이디어는 같다. 복잡한 가설을 단순한 하위 가설들로 분해하고, 하위 가설에 대한 검정을 조합하여 전체 검정을 구성한다. 차이는 귀무가설이 어떤 구조를 갖느냐에 있다.
| 방법 | 귀무가설 구조 | 기각 전략 | 검정 통계량 |
|---|---|---|---|
| UIT | 교집합 ( \(\bigcap\) ) | 하나라도 기각되면 전체 기각 | \(\sup_\gamma T_\gamma(\mathbf{x})\) |
| IUT | 합집합 ( \(\bigcup\) ) | 모두 기각될 때만 전체 기각 | \(\inf_\gamma T_\gamma(\mathbf{x})\) |
이 구조는 집합론의 드모르간 법칙과 직결된다.
2 합집합-교집합 검정 (UIT)
2.1 직관: “하나라도 무너지면 전체가 무너진다”
귀무가설이 여러 조건의 교집합으로 표현될 때 UIT를 사용한다.
\[H_0: \theta \in \bigcap_{\gamma \in \Gamma} \Theta_\gamma\]
\(H_0\) 가 참이려면 모든 \(\gamma\) 에 대해 \(\theta \in \Theta_\gamma\) 여야 한다. 따라서 어느 하나라도 \(\theta \notin \Theta_\gamma\) 임이 확인되면, 즉 하위 귀무가설 \(H_{0\gamma}\) 가 기각되면, 전체 \(H_0\) 도 기각한다.
비유: 제품이 “강도도 기준 이상이고, 내열성도 기준 이상이고, 방수도 기준 이상이어야 한다”는 요구를 만족해야 한다고 하자. 강도 검사에서 실패하면 나머지를 볼 필요 없이 전체 요구가 충족되지 않는다. 이것이 UIT의 논리다.
2.2 기각 영역 구성
각 하위 문제 \(H_{0\gamma}: \theta \in \Theta_\gamma\) 에 대해 기각 영역 \(\{\mathbf{x}: T_\gamma(\mathbf{x}) \in R_\gamma\}\) 가 주어진다고 하자. UIT의 기각 영역은 이들의 합집합이다.
\[\text{기각 영역 (UIT)} = \bigcup_{\gamma \in \Gamma} \{\mathbf{x}: T_\gamma(\mathbf{x}) \in R_\gamma\} \tag{8.2.4}\]
단순화: 각 하위 검정의 기각 영역이 \(\{T_\gamma(\mathbf{x}) > c\}\) (임계값 \(c\) 가 \(\gamma\) 에 무관)라면,
\[\bigcup_{\gamma \in \Gamma} \{T_\gamma(\mathbf{x}) > c\} = \left\{\sup_{\gamma \in \Gamma} T_\gamma(\mathbf{x}) > c\right\}\]
따라서 UIT의 검정 통계량은 \(T(\mathbf{x}) = \sup_\gamma T_\gamma(\mathbf{x})\) 이다.
합집합( \(\cup\) )으로 연결된 기각 영역에서 “하나라도 기각 영역에 들어오면” 기각하므로, 개별 검정 통계량 중 최댓값이 임계값을 넘으면 전체가 기각된다. 최댓값이 임계값을 넘지 못하면 모든 하위 검정에서 기각 실패 → \(H_0\) 채택.
2.3 예시: 정규분포 양측 t 검정 (Example 8.2.8)
\(X_1, \ldots, X_n \sim N(\mu, \sigma^2)\) 에서 \(H_0: \mu = \mu_0\) vs \(H_1: \mu \neq \mu_0\) 를 검정한다.
\(H_0: \mu = \mu_0\) 를 두 하위 가설의 교집합으로 분해한다.
\[H_0: \{\mu \leq \mu_0\} \cap \{\mu \geq \mu_0\}\]
각각에 대한 단측 LRT는:
- \(H_{0L}: \mu \leq \mu_0\) vs \(H_{1L}: \mu > \mu_0\) → 기각 영역: \(\frac{\bar{X} - \mu_0}{S/\sqrt{n}} \geq t_L\)
- \(H_{0U}: \mu \geq \mu_0\) vs \(H_{1U}: \mu < \mu_0\) → 기각 영역: \(\frac{\bar{X} - \mu_0}{S/\sqrt{n}} \leq t_U\)
UIT는 둘 중 하나라도 기각되면 전체를 기각한다:
\[\text{기각}: \frac{\bar{X} - \mu_0}{S/\sqrt{n}} \geq t_L \quad \text{또는} \quad \frac{\bar{X} - \mu_0}{S/\sqrt{n}} \leq t_U\]
대칭 경우 \(t_L = -t_U \geq 0\) 이면:
\[\text{기각}: \frac{|\bar{X} - \mu_0|}{S/\sqrt{n}} \geq t_L\]
이 UIT는 곧 양측 t 검정이며, 동시에 이 문제의 LRT이기도 하다 (Exercise 8.38). 즉 양측 t 검정을 “두 단측 검정의 교집합 분해 → UIT”로 도출할 수 있다.
직관: \(\mu\) 가 \(\mu_0\) 와 같으려면 “\(\mu \leq \mu_0\) 도 성립”하고 “\(\mu \geq \mu_0\) 도 성립”해야 한다. 이 중 하나라도 깨지면 \(\mu = \mu_0\) 는 거짓이다. UIT는 이 구조를 그대로 검정으로 변환한다.
3 교집합-합집합 검정 (IUT)
3.1 직관: “모두 통과해야 최종 합격”
귀무가설이 여러 조건의 합집합으로 표현될 때 IUT를 사용한다.
\[H_0: \theta \in \bigcup_{\gamma \in \Gamma} \Theta_\gamma \tag{8.2.5}\]
\(H_0\) 가 거짓이려면 모든 \(\gamma\) 에 대해 \(\theta \notin \Theta_\gamma\) 여야 한다. 따라서 \(H_0\) 를 기각하려면 모든 하위 귀무가설 \(H_{0\gamma}\) 를 기각해야 한다. 하나라도 기각 실패하면 전체 \(H_0\) 를 기각할 수 없다.
비유: 어떤 약의 효과가 “부작용이 크거나, 효과가 약하거나” 하면 \(H_0\) (불합격)가 참이다. 반대로 “부작용도 작고, 효과도 충분한” 증거가 모두 확인될 때만 \(H_0\) 를 기각하고 약을 승인한다. 이것이 IUT의 논리다.
3.2 기각 영역 구성
IUT의 기각 영역은 하위 검정 기각 영역들의 교집합이다.
\[\text{기각 영역 (IUT)} = \bigcap_{\gamma \in \Gamma} \{\mathbf{x}: T_\gamma(\mathbf{x}) \in R_\gamma\} \tag{8.2.6}\]
단순화: 기각 영역이 모두 \(\{T_\gamma(\mathbf{x}) \geq c\}\) 형태이면,
\[\bigcap_{\gamma \in \Gamma} \{T_\gamma(\mathbf{x}) \geq c\} = \left\{\inf_{\gamma \in \Gamma} T_\gamma(\mathbf{x}) \geq c\right\}\]
따라서 IUT의 검정 통계량은 \(T(\mathbf{x}) = \inf_\gamma T_\gamma(\mathbf{x})\) 이다. 가장 약한 증거가 임계값을 넘을 때 전체를 기각한다.
교집합( \(\cap\) )으로 연결된 기각 영역에서 “모두 기각 영역에 들어와야” 기각하므로, 개별 통계량 중 최솟값이 임계값을 넘으면 모두가 넘는다. 최솟값이 임계값에 미달하면 적어도 하나가 기각 실패 → \(H_0\) 채택.
3.3 예시: 품질 검수 (Acceptance Sampling, Example 8.2.9)
천 소재가 두 가지 기준을 모두 만족해야 합격으로 판정한다.
- \(\theta_1\): 평균 인장 강도 (기준: \(> 50\) 파운드)
- \(\theta_2\): 난연성 통과 확률 (기준: \(> 0.95\))
가설 구조:
\[H_0: \{\theta_1 \leq 50 \text{ or } \theta_2 \leq 0.95\} \quad \text{vs} \quad H_1: \{\theta_1 > 50 \text{ and } \theta_2 > 0.95\}\]
\(H_0\) (불합격)은 적어도 하나가 기준 미달인 경우의 합집합이다. 제품이 “좋다(\(H_1\))”고 판정하려면 두 기준을 동시에 통과해야 한다.
하위 검정별 기각 영역:
- \(H_{01}: \theta_1 \leq 50\) → \(\frac{\bar{X} - 50}{S/\sqrt{n}} > t\) 이면 기각
- \(H_{02}: \theta_2 \leq 0.95\) → \(\sum_{i=1}^m Y_i > b\) 이면 기각
IUT 기각 영역 (전체 합격 판정):
\[\left\{(\mathbf{x}, \mathbf{y}): \frac{\bar{x} - 50}{s/\sqrt{n}} > t \quad \text{and} \quad \sum_{i=1}^m y_i > b\right\}\]
두 조건을 모두 통과할 때만 제품을 합격으로 판정한다. 강도 검사는 통과했지만 난연성이 미달이면 불합격이다.
직관: 불합격의 이유가 여러 가지 중 하나라도 해당하면 충분하지만(\(H_0\)의 합집합 구조), 합격을 판정하기 위해서는 모든 불합격 사유를 동시에 배제해야 한다(IUT의 교집합 기각).
4 크기(Size) 보정
UIT와 IUT의 크기를 정확히 계산하기 어려운 경우가 많다. 이 때 상한(upper bound) 을 이용하여 보수적으로 level \(\alpha\) 검정을 구성한다.
4.1 UIT의 크기 상한 (Theorem 8.3.21)
\(\Theta_0 = \bigcap_{\gamma \in \Gamma} \Theta_\gamma\) 에서 각 하위 LRT 통계량을 \(\lambda_\gamma(\mathbf{x})\) 라 하고 \(T(\mathbf{x}) = \inf_\gamma \lambda_\gamma(\mathbf{x})\) 로 정의된 UIT를 고려하자.
\(T(\mathbf{x}) \geq \lambda(\mathbf{x})\) 가 모든 \(\mathbf{x}\) 에서 성립하고, 따라서:
\(T(\mathbf{x}) \geq \lambda(\mathbf{x})\) (UIT 통계량이 전체 LRT 통계량보다 항상 크거나 같다)
\(\beta_T(\theta) \leq \beta_\lambda(\theta)\) for all \(\theta \in \Theta\) (UIT의 검정력이 전체 LRT보다 낮다)
LRT가 level \(\alpha\) 검정이면 UIT도 level \(\alpha\) 검정이다
왜 UIT가 LRT보다 검정력이 낮은가?
\(\lambda_\gamma(\mathbf{x})\) 는 \(\Theta_\gamma\) 에서 최대화하고, \(\lambda(\mathbf{x})\) 는 더 큰 집합 \(\Theta_0 = \bigcap_\gamma \Theta_\gamma \subset \Theta_\gamma\) 에서 최대화하므로 \(\lambda_\gamma \geq \lambda\) 이다. 따라서 \(T(\mathbf{x}) = \inf_\gamma \lambda_\gamma \geq \lambda\), 즉 UIT는 전체 LRT보다 “덜 극단적”인 통계량을 사용하게 된다. 기각 영역이 LRT보다 좁아지므로 검정력이 낮아진다.
그렇다면 왜 UIT를 사용하는가?
- 낮은 Type I Error: \(H_0\) 내에서 UIT의 오류 확률이 LRT보다 작다
- 진단 가능성: \(H_0\) 가 기각될 때 어떤 하위 가설 \(H_{0\gamma}\) 때문인지 알 수 있어 추가 분석이 가능하다
예시: 예제 8.3.22에서 정규분포 양측 t 검정은 UIT이면서 동시에 LRT이다. 이 경우 \(T(\mathbf{x}) = \lambda(\mathbf{x})\) 로 검정력 손실 없이 UIT의 장점을 얻는다.
4.2 UIT 크기 결정: 정규분포 양측 검정 (Example 8.3.8)
\(H_0: \mu = \mu_0\) 에서 검정 통계량 \((\bar{X} - \mu_0)/(S/\sqrt{n}) \sim t_{n-1}\) 이므로, size \(\alpha\) UIT는 \(t_U = t_{n-1, 1-\alpha_1}\), \(t_L = t_{n-1, \alpha_2}\) 로 설정하되 \(\alpha_1 + \alpha_2 = \alpha\) 를 만족하면 된다. 표준 선택은 \(t_L = -t_U = t_{n-1, \alpha/2}\) 이다.
4.3 IUT의 크기 상한 (Theorem 8.3.23)
각 하위 검정 \(H_{0\gamma}\) 의 크기를 \(\alpha_\gamma\) 라 하면, IUT (기각 영역 \(R = \bigcap_\gamma R_\gamma\))의 크기는
\[\text{size}(\text{IUT}) \leq \sup_{\gamma \in \Gamma} \alpha_\gamma\]
따라서 각 하위 검정이 level \(\alpha\) 이면 IUT도 level \(\alpha\) 검정이다.
증명 직관: 임의의 \(\theta \in \Theta_0\) 에 대해 \(\theta \in \Theta_\gamma\) 인 어떤 \(\gamma\) 가 존재한다. 이 때
\[P_\theta(X \in R) \leq P_\theta(X \in R_\gamma) \leq \alpha_\gamma \leq \alpha\]
교집합 기각 영역 \(R\) 은 각 \(R_\gamma\) 보다 좁으므로 Type I Error가 더 작다.
핵심: IUT는 각 하위 검정의 크기를 개별 제어하면 자동으로 전체가 level \(\alpha\) 가 된다. Bonferroni 보정 없이도 가능하다.
보수성(Conservativeness): IUT의 실제 크기는 \(\alpha\) 보다 훨씬 작을 수 있다. IUT가 “지나치게 엄격한” 검정이 될 수 있다는 의미다.
4.4 IUT의 정확한 크기 (Theorem 8.3.24)
보수적이지 않고 크기가 정확히 \(\alpha\) 인 조건이 존재한다.
\(H_0: \theta \in \bigcup_{j=1}^k \Theta_j\) 에서 각 \(R_j\) 가 level \(\alpha\) 검정이라 하자. 어떤 \(i\) 에 대해 파라미터 수열 \(\theta_l \in \Theta_i\) 가 존재하여
- \(\lim_{l \to \infty} P_{\theta_l}(X \in R_i) = \alpha\)
- \(j \neq i\) 인 모든 \(j\) 에 대해 \(\lim_{l \to \infty} P_{\theta_l}(X \in R_j) = 1\)
이면, IUT (기각 영역 \(R = \bigcap_{j=1}^k R_j\))의 크기는 정확히 \(\alpha\) 이다.
직관: 조건 (i)는 경계 \(\Theta_i\) 에서 하위 검정의 Type I Error가 \(\alpha\) 에 수렴함을 의미하고, 조건 (ii)는 나머지 하위 검정들이 이 경계에서 검정력이 1로 수렴함을 의미한다. 이 경우 병목(bottleneck)이 되는 검정 \(i\) 가 IUT의 크기를 결정한다.
품질 검수 예제 적용: \(n = m = 58\), \(t = 1.672\), \(b = 57\) 로 설정하면 각 하위 검정의 크기 \(\approx 0.05\). 파라미터 수열 \(\theta_l = (\theta_{1l}, 0.95)\) 에서 \(\theta_{1l} \to \infty\) 로 보내면:
- \(P_{\theta_l}(X \in R_2) = 0.05\) (상수, \(\theta_2 = 0.95\) 로 고정)
- \(P_{\theta_l}(X \in R_1) \to 1\) (\(\theta_{1l} \to \infty\))
따라서 IUT의 크기 = 0.05 이다. 병목은 난연성 검정이다.
5 UIT와 IUT 비교
| 항목 | UIT | IUT |
|---|---|---|
| \(H_0\) 구조 | 교집합 \(\bigcap_\gamma \Theta_\gamma\) | 합집합 \(\bigcup_\gamma \Theta_\gamma\) |
| 기각 영역 | 합집합 \(\bigcup_\gamma R_\gamma\) | 교집합 \(\bigcap_\gamma R_\gamma\) |
| 기각 조건 | 하나라도 기각 | 모두 기각 |
| 검정 통계량 | \(\sup_\gamma T_\gamma\) | \(\inf_\gamma T_\gamma\) |
| Size 상한 | LRT와 동일 (LRT 기반 시) | \(\sup_\gamma \alpha_\gamma\) |
| 검정력 vs LRT | \(\leq\) LRT (보통 낮음) | — |
| 보수성 | 일반적으로 덜 보수적 | 보수적일 수 있음 |
| 적합 상황 | 동시 기각이 필요한 복합 귀무 | 동시 입증이 필요한 합성 귀무 |
5.1 실무적 선택 기준
- \(H_0\) 가 “A이면서 B이면서 C”인 경우 → UIT (하나라도 깨지면 기각)
- \(H_0\) 가 “A이거나 B이거나 C”인 경우 → IUT (모두 깨져야 기각)
- 임상시험 비열등성(non-inferiority) 검정: “부작용도 안전하고, 효과도 충분한” → IUT
- 다변량 평균 검정: “모든 성분이 \(\mu_0\)” → 분해 후 UIT
- ANOVA F 검정: UIT의 일종 (모든 대비에 대한 t 검정의 UIT로 유도 가능)
6 코드 구현
6.1 Python
import numpy as np
from scipy import stats
def union_intersection_test(
data: np.ndarray,
mu0: float = 0.0,
alpha: float = 0.05,
) -> dict:
"""
정규분포 UIT 예시: H0: mu = mu0 vs H1: mu != mu0
두 단측 t 검정의 UIT = 양측 t 검정
"""
n = len(data)
x_bar = np.mean(data)
s = np.std(data, ddof=1)
t_stat = (x_bar - mu0) / (s / np.sqrt(n))
# 하위 검정 1: H0L: mu <= mu0 vs H1L: mu > mu0
t_L = stats.t.ppf(1 - alpha / 2, df=n - 1)
reject_H0L = t_stat >= t_L
# 하위 검정 2: H0U: mu >= mu0 vs H1U: mu < mu0
t_U = -stats.t.ppf(1 - alpha / 2, df=n - 1)
reject_H0U = t_stat <= t_U
# UIT: 하나라도 기각되면 전체 기각
reject_overall = reject_H0L or reject_H0U
p_value_two_sided = 2 * stats.t.sf(abs(t_stat), df=n - 1)
return {
"t_statistic": t_stat,
"reject_H0L (mu <= mu0)": reject_H0L,
"reject_H0U (mu >= mu0)": reject_H0U,
"UIT reject H0": reject_overall,
"p_value (양측)": p_value_two_sided,
"critical_value (±)": t_L,
}
def intersection_union_test(
strength_data: np.ndarray,
flammability_data: np.ndarray,
strength_threshold: float = 50.0,
flame_threshold: float = 0.95,
alpha: float = 0.05,
) -> dict:
"""
IUT 예시: 인장 강도 AND 난연성 동시 검정 (Acceptance Sampling)
H0: {theta1 <= 50 or theta2 <= 0.95}
H1: {theta1 > 50 and theta2 > 0.95}
모두 통과해야 합격(H0 기각)
"""
# 하위 검정 1: 인장 강도 (단측 t 검정)
n = len(strength_data)
x_bar = np.mean(strength_data)
s = np.std(strength_data, ddof=1)
t_stat = (x_bar - strength_threshold) / (s / np.sqrt(n))
t_crit = stats.t.ppf(1 - alpha, df=n - 1)
reject_strength = t_stat > t_crit
p_strength = stats.t.sf(t_stat, df=n - 1)
# 하위 검정 2: 난연성 (이항 검정)
m = len(flammability_data)
successes = int(np.sum(flammability_data))
# 귀무가설: theta2 <= 0.95 → 이항 검정 (우측)
p_flame = stats.binom_test(successes, m, flame_threshold, alternative="greater")
reject_flame = p_flame < alpha
# IUT: 모두 기각해야 전체 기각
reject_overall = reject_strength and reject_flame
return {
"인장 강도 t통계량": t_stat,
"인장 강도 p값": p_strength,
"인장 강도 기각": reject_strength,
"난연성 성공 횟수": successes,
"난연성 p값": p_flame,
"난연성 기각": reject_flame,
"IUT 합격 판정 (H0 기각)": reject_overall,
}
# 시뮬레이션 예시
np.random.seed(42)
print("=== UIT 예시: 양측 t 검정 ===")
data = np.random.normal(loc=2.0, scale=1.0, size=30)
result_uit = union_intersection_test(data, mu0=0.0, alpha=0.05)
for k, v in result_uit.items():
print(f" {k}: {v:.4f}" if isinstance(v, float) else f" {k}: {v}")
print("\n=== IUT 예시: 품질 검수 ===")
strength = np.random.normal(loc=52, scale=5, size=20) # 기준 50, mu=52
flame = np.random.binomial(1, 0.97, size=30) # 기준 0.95, p=0.97
result_iut = intersection_union_test(strength, flame)
for k, v in result_iut.items():
print(f" {k}: {v:.4f}" if isinstance(v, float) else f" {k}: {v}")6.2 Python: 크기 시뮬레이션 (보수성 확인)
import numpy as np
from scipy import stats
def simulate_iut_size(
n_sim: int = 10000,
n: int = 30,
m: int = 30,
alpha: float = 0.05,
seed: int = 42,
) -> dict:
"""
H0 경계에서 IUT의 실제 Type I Error를 시뮬레이션으로 추정
H0: {mu <= 50 or p <= 0.95}
경계점 (50, 0.95): H0 내에서 Type I Error가 최대화되는 지점
"""
rng = np.random.default_rng(seed)
rejections = 0
t_crit = stats.t.ppf(1 - alpha, df=n - 1)
for _ in range(n_sim):
# 경계점에서 생성
strength = rng.normal(50.0, 5.0, n)
flame = rng.binomial(1, 0.95, m)
# 하위 검정 1: 인장 강도
t_stat = (np.mean(strength) - 50.0) / (np.std(strength, ddof=1) / np.sqrt(n))
reject_s = t_stat > t_crit
# 하위 검정 2: 난연성
p_val_f = stats.binom_test(int(np.sum(flame)), m, 0.95, alternative="greater")
reject_f = p_val_f < alpha
if reject_s and reject_f:
rejections += 1
empirical_size = rejections / n_sim
return {
"시뮬레이션 횟수": n_sim,
"실제 Type I Error (IUT)": empirical_size,
"명목 수준 alpha": alpha,
"보수성 비율": empirical_size / alpha,
}
result = simulate_iut_size()
for k, v in result.items():
print(f" {k}: {v:.4f}" if isinstance(v, float) else f" {k}: {v}")
# 예상: 실제 Type I Error << 0.05 → IUT의 보수성 확인6.3 R
library(stats)
# UIT 예시: 정규분포 양측 t 검정
uit_normal <- function(data, mu0 = 0, alpha = 0.05) {
n <- length(data)
t_stat <- (mean(data) - mu0) / (sd(data) / sqrt(n))
t_crit <- qt(1 - alpha / 2, df = n - 1)
cat("=== UIT: 양측 t 검정 ===\n")
cat(sprintf(" t 통계량: %.4f\n", t_stat))
cat(sprintf(" 임계값 (±): %.4f\n", t_crit))
cat(sprintf(" H0L (mu <= mu0) 기각: %s\n", t_stat >= t_crit))
cat(sprintf(" H0U (mu >= mu0) 기각: %s\n", t_stat <= -t_crit))
cat(sprintf(" UIT H0 기각: %s\n", abs(t_stat) >= t_crit))
cat(sprintf(" p값 (양측): %.4f\n", 2 * pt(-abs(t_stat), df = n - 1)))
}
# IUT 예시: 품질 검수
iut_acceptance <- function(strength, flame_pass, s_thresh = 50, f_thresh = 0.95,
alpha = 0.05) {
n <- length(strength)
m <- length(flame_pass)
# 인장 강도 단측 t 검정
t_stat <- (mean(strength) - s_thresh) / (sd(strength) / sqrt(n))
t_crit <- qt(1 - alpha, df = n - 1)
reject_s <- t_stat > t_crit
p_s <- pt(t_stat, df = n - 1, lower.tail = FALSE)
# 난연성 이항 검정
x_flame <- sum(flame_pass)
p_f <- binom.test(x_flame, m, f_thresh, alternative = "greater")$p.value
reject_f <- p_f < alpha
cat("=== IUT: 품질 검수 ===\n")
cat(sprintf(" 인장 강도 t통계량: %.4f, p값: %.4f, 기각: %s\n",
t_stat, p_s, reject_s))
cat(sprintf(" 난연성 성공: %d/%d, p값: %.4f, 기각: %s\n",
x_flame, m, p_f, reject_f))
cat(sprintf(" IUT 합격 판정 (H0 기각): %s\n", reject_s & reject_f))
}
# UIT 실행
set.seed(42)
data <- rnorm(30, mean = 2, sd = 1)
uit_normal(data, mu0 = 0)
# IUT 실행
strength <- rnorm(20, mean = 52, sd = 5)
flame <- rbinom(30, 1, 0.97)
iut_acceptance(strength, flame)7 관련 주제
- 가설검정 개요 — 검정의 기본 구조와 오류 종류
- 우도비 검정 (LRT) — 가장 강력한 단일 검정 도출
- 베이즈 검정 — 사후확률 기반의 대안적 접근
(Casella & Berger, 2002, Ch.8)