1 도입 — Cohort 와 다른 표본 크기 산정
Case-control 시험은 결과 (case 또는 control) 가 사전에 정해지고, exposure 가 측정 된다 (역방향). 이 역설계 가 표본 크기 산정에도 영향을 준다.
2 Case-Control 의 구조
- Case: 결과 (질병, 사건) 발생 환자
- Control: 결과 발생하지 않은 사람 (case 와 비슷한 모집단)
- 측정: 두 그룹의 과거 exposure 비교
이는 cohort 의 역방향 — cohort 는 exposure → outcome, case-control 은 outcome → exposure.
2.1 Cohort vs Case-Control
| 측면 | Cohort | Case-Control |
|---|---|---|
| 시간 방향 | 전향 (forward) | 후향 (backward) |
| 측정 | Exposure → Outcome | Outcome → Exposure |
| 표본 추출 | Exposure 기반 | Outcome 기반 |
| 효과 측정 | RR (가능) | OR (RR 추정에 사용) |
| 희귀 결과 | 비효율 | 효율적 |
| 사례 | 코호트 추적 | 환자-대조군 비교 |
3 표본 크기 공식
Case 와 control 각 그룹에서 exposure 비율 비교. \(p_0\) = control 의 exposure 비율, \(p_1\) = case 의 exposure 비율.
\[ n_{\text{per group}} = \frac{(z_{1-\alpha/2} \sqrt{2 \bar{p}(1-\bar{p})} + z_{1-\beta} \sqrt{p_0(1-p_0) + p_1(1-p_1)})^2}{(p_1 - p_0)^2} \]
여기서 \(\bar{p} = (p_0 + p_1)/2\).
3.1 사례 — 흡연과 폐암
흡연이 폐암 위험을 증가시키는지 case-control 로 검정.
- 일반 모집단의 흡연율 \(p_0 = 0.20\) (control 의 추정)
- 폐암 환자의 흡연율 \(p_1 = 0.50\) (case 의 가설)
- \(\alpha = 0.05\) 양측, power = 0.80
\[ \bar{p} = (0.20 + 0.50)/2 = 0.35 \]
\[ n = \frac{(1.96 \sqrt{2 \cdot 0.35 \cdot 0.65} + 0.84 \sqrt{0.20 \cdot 0.80 + 0.50 \cdot 0.50})^2}{(0.50 - 0.20)^2} \]
\[ = \frac{(1.96 \cdot 0.6745 + 0.84 \cdot 0.640)^2}{0.09} \]
\[ = \frac{(1.322 + 0.538)^2}{0.09} = \frac{3.46}{0.09} \approx 38.4 \to 39 \]
각 그룹 39 명, 총 78 명.
4 OR 기반 공식
Exposure 비율 대신 OR 사용:
\[ \text{OR} = \frac{p_1 (1 - p_0)}{p_0 (1 - p_1)} \]
흡연 사례: \(\text{OR} = \frac{0.50 \cdot 0.80}{0.20 \cdot 0.50} = \frac{0.40}{0.10} = 4.0\).
OR = 4.0 는 흡연자가 비흡연자보다 폐암 4 배 odds. 매우 큰 효과.
4.1 OR 직접 입력
\(p_0\) 와 OR 가 주어졌을 때 \(p_1\) 도출:
\[ p_1 = \frac{p_0 \cdot \text{OR}}{1 + p_0 (\text{OR} - 1)} \]
이 식으로 \(p_1\) 을 자동 계산 후 표본 공식 적용.
5 비대칭 비율 — Multiple Controls
Case 가 희귀 한 경우 (예: 희귀 질환), case 1 명에 대해 여러 control 을 매칭.
\(r\) controls per case 일 때:
\[ n_{\text{cases}} = \frac{(z_{1-\alpha/2} + z_{1-\beta})^2 [p_0(1-p_0)/r + p_1(1-p_1)]}{(p_1 - p_0)^2} \]
총 표본: \(n_{\text{cases}} \cdot (1 + r)\).
5.1 검정력 비교
같은 \(n_{\text{cases}}\) 에서 \(r\) 변화:
| \(r\) (controls per case) | 상대 검정력 |
|---|---|
| 1 | 100 % (기준) |
| 2 | 약 116 % (16 % 향상) |
| 3 | 약 122 % |
| 4 | 약 126 % |
| 5 | 약 129 % |
| 10 | 약 134 % |
\(r\) 증가의 수확체감. \(r = 4\) 부터 추가 효익 미미. 일반적으로 \(r = 4\) 권장.
Case 가 희귀 하고 비싼 경우 (예: 특정 암 환자), 추가 case 는 어려움. 그러나 control 은 비교적 쉬운 모집단에서 추출.
\(r\) 을 늘리면 control 분산 추정 정확. 그러나 \(r > 4\) 부터는 case 분산이 제약 요인 이 되어 추가 control 이 무의미.
따라서 4:1 (4 controls per case) 이 효율 극대화 의 표준 비율.
A/B 테스트 매핑: 처치군 노출이 제한적 (예: 신규 디자인의 위험성으로 5 % 만 노출), 대조군이 95 % 인 비대칭 시나리오. 이때 처치군 → case, 대조군 → control 비유 가능.
6 Matched Case-Control
각 case 를 유사한 특성 의 control 과 매칭하는 설계. 매칭 변수 (연령, 성별, 거주 지역 등) 의 교란 효과 회피.
6.1 표본 크기
매칭된 자료의 분석은 Conditional Logistic Regression 사용. 표본 크기 공식이 다르다.
\[ n_{\text{pairs}} = \frac{(z_{1-\alpha/2} \sqrt{p_d(1-p_d)} + z_{1-\beta} \sqrt{p_d^*(1-p_d^*)})^2}{(p_d^* - p_d)^2} \]
여기서 \(p_d\) 는 exposed-discordant pairs 의 비율 (한쪽만 exposure 인 매칭 쌍의 비율).
6.2 1:1 매칭의 효율성
매칭이 교란 을 통제하므로, 같은 \(n\) 에서 unmatched 보다 검정력 높음 (교란 강도에 의존).
매칭 비효율 시점: 매칭 변수가 outcome 과 무관 하면 매칭이 검정력 손실. 따라서 매칭 변수를 신중히 선택.
7 Cohort 와 표본 크기 비교
같은 가설 (흡연 → 폐암) 에 대해 cohort vs case-control 표본 크기:
7.1 Cohort
흡연자와 비흡연자에서 폐암 발생 추적. 일반적으로 폐암 발생률이 낮음 (예: 비흡연자 1 %, 흡연자 4 %).
\[ n_{\text{per}}^{\text{cohort}} = \frac{(z_{1-\alpha/2} + z_{1-\beta})^2 [p_T(1-p_T) + p_C(1-p_C)]}{(p_T - p_C)^2} \]
\[ = \frac{(1.96+0.84)^2 [0.04 \cdot 0.96 + 0.01 \cdot 0.99]}{(0.03)^2} = \frac{7.84 \cdot 0.04830}{0.0009} \approx 421 \]
각 그룹 421 명. 그런데 발생률이 낮음 → 추적 기간 길어야 의미 있음.
7.2 Case-Control
폐암 환자와 일치 control 의 흡연 비율 비교.
\[ n_{\text{per}}^{\text{case-control}} \approx 39 \text{ (위 사례)} \]
case-control 이 훨씬 적은 표본 사용. 희귀 outcome 에서 case-control 의 효율성.
희귀 결과 시나리오:
- Cohort: 1 % 발생률 → 100 명 추적해야 1 case 관측
- Case-control: 직접 1 case 추출 후 매칭
100 cases + 100 controls = 200 명으로 case-control 가능. Cohort 는 100 cases 얻으려면 10000 명 추적 필요.
따라서 희귀 outcome (암, 희귀 질환) 에서는 case-control 이 표준. 일반 결과 (흔한 질환) 에서는 cohort 가 인과 추론 에 더 유리.
8 코드 예시 — Case-Control 표본 크기
import numpy as np
from scipy.stats import norm
def n_case_control(p0, p1, ratio=1, alpha=0.05, power=0.80, two_sided=True):
"""Case-control 표본 크기 (case:control = 1:ratio)"""
z_a = norm.ppf(1 - alpha/2 if two_sided else 1 - alpha)
z_b = norm.ppf(power)
if ratio == 1:
p_bar = (p0 + p1) / 2
num = (z_a * np.sqrt(2*p_bar*(1-p_bar)) +
z_b * np.sqrt(p0*(1-p0) + p1*(1-p1)))**2
return num / (p1 - p0)**2
else:
# 비대칭 비율
num = (z_a + z_b)**2 * (p0*(1-p0)/ratio + p1*(1-p1))
return num / (p1 - p0)**2
def or_to_p1(p0, OR):
"""Odds ratio 와 p0 에서 p1 도출"""
return p0 * OR / (1 + p0 * (OR - 1))
# 흡연-폐암 사례
p0 = 0.20 # 일반 흡연율
p1 = 0.50 # 폐암 환자 흡연율
n = n_case_control(p0, p1)
print(f"흡연-폐암 (1:1 매칭): n_per = {np.ceil(n):.0f}")
# 비대칭 비율
print("\n비대칭 비율 (희귀 case 시나리오):")
for r in [1, 2, 3, 4, 5, 10]:
n_case = n_case_control(p0, p1, ratio=r)
total = np.ceil(n_case) * (1 + r)
print(f" case:control = 1:{r}, n_cases = {np.ceil(n_case):.0f}, 총 = {total:.0f}")
# OR 기반
print("\nOR 기반 (p0 = 0.10):")
for OR in [1.5, 2.0, 3.0, 4.0, 5.0]:
p1_est = or_to_p1(0.10, OR)
n = n_case_control(0.10, p1_est)
print(f" OR = {OR}: p1 = {p1_est:.3f}, n_per = {np.ceil(n):.0f}")9 Matched Case-Control 자세히
9.1 Matching 의 통계적 의미
매칭 변수가 outcome 과 강하게 연관 될 때 검정력 향상.
매칭 효율 (relative efficiency): \[ \text{RE} = \frac{1}{1 - \rho^2} \]
여기서 \(\rho\) 는 매칭 변수와 outcome 의 상관.
| \(\rho\) | RE |
|---|---|
| 0.0 | 1.00 (효과 없음) |
| 0.3 | 1.10 (10 % 향상) |
| 0.5 | 1.33 |
| 0.7 | 1.96 |
| 0.9 | 5.26 |
따라서 강한 매칭 변수 가 효율적 (예: 연령, 성별).
9.2 Optimal Matching Ratio
비대칭 비율 (\(r\) controls per case) 의 최적값:
import numpy as np
def relative_efficiency(r):
"""1:1 대비 1:r 의 상대 효율"""
return 2 * r / (r + 1)
for r in [1, 2, 3, 4, 5, 10, 20]:
re = relative_efficiency(r)
print(f"1:{r} 매칭의 효율: {re:.3f}")| 비율 | 효율 (1:1=1.0 기준) | Case 수 절감 |
|---|---|---|
| 1:1 | 1.000 | 0 % |
| 1:2 | 1.333 | 25 % |
| 1:3 | 1.500 | 33 % |
| 1:4 | 1.600 | 38 % |
| 1:5 | 1.667 | 40 % |
| 1:10 | 1.818 | 45 % |
| 1:∞ | 2.000 | 50 % (이론적 한계) |
비율 증가의 수확 체감 명확. 1:4 가 일반적인 최적 (case 비용 ↑ 시).
9.3 Matching 의 함정
매칭 변수는 outcome 과 연관 되어야 함. 그러나 exposure 와 강하게 연관 된 매칭 변수는 위험 (over-matching).
예: 폐암 case-control 에서 직장 환경 으로 매칭 → 직장 환경이 흡연과 연관 → 흡연 효과 과소 추정.
매칭 변수 선택 원칙: 1. Outcome 과 연관 (강한 confounder) 2. Exposure 와 연관 X 또는 약함 3. 연구 가설과 무관
A/B 테스트의 stratification 도 같은 원리. 사용자 segment 가 outcome 과 연관 되어야 효율, variant 와 연관 되면 imbalance.
10 사례 — 흡연-폐암 시험 자세히
10.1 Doll & Hill 1950 — 흡연-폐암 case-control
배경: 1940 년대 폐암 급증. 원인 불명.
설계: - Cases: 폐암 환자 1465 명 (런던 병원) - Controls: 비암 환자 1465 명 (같은 병원, 1:1 매칭) - 매칭 변수: 연령 ± 5 년, 성별 - 측정: 흡연 이력 (인터뷰)
결과: - Cases 의 흡연자 비율: 99.7 % - Controls 의 흡연자 비율: 95.8 % - OR ≈ 14 (heavy smokers vs non-smokers)
이 시험이 흡연-폐암 인과 관계 의 첫 강한 증거. 후속 cohort 시험 (Hammond, Doll-Peto) 이 인과 입증.
10.2 Bradford Hill Criteria
이 시험을 계기로 Bradford Hill 이 인과 추론 9 기준 정식화 (1965):
- Strength of association
- Consistency
- Specificity
- Temporality
- Biological gradient
- Plausibility
- Coherence
- Experiment
- Analogy
이 기준이 역학 인과 추론의 표준. 각 기준이 case-control 시험 설계 에 영향.
11 Case-Control 의 함정
11.1 Selection Bias
Case 와 control 의 선택 이 exposure 와 연관 → 편향.
흔한 형태:
- Berkson’s bias: 병원 cases vs 병원 controls — 병원 입원 자체가 exposure 와 연관 가능
- Recall bias: Cases 가 controls 보다 exposure 를 더 잘 기억 (질병 후 회상의 편향)
- Healthy worker effect: Worker 모집단의 비교가 일반 모집단과 다름
11.2 회피 방법
- Hospital-based 보다 population-based controls 선호
- Multiple control sources (병원 + 일반 모집단)
- Blinded interview — 인터뷰어가 case/control 모름
- Standardized questionnaire — Recall bias 줄임
12 Nested Case-Control
대규모 코호트 시험 안에서 발생한 cases 와 무작위 controls 비교.
장점: - Selection bias 최소 (코호트 내 무작위 선택) - 비싼 측정 만 case + control 에 수행 (예: 유전체 분석) - 시간 정보 활용 (코호트의 추적 시간)
표본 크기: 코호트 표본 크기 + matching ratio 결정.
12.1 Framingham 예시
Framingham Heart Study 의 nested case-control:
- 코호트: 5209 명 추적 70 년+
- Cases: 심근경색 발생자
- Controls: 코호트 내 무작위 비-MI
이 nested 설계가 비싼 유전체 분석 + 바이오마커 측정 의 비용 효율.
13 Conditional vs Unconditional Logistic Regression
매칭 자료 분석:
Conditional Logistic Regression: \[ \log \frac{p_i}{1-p_i} = \alpha_i + \beta X_i \]
매칭 stratum 마다 별도 절편 \(\alpha_i\). Stratum 효과를 조건부 처리.
Unconditional Logistic Regression:
매칭 변수를 공변량으로 포함하여 일반 회귀.
차이: - Conditional: 매칭 보존, 작은 stratum 에 적합 - Unconditional: 매칭 변수 효과도 추정, 큰 stratum 에 적합
매칭 자료에서는 일반적으로 Conditional Logistic Regression 권장.
14 A/B 테스트의 Case-Control 매핑
A/B 테스트에서 case-control 격 분석은 드물지만 retrospective 분석 에 적용:
14.1 시나리오 — Churn 분석
Cases: 이탈한 사용자 (churned)
Controls: 활성 사용자 (matched on tenure + segment)
Exposure: 신규 기능 사용 여부
분석: 신규 기능 사용이 churn 과 *연관* 되는가?
방법: Matched logistic regression (conditional)
이 retrospective 분석이 RCT 가 아닌 인과 추론. 무작위 배정 없으므로 교란 의심 항상.
15 Case-Control 의 한계
- Recall bias — Cases 의 회상 편향
- Temporal ambiguity — Exposure → outcome 시간 순서 명확 X (cross-sectional 측정)
- Selection bias — Control 선택의 어려움
- OR 만 추정 — RR 직접 추정 불가 (희귀 outcome 외)
- Confounding — 매칭 외 confounder 통제 어려움
이 한계로 RCT 또는 cohort 가 인과 추론에 우월. Case-control 은 희귀 outcome + 비용 제약 에서만.
16 후속 — 복잡 표집과 결론
다음 글 A-WOO8-5 는 cluster sampling, stratified sampling 등 복잡 설계의 표본 크기를 다룬다.
17 관련 주제
선행 지식
후속 주제 (Phase A)
- A-WOO8-5 복잡 표집 + 결론
- A-BUI7-* (부트스트랩)
다른 카테고리 연결