1 노출 측정 — Case-Control 의 두 번째 함정
Control 선정이 첫 번째 함정이라면, 노출 측정이 두 번째 (Schulz & Grimes, 2019, Ch.5.4). 두 함정 모두 OR 을 큰 폭으로 흔든다.
1.1 Recall Bias — 회상 편향
같은 노출에 대해 cases 와 controls 의 회상 정확도가 다른 현상. Cases 는 자기 진단의 원인을 회상하기 위해 더 깊이 떠올림 (Schulz & Grimes, 2019, Ch.5.4).
1.2 사례 — 유방암-경구피임약 회상 (Stadel et al., 1985)
시나리오: 20~54 세 유방암 case-control. 미디어가 “경구피임약과 유방암의 의심” 을 보도한 후 case 와 control 모두에게 과거 경구피임약 사용을 회고 질문.
잠재 편향: - Case (유방암): 미디어 보도를 듣고 자기 암의 원인을 회상하려 노력 → 과거 약 사용을 더 정확히/적극적으로 떠올림. - Control (비암): 같은 질문에 무관심하므로 회상 노력 ↓ → 과거 약 사용을 잊거나 부인.
결과: case 의 노출 보고 ↑ + control 의 노출 보고 ↓ → OR 가짜로 ↑ — 약-암 연관이 과장.
3 단계 직관:
- 추상: \(E[X_{\text{report}} \mid X=1, Y] \neq \text{indep of } Y\). 측정 오차가 결과 상태에 의존.
- 일상어 비유: 회사 IT 사고 후 “사고 직전에 무엇을 했는가” 를 사고 당사자와 일반 직원에게 묻기. 당사자는 더 깊이 회상, 일반은 잊음.
- 반사실: 만약 회상 오차가 두 군에 동등(non-differential misclassification) 하면 효과 추정이 약화될 뿐 방향은 보존. 차별 회상은 효과 자체를 위조.
1.3 사례 — Swedish 낙태-유방암 연구 (Lindefors-Harris et al., 1991)
연구: 유도 낙태와 후속 유방암의 연관 case-control.
노출 측정 두 방법: 1. 개인 인터뷰: 본인에게 과거 낙태 여부 질문. 2. 국가 의료 기록: 객관 자료원 점검.
발견: - Cases 의 인터뷰 보고 ≈ 의료 기록. - Controls 의 인터뷰 보고 < 의료 기록 — Control 이 낙태 보고를 누락.
결과: 인터뷰만 보면 case 의 낙태 보고가 control 보다 ↑ → OR 가짜로 ↑. 의료 기록 비교로 진성 OR 은 1 에 가까움.
3 단계 직관:
- 추상: 사회적 stigma → control 이 낙태 보고를 회피. Case 는 자기 암을 설명하기 위해 정직 보고. → 차별 회상 발생.
- 일상어 비유: “지난 1 년 운동 횟수” 질문에 건강한 사람은 정직 보고, 건강하지 않은 사람은 운동량을 부풀려 보고 → 운동-건강 연관이 약화.
- 반사실: 객관 자료원 (의료 기록) 으로 측정하면 차별 회상 회피. 그러나 자료가 없거나 접근 불가하면 한계.
1.4 Interviewer Bias — 데이터 수집자의 편향
데이터 수집자(인터뷰어)가 case/control 상태를 알면, 무의식적으로 다음 차이를 만든다.
- Case 에게 더 깊이 캐묻기.
- 노출 가설을 case 에게 더 강하게 시사.
- Control 에게 noise 한 응답을 더 빨리 통과시키기.
결과: 측정 자체가 case 상태에 의존 → information bias.
3 단계 직관:
- 추상: \(\text{Measurement protocol}_{\text{case}} \neq \text{Measurement protocol}_{\text{control}}\) — 수집 절차의 비대칭.
- 일상어 비유: 면접관이 후보의 합격 여부를 알고 인터뷰. 합격자에게 더 너그러운 질문.
- 반사실: Blinding (수집자가 case 상태 모름) → 절차 대칭. Hypothesis blinding (수집자가 가설을 모름) 도 차선.
2 Memory Aids — 회상 균형의 도구
Recall bias 를 줄이는 핵심 전략 — 두 군에게 같은 회상 자극을 제공.
2.1 사례 — 경구피임약 사진 앨범 (Stadel et al., 1985)
도구: 1. 사진 앨범: 지난 수십 년의 모든 경구피임약 색채 사진. 디자인·색상이 시간 단서. 2. 빈 calendar grid: “결혼·출산·이사 등 주요 사건” 표기 후 각 사건 옆에 약 사용 표기.
효과: - Case 와 control 모두에게 동일한 시각·시간 단서 → 회상 노력의 베이스라인 동등. - 무작위 회상 오차 ↓ (양 군에서 모두 정확). - 차별 회상 ↓ (왜냐하면 외부 단서가 회상을 표준화).
3 단계 직관:
- 추상: Memory aid → \(\text{Recall accuracy}_{\text{case}} = \text{Recall accuracy}_{\text{control}}\) 가까이 수렴.
- 일상어 비유: 시험에서 모든 학생에게 같은 cheat sheet 를 제공 → 학생 간 비교가 진성 능력 차이만 반영.
- 반사실: Aid 없으면 case 가 자기 암 원인을 회상하려 노력 ↑, control 은 노력 ↓ → 차별 회상 누적.
2.2 Memory Aid 의 종류
| 도구 | 활용 |
|---|---|
| 사진 앨범 | 약·제품·기기 식별 |
| Calendar grid | 시간 단서 (결혼·출산·이사) |
| 다이어리 | 일상 행동 (식이·운동) |
| 의무 기록 | 객관적 의료 사용 |
| 보험 청구 | 진단·처방 |
| 직장 기록 | 직업 노출 |
2.3 Schulz 의 권장
Schulz 가 권하는 점검 — Case-control 보고가 memory aid 사용을 명시하지 않으면 회의적으로 읽어라. Recall bias 회피 노력이 보고되지 않으면 결과의 신뢰성이 흔들린다.
3 Confounding 통제 — 4 가지 방법
Cohort 와 마찬가지로 case-control 도 confounding 의 영향을 받는다 (Schulz & Grimes, 2019, Ch.5.5).
3.1 정의 — Confounding 의 재확인
노출과 결과 모두에 영향을 미치는 제 3 의 변수 \(Z\) 가 존재. \(Z\) 가 보정되지 않으면 노출-결과 연관이 \(Z\) 의 효과로 오역.
Z (confounder)
↙ ↘
X (exposure) ─→ Y (outcome)
3 단계 직관:
- 추상: \(P(Y \mid X) \neq P(Y \mid X, Z)\) — Z 미조정 효과 추정과 조정 효과 추정이 다름.
- 일상어 비유: 음주-폐암 연관이 흡연 confounding 으로 부풀려짐. 흡연자는 술도 더 마시고 폐암도 더 많이 걸리니까.
- 반사실: \(Z\) 가 효과 경로 위에 있다면 보정하면 안 됨 (mediator). \(Z\) 가 X·Y 의 공통 원인이면 보정 필수.
3.2 방법 1 — Restriction (제한)
설계 단계에서 confounder 가 동질인 부분 인구만 모집.
예시: 흡연이 confounder 라면 비흡연자만 모집 → 흡연 효과 자동 제거.
| 강점 | 약점 |
|---|---|
| 가장 단순 | 표본 ↓, 일반화 ↓ |
| Confounder 효과 완전 제거 | 다른 변수의 confounding 잔존 |
- 추상: \(P(Y \mid X, Z = z_0)\) 만 추정. 다른 \(z\) 의 정보 폐기.
- 일상어 비유: 흡연자만 보거나 비흡연자만 보거나. 두 군의 평균 효과를 보지 못함.
- 반사실: 모집 단계에서 흡연자를 다 빼면, 비흡연자에서의 약 효과만 추정. 일반 인구의 평균 효과와 다를 수 있음 (effect modification 가능성).
3.3 방법 2 — Matching (매칭)
각 case 에 confounder 가 비슷한 control 을 짝지음.
대표 매칭 변수: 연령, 성별, 지역, 인종.
분석: Conditional logistic regression 또는 stratified MH.
Overmatching: 노출-결과 경로의 매개 변수(mediator) 또는 노출 자체와 강한 상관 변수를 매칭 → 노출 효과 자체가 사라짐.
예시: 흡연-폐암 case-control 에서 “흡연 가족력” 으로 매칭 → 본인 흡연이 가족력과 강한 상관이라 본인 흡연 효과가 약화.
3 단계 직관:
- 추상: \(X \perp Y \mid Z\) 가 매칭으로 강제되면, 진성 X-Y 연관이 0 으로 수렴.
- 일상어 비유: 두 학생의 IQ 효과를 보고 싶은데 IQ 와 강한 상관 변수(가정 학습 시간) 으로 매칭하면 IQ 차이 자체가 사라짐.
- 반사실: Confounder 만 매칭하고 mediator 는 매칭 안 함. 인과 그래프 (DAG) 의 명시 도움.
3.4 방법 3 — Logistic Regression
가장 일반적인 분석 단계 보정. 로짓 모형: \[ \text{logit}(P(Y=1 \mid X, Z)) = \beta_0 + \beta_X X + \beta_Z Z \]
$(_X) = $ Z 보정된 OR.
- 추상: 모형이 X-Y 연관을 Z 의 선형 결합으로 분해. \(\beta_X\) 는 “Z 일정 시” 의 X 효과.
- 일상어 비유: 음주-폐암 자료에 흡연을 동시에 입력 → 흡연을 일정하게 두었을 때 음주의 효과만.
- 반사실: 모형이 Z 의 효과를 잘못 모형화 (예: Z 가 비선형이지만 선형 입력) 하면 잔여 confounding (residual confounding). 더 유연한 모형 (스플라인, 머신러닝) 또는 IPW.
3.5 방법 4 — Mantel-Haenszel Stratification
Confounder \(Z\) 의 strata 별로 OR 계산 후 가중 합산.
MH OR 추정: \[ \text{OR}_{\text{MH}} = \frac{\sum_s a_s d_s / n_s}{\sum_s b_s c_s / n_s} \]
여기서 \(s\) 는 strata, \(n_s = a_s + b_s + c_s + d_s\).
Breslow-Day 검정: Strata 간 OR 동질성 검정. 동질이 아니면 effect modification → strata 별 OR 별도 보고.
- 추상: 각 stratum 의 OR 을 stratum 크기 + 분포로 가중. 큰 stratum + 균형 잡힌 분포의 가중치 ↑.
- 일상어 비유: 학교별 평균 점수의 가중 평균. 학교 크기와 점수 분산을 함께 고려.
- 반사실: 단순 평균은 작은 stratum 에 과한 가중. MH 의 가중이 정보의 양에 비례.
3.6 방법 비교
| 방법 | 단계 | 강점 | 약점 |
|---|---|---|---|
| Restriction | 설계 | 단순, 완전 제거 | 표본 ↓, 일반화 ↓ |
| Matching | 설계 | 강한 confounder 통제 | Overmatching 위험 |
| Logistic regression | 분석 | 다중 보정 가능 | 모형 의존 |
| Mantel-Haenszel | 분석 | 비모수, 직관적 | 다중 confounder 시 복잡 |
4 잔여 Confounding (Residual Confounding)
가설: 흡연을 “ever / never” 로만 측정 → 헤비 스모커와 가벼운 스모커 같은 집단. 다변량 회귀에 흡연 변수를 입력해도 정밀도가 부족하므로 흡연이 정밀하게 보정되지 않음 → 잔여 confounding.
3 단계 직관:
- 추상: 측정된 \(\tilde Z\) 가 진성 \(Z\) 의 noise 가 있는 추정 → 보정이 부분만 효과.
- 일상어 비유: 음주를 “마신다/안 마신다” 로만 측정. 매일 vs 가끔이 같은 칸에 → 보정이 부정확.
- 반사실: 정량적 측정 (개비/일, 잔/주) 을 사용하거나, 객관 자료원 (혈액 cotinine 검사) 활용.
Schulz 의 메시지: “Researchers cannot control for a variable for which they have no data. Moreover, invalid measurement of potential confounding factors leads to residual confounding, even after adjustment.”
5 Schulz 의 모범 보고 — 예방적 사전 계획
좋은 case-control 보고는 다음을 명시.
- Confounding 가설: 어떤 변수가 confounder 가 될 수 있는가.
- 측정 도구: 각 변수를 어떻게 측정했는가.
- 통제 전략: Restriction / matching / regression / MH 중 어느 것을 왜 사용했는가.
- 민감도 분석: 잔여 confounding 가정 시 결과 변화 (E-value 등).
이 4 가지가 누락된 보고는 OR 의 신뢰성이 흔들린다.
6 코드 예시 — MH OR + 다변량 logistic
import numpy as np
import pandas as pd
import statsmodels.api as sm
np.random.seed(42)
# 가상 case-control: confounder Z (흡연), exposure X (음주), outcome Y (폐암)
n = 1000
Z = np.random.binomial(1, 0.4, n) # 흡연자 40%
X = np.random.binomial(1, 0.2 + 0.4 * Z, n) # 흡연자가 음주 더
Y = np.random.binomial(1, 0.05 + 0.20 * Z + 0.05 * X, n) # 흡연이 강한 폐암 위험
df = pd.DataFrame({"Y": Y, "X": X, "Z": Z})
# Crude OR (Z 미보정)
crude_table = pd.crosstab(df["X"], df["Y"])
a, b = crude_table.iloc[1, 1], crude_table.iloc[1, 0]
c, d = crude_table.iloc[0, 1], crude_table.iloc[0, 0]
crude_OR = (a * d) / (b * c)
print(f"Crude OR (X-Y, Z 미보정): {crude_OR:.2f}")
# Mantel-Haenszel by Z
mh_num, mh_den = 0, 0
for z in [0, 1]:
sub = df[df["Z"] == z]
a_s = ((sub["X"] == 1) & (sub["Y"] == 1)).sum()
b_s = ((sub["X"] == 1) & (sub["Y"] == 0)).sum()
c_s = ((sub["X"] == 0) & (sub["Y"] == 1)).sum()
d_s = ((sub["X"] == 0) & (sub["Y"] == 0)).sum()
n_s = a_s + b_s + c_s + d_s
mh_num += (a_s * d_s) / n_s
mh_den += (b_s * c_s) / n_s
MH_OR = mh_num / mh_den
print(f"Mantel-Haenszel OR (Z 보정): {MH_OR:.2f}")
# Logistic regression
X_design = sm.add_constant(df[["X", "Z"]])
model = sm.Logit(df["Y"], X_design).fit(disp=0)
adj_OR_X = np.exp(model.params["X"])
print(f"Logistic Regression OR (Z 보정): {adj_OR_X:.2f}")해석: Crude OR 은 Z 의 confounding 으로 부풀려짐. MH 와 logistic regression 이 비슷한 보정 OR 산출. 두 방법은 거의 같지만 logistic 이 다중 보정에 더 유연.
7 결론 — Case-Control 5 원칙의 마무리
Schulz Ch.5 의 5 원칙 (B15) 을 다시 정리.
| 원칙 | 회피 편향 | 도구 |
|---|---|---|
| 1. Case 정의 명료성 | Misclassification | Incident, eligibility 명시 |
| 2. Control source 일치 + 노출 독립 | Selection bias | Population-based, RDD |
| 3. Blinding | Interviewer bias | 수집자 case 상태 모름 |
| 4. Memory aid | Recall bias | 사진·calendar·기록 |
| 5. Confounding 통제 | 잔여 교란 | Restriction/matching/regression/MH |
이로써 SCH Ch.5 시리즈가 마무리된다. 다음 묶음(SCH Ch.6) 은 control 선정의 더 깊은 분류 — friend, relative, hospital, neighbourhood, RDD 의 비교를 다룬다.
8 관련 주제
- SCH Ch.5 overview
- Basic Design + 강점·약점
- Case·Control 선정
- 1111-11-11, Compared to What? — Finding Controls (SCH Ch.6)
다른 카테고리