1 6.5 Matching — 매칭의 동기와 정당화
각 case 에 confounder 가 비슷한 control 을 짝지음 (Woodward, 2014, Ch.6.5).
매칭 비율: 1:1 (가장 일반적), 1:k (검정력 강화).
매칭 변수: 연령, 성별, 지역, 인종, 진단 시점.
1.1 매칭의 두 가지 동기
- 추상: 진성 OR 의 분산이 confounder 분산의 함수. 매칭으로 confounder 의 두 군 사이 분산 0 → 진성 OR 분산 ↓.
- 일상어 비유: 두 학생의 시험 점수 비교에서 같은 학년·같은 학교로 매칭 → 학년·학교 효과 제거 → 진성 능력 차이 부각.
- 반사실: 매칭 안 하고 회귀 보정만 하면 confounder 의 noise 가 잔존 → 분산 ↑, 검정력 ↓.
1.2 Overmatching 의 함정 (재확인)
가설: 흡연-폐암 case-control 에서 “흡연 가족력” 으로 매칭. 본인 흡연이 가족력과 강한 상관 → 본인 흡연 효과가 매칭으로 약화.
수학적으로: \[ \text{OR}_{\text{matched on mediator}} \to 1 \]
3 단계 직관:
- 추상: \(X \perp Y \mid Z\) 가 매칭으로 강제되면 진성 X-Y 연관이 0 으로 수렴.
- 일상어 비유: IQ-시험 점수 연관 분석에서 “IQ 와 강한 상관 변수 (가정 학습 시간)” 로 매칭 → IQ 차이 자체가 사라짐.
- 반사실: Confounder 만 매칭, mediator 는 매칭 안 함. DAG 의 명시적 분석 도움.
1.3 Frequency Matching vs Individual Matching
| 구분 | 의미 |
|---|---|
| Frequency matching | Case 군과 control 군의 confounder 분포를 비슷하게 (예: 둘 다 50% 남성) |
| Individual matching | 각 case 한 명에게 confounder 비슷한 control 을 직접 매칭 |
- Frequency: 분석 유연 (unmatched analysis 도 가능), 제한적 confounder 만.
- Individual: 정확한 confounder 통제, 분석은 paired (McNemar, conditional logistic).
2 6.6 Analysis of Matched Studies
2.1 McNemar’s Test — Paired 분석의 표준
매칭된 1:1 case-control 쌍의 노출 표.
| Control X=1 | Control X=0 | |
|---|---|---|
| Case X=1 | \(f_{11}\) | \(f_{10}\) |
| Case X=0 | \(f_{01}\) | \(f_{00}\) |
검정 통계량 (continuity correction): \[ \chi^2 = \frac{(|f_{10} - f_{01}| - 1)^2}{f_{10} + f_{01}} \]
자유도 1 의 \(\chi^2\) 분포.
OR 추정: \[ \hat{\text{OR}}_{\text{matched}} = \frac{f_{10}}{f_{01}} \]
2.2 직관 — Concordant vs Discordant Pairs
- 추상: \(f_{11}\) (둘 다 노출) + \(f_{00}\) (둘 다 비노출) = concordant. OR 정보 없음. \(f_{10}, f_{01}\) = discordant. OR 정보 보유.
- 일상어 비유: 쌍둥이 비교에서 둘 다 흡연 또는 둘 다 비흡연인 쌍은 흡연 효과 비교 안 됨. 한 명만 흡연하는 쌍에서만 효과 분리.
- 반사실: Discordant pair 가 작으면 검정력 ↓. Sample size 계산도 discordant 예측 수 기준.
2.3 McNemar OR 의 95% CI
대표본 근사: \[ \log \hat{\text{OR}} \pm 1.96 \sqrt{\frac{1}{f_{10}} + \frac{1}{f_{01}}} \]
소표본은 exact 방법.
2.4 Conditional Logistic Regression
다중 confounder + matched 자료의 회귀 모형.
각 매칭 stratum \(s\) (1 case + k controls) 의 baseline odds \(\alpha_s\) 가 자유롭게 변하도록.
\[ \text{logit}(P(Y=1 \mid \mathbf{X}, s)) = \alpha_s + \boldsymbol{\beta}^T \mathbf{X} \]
각 stratum 의 likelihood 가 conditional likelihood 로 합산.
2.5 Conditional Likelihood 의 직관
- 추상: \(\alpha_s\) 가 stratum 별 자유 파라미터 → 매칭 변수 (연령·성별 등) 의 효과를 자동 통제. Conditional likelihood 가 \(\alpha_s\) 를 적분 제거.
- 일상어 비유: 학교별 baseline 점수가 다를 때, 학교 dummy 를 입력하면 학교 효과 자동 흡수. 단 학교당 학생이 1~k 명이라 일반 회귀 어려움 → conditional 형태로 대응.
- 반사실: 매칭 자료를 unconditional logistic 으로 분석하면 매칭 효과 무시 → 분산 추정 부정확. Conditional 이 매칭 정보를 정확히 반영.
2.6 1:k 매칭의 검정력
| Ratio | Relative Power |
|---|---|
| 1:1 | 100% |
| 1:2 | ~90% |
| 1:3 | ~85% |
| 1:4 | ~80% |
| 1:5+ | plateau |
Sample size: 매칭 1:k 일 때 case 수 줄어드는 비율 = \((k+1) / 2k\).
- 1:1 → case 수 1.0배.
- 1:4 → case 수 0.625배.
즉 1:4 매칭으로 case 수를 약 40% 줄여도 같은 검정력.
2.7 Matched vs Unmatched 의 분석 차이
가설: 1:1 매칭된 자료를 unmatched logistic 분석.
문제: - 분산 추정이 잘못됨 (paired 자료의 상관 무시). - 매칭 변수가 strong confounder 면 OR 의 점추정도 편향.
3 단계 직관:
- 추상: 매칭으로 부여된 stratum 구조를 분석에서 무시 → conditional likelihood 가 아닌 marginal likelihood 사용.
- 일상어 비유: 같은 사람의 측정 두 번을 독립으로 처리 → 분산 과대 추정 (실제로 paired 라 분산이 더 작음).
- 반사실: McNemar 또는 conditional logistic → 매칭 구조 정확 반영. SAS·R·Python 모두 표준 함수 제공.
3 코드 예시 — Matched Case-Control
import numpy as np
import pandas as pd
from scipy.stats import chi2
np.random.seed(42)
n_pairs = 500
# 매칭된 case-control: 매칭 변수 = 연령
# 진성 OR=2 (흡연-폐암)
# Discordant pair 분포
f10 = 80 # case 흡연, control 비흡연 (X-pair: case+, control-)
f01 = 40 # case 비흡연, control 흡연
f11 = 200 # 둘 다 흡연
f00 = 180 # 둘 다 비흡연
# McNemar
chi2_stat = (abs(f10 - f01) - 1) ** 2 / (f10 + f01)
p = 1 - chi2.cdf(chi2_stat, 1)
print(f"McNemar χ² = {chi2_stat:.2f}, p = {p:.4f}")
# Matched OR
matched_OR = f10 / f01
log_OR_se = np.sqrt(1/f10 + 1/f01)
lo = np.exp(np.log(matched_OR) - 1.96 * log_OR_se)
hi = np.exp(np.log(matched_OR) + 1.96 * log_OR_se)
print(f"Matched OR = {matched_OR:.2f} (95% CI: {lo:.2f} ~ {hi:.2f})")해석: Discordant pair 의 비대칭 (\(f_{10} > f_{01}\)) → 흡연자가 case 가 될 odds ↑ → 진성 OR 추정.
Conditional logistic 의 R 또는 Python (lifelines 의 CoxPHFitter 를 trick 적용) 또는 statsmodels 의 PHReg 등으로 다중 변수 매칭 자료 분석 가능.
4 결론
매칭은 strong confounder 통제와 검정력 강화의 도구. 1:4 까지 검정력 ↑, 그 이후 plateau. 매칭 자료는 paired 분석 (McNemar, conditional logistic) 필수. Overmatching (mediator 매칭) 은 noise 에서 효과를 가린다.
다음 글(B27)에서는 cohort 안에 배태된 case-control 의 두 변형 (nested CC, case-cohort) 을 본다.