1 왜 평가 4 질문이 필요한가
코호트 보고를 읽는 입장에서, 정작 결과 수치(RR, HR, CI) 만 보고 끝낼 수는 없다. 이 수치가 신뢰 가능한지를 결정하는 것은 설계의 4 가지 근본 질문에 어떻게 답했는가이다 (Schulz & Grimes, 2019, Ch.4.4).
코호트 보고 평가 4 질문
│
├── Q1. Who is at risk? (위험 인구 정의)
├── Q2. Who is exposed? (노출 정의)
├── Q3. Who is appropriate
│ control? (대조군 적절성)
└── Q4. Have outcomes been
assessed equally? (결과 측정의 균등성)
이 4 질문은 각 단계에서 편향이 침투할 수 있는 진입로다. 한 질문이라도 답이 부실하면 그 단계에서 편향이 들어와 결과 수치 자체를 왜곡한다.
2 Q1 — Who Is at Risk?
연구에 포함된 모든 참여자가 결과를 발생시킬 수 있는 상태여야 한다 (Schulz & Grimes, 2019, Ch.4.4.1).
2.1 사례
- 자궁 절제술을 받은 여성은 자궁경부암을 발생시킬 수 없다 — 자궁이 없으니까. 자궁경부암 코호트에서 자동 제외해야 한다.
- 난관 결찰술을 받은 여성은 거의 0 의 난관염(salpingitis) 위험을 갖는다 (Levgur & Duvivier, 2000) — 난관염 코호트에서 제외.
2.2 직관: 분모 오염의 비용
위험 0 인 사람이 분모에 들어가면 발생률이 희석된다. 100 명 중 50 명이 위험 0 이고 사례가 5 건 발생했다면, 진성 발생률은 5/50 = 10% 이지만 보고된 발생률은 5/100 = 5% 가 된다. 두 군에서 위험 0 비율이 다르면 이 희석이 비대칭으로 작용해 RR 추정도 왜곡된다.
가설: 새 자궁경부 백신의 효과를 평가하는 코호트에서 자궁절제 환자를 분리하지 않으면 — 백신 효과가 자궁절제 환자의 자연 0 위험에 묻혀 약하게 보인다.
올바른 분석은 자궁절제군을 사전 제외하거나, sensitivity analysis 로 결과 변화를 점검한다.
2.3 IT 대응
특정 기능이 노출조차 불가능한 사용자를 분모에서 제외해야 한다.
| IT 사례 | 위험 인구 정의 |
|---|---|
| 결제 페이지 A/B 테스트 | 결제 페이지 도달자만 |
| 푸시 알림 효과 | 푸시 권한 부여자만 |
| 회원 전용 기능 | 로그인 사용자만 |
이 정의를 빼면 비로그인 사용자가 분모에 섞여 효과가 희석된다.
3 Q2 — Who Is Exposed?
코호트는 명확하고 모호하지 않은 노출 정의가 필요하다 (Schulz & Grimes, 2019, Ch.4.4.2). “yes/no” 이분 정의보다 양적 정의(예: 노출량·기간)가 인과 추정에 강하다.
3.1 사례
- 중국 광저우 흡연-비인두암 코호트 (Lin et al., 2015): “6 개월 이상 매일 1 개비 이상” 을 흡연자로 정의.
- 호주·뉴질랜드 super-obesity 임신 결과 (Sullivan et al., 2015): “임신 ≥20 주 + BMI > 50 또는 체중 > 140 kg”을 노출로 정의.
이런 정량적 정의가 후속 dose-response 분석을 가능하게 한다.
3.2 직관: 노출 정의가 인과 분해능을 결정한다
“흡연자 vs 비흡연자” 이분 정의는 유증기적 노출자와 헤비스모커를 한 집단에 묶는다. 결과적으로 dose-response (양-반응) 곡선을 그릴 수 없다 — 0 vs 1 개비/일 vs 20 개비/일이 모두 같은 칸에 들어가니까. 정량 정의는 이 분해능을 살린다.
A/B 테스트에서 “기능 A 사용자 vs 비사용자” 라는 이분 정의는 사용량 분포를 무시한다. 더 정밀한 분석은 사용 횟수·시간·기능 요소 같은 dose-response 차원을 추가한다. ITT 분석과 별도로 dose 분석이 인과 메커니즘을 보강한다.
4 Q3 — Who Is Appropriate Control?
이 질문이 코호트 평가의 가장 까다로운 부분이다. 이상적 비교군은 노출자에서 노출만 빼면 동일한 사람들이다 (Schulz & Grimes, 2019, Ch.4.4.3).
4.1 내부 비교군 vs 외부 비교군
| 비교군 종류 | 정의 | 강점 | 약점 |
|---|---|---|---|
| 내부 (internal) | 같은 시간·장소·집단에서 비노출자 식별 | 시간·장소·진료 환경 자동 균형 | 자기선택 가능 |
| 외부 (external) | 다른 인구에서 비노출자 식별 | 표본 크기 확보 가능 | baseline 위험 차이 |
4.2 내부 비교군이 우월한 이유
스코틀랜드의 statin-유방암 생존 연구 (Mc Menamin et al., 2016): 같은 시기에 유방암 진단을 받은 환자 중 statin 처방자(노출) vs 미처방자(비노출). 두 군 모두 같은 의료 시스템·같은 시기·같은 진단 풀에서 나옴.
같은 병원·같은 시기는 의료 표준·진단 도구·검진 빈도가 동일하다. 이 균형이 측정·분류 편향을 자동 제거한다. 외부 비교군을 쓰면 같은 약을 다른 시기에 다른 병원에서 다르게 정의했을 가능성이 남아 있다.
4.3 Healthy Worker Effect — 외부 비교군의 함정
가설: 한 화학 공장 노동자의 폐암 사망률을 동일 연령·성별의 일반 인구 사망률과 비교한다.
문제: 일하는 사람은 일하지 않는 사람보다 평균적으로 건강하다 — 만성질환·장애로 일을 못 하는 사람이 일반 인구에 포함되어 있기 때문이다. 그래서 공장 노동자가 일반 인구보다 사망률이 낮게 나오는 것이 노출 효과가 아니라 자기선택 효과일 수 있다.
이 편향이 healthy worker effect 다 (Schulz & Grimes, 2019, Ch.4.4.3). 노출의 진짜 위험을 마스킹 하거나 반대 방향으로 왜곡한다.
4.4 외부 비교군 대안
| 대안 | 설명 |
|---|---|
| 같은 지역 다른 공장 | 노동자 자기선택은 공유 → healthy worker effect 부분 통제 |
| 같은 산업 다른 직무 | 작업 조건 차이만 노출로 작용 |
| 인구 표준화율 (SMR) | 사실상 외부 인구 — healthy worker 위험 잔존 |
5 Q4 — Have Outcomes Been Assessed Equally?
결과 측정이 노출 상태와 상관되어 비대칭적으로 이루어지면 정보 편향이 발생한다 (Schulz & Grimes, 2019, Ch.4.4.4).
5.1 객관적 vs 주관적 결과
| 결과 유형 | 예시 | 측정 위험 |
|---|---|---|
| 객관적 | 사망, 발열, 검사값 | 측정 도구만 같으면 비교적 균등 |
| 주관적 | 통증, 피로, 만족도 | 평가자가 노출 상태 알면 편향 |
5.2 Blinded Adjudication
암 진단 같은 객관적 결과도 임상 판정자가 노출 상태를 알면 미세한 진단 기준이 흔들릴 수 있다. 그래서 코호트 결과 평가는 노출 상태에 가려진(blinded) 별도 위원회가 일괄 적용한다 (Dinger et al., 2009). 이를 blinded adjudication 이라 한다.
5.3 사례 — 정의의 모호성이 연구 자체를 무력화한다
- 자궁내막염(endometritis): “자궁이 얼마나 압통이 있어야 진단인가?” 가 정의되지 않아 객관 측정 불가. 발열을 대리 지표로 쓰는 연구가 있다.
- 걸프전 증후군(Gulf War syndrome): 정의가 불명확하여 cohort 결과가 해석 어렵다 (Gronseth, 2005).
- 만성 피로 증후군(chronic fatigue syndrome): 1994 정의에 따라 분류가 크게 변한다 (Unger et al., 2016).
- 대사 증후군: 다양한 정의 때문에 문헌 통합 자체가 불가능 (Ghosh, 2011).
가설: 어떤 코호트가 결과를 “주관적 통증 호소” 로 정의하면, 노출자가 자신의 노출을 알 경우 통증 보고가 강화되어 가짜 효과를 만든다(reporting bias). 반대로 측정 도구가 다양하면 진성 차이가 흐려져 가짜 무효를 만든다.
이런 약한 정의의 영향은 분석 단계에서 보정 불가하다. 설계 단계에서 측정 도구·기준을 명시하는 것이 유일한 회피책이다.
5.4 정보원 다원화
결과 측정의 정확성을 위해 다음과 같은 다원적 자료원을 결합한다.
- 사망진단서 (단, 임상 정보의 타당도는 매우 가변적)
- 의무기록·전자의무기록(EMR)
- 보험 청구 데이터
- 검사 기록·질환 등록부
- 입원 기록
- 직접 검진·측정
다원적 자료원 사용 + blinded adjudication + 신뢰도 등급(definite / probable / suspect) 부여가 표준이다 (Dinger et al., 2009).
6 추적 손실 — 코호트의 운영 핵심
추적 손실이 노출 상태 또는 결과와 상관되면 차별 손실이라 한다. 무작위 손실(missing completely at random)은 검정력만 줄이지만, 차별 손실은 편향을 만든다 (Schulz & Grimes, 2019, Ch.4.5).
6.1 시나리오 — 새 항생제의 부작용 코호트
새 항생제 코호트에서 부작용이 심한 사람이 불응답·조기 이탈한다. 이들이 분석에서 빠지면 남은 코호트는 부작용을 잘 견딘 사람에 편중된다.
결과: 새 항생제가 실제보다 좋아 보인다. 진성 부작용 발생률은 추정에서 누락된다.
이 함정은 단순 평균에 의존하는 분석에서 자동으로 발생한다. 의도적 회피 전략이 없으면 결과는 신뢰할 수 없다.
6.2 회피·완화 전략
| 단계 | 행동 |
|---|---|
| 등록 단계 | 완료 가능성 높은 자만 등록 (외적 타당도 ↓) |
| 등록 시점 | 가족·지인 연락처 사전 확보 |
| 추적 단계 | 가정의 정보, 차량등록·주민등록·사망 색인 활용 |
| 응답 보상 | 시간 손실 보상 → 응답률 유지 |
| 분석 단계 | Sensitivity analysis (손실자 모두 발생/모두 미발생 가정) |
| 분석 단계 | Inverse Probability Weighting (응답 확률 역가중) |
6.3 사례 — INAS-OC 의 다단계 추적
International Active Surveillance Study of Women Taking Oral Contraceptives (INAS-OC) 는 다단계 추적 절차로 142,475 인-년 관찰을 달성했다 (Dinger et al., 2007; 2014). 단계는 다음과 같다.
- 우편 설문 → 미응답자에게 재발송.
- 재발송 미응답자에게 전화.
- 전화 미응답자의 가정의에게 문의.
- 가정의 미응답 시 국가 사망 색인 조회.
각 단계가 손실을 점진적으로 회수한다.
7 Contamination — 노출 상태의 변화
코호트의 또 다른 함정은 노출 상태의 시간 경과 변화다. 경구피임약 사용자가 IUD 로 전환하고, IUD 사용자가 경구피임약으로 전환한다 (Schulz & Grimes, 2019, Ch.4.5).
ITT (Intent-to-Treat) 식 분석은 등록 시점 분류만 본다. 실제 노출이 후속에 변하면 ITT 의 진성 dose-response 신호가 흐려진다.
대응: duration of exposure 로 분할 — 사용 기간 0~6 개월, 6~24 개월, 24+ 개월 같은 카테고리로 dose 효과를 본다.
7.1 IT 대응 — Cross-over 와 Spillover
A/B 테스트에서 사용자가 노출-비노출 사이를 오가는 cross-over, 또는 노출자가 비노출자에게 영향을 주는 spillover 가 코호트 contamination 의 IT 판이다. 무작위 단위가 사용자가 아닌 클러스터(지역·서버·세션) 일 때 통제할 수 있다.
8 코드 예시 — 차별 손실의 영향 시뮬레이션
import numpy as np
import pandas as pd
np.random.seed(42)
n = 2000
# 노출(0/1)
exposure = np.random.binomial(1, 0.5, n)
# 진성 결과: 노출자에게서 부작용 30%, 비노출 10%
true_outcome = np.where(
exposure == 1,
np.random.binomial(1, 0.30, n),
np.random.binomial(1, 0.10, n),
)
# 차별 손실: 노출자 + 결과 발생자가 더 많이 이탈
prob_loss = np.where(
(exposure == 1) & (true_outcome == 1),
0.50, # 부작용 심한 노출자: 50% 이탈
0.10, # 그 외: 10% 이탈
)
lost = np.random.binomial(1, prob_loss, n).astype(bool)
df = pd.DataFrame({"exposure": exposure, "outcome": true_outcome, "lost": lost})
# 진성 RR (모든 사례)
rr_true = (
df.loc[df.exposure == 1, "outcome"].mean()
/ df.loc[df.exposure == 0, "outcome"].mean()
)
# 관찰 RR (손실자 제외)
obs = df.loc[~df.lost]
rr_obs = (
obs.loc[obs.exposure == 1, "outcome"].mean()
/ obs.loc[obs.exposure == 0, "outcome"].mean()
)
print(f"진성 RR = {rr_true:.2f}")
print(f"관찰 RR = {rr_obs:.2f}")
print(f"편향 (관찰/진성) = {rr_obs/rr_true:.2f}")해석: 차별 손실이 있을 때 관찰 RR 은 진성 RR 보다 체계적으로 작아진다. 이 편향은 자료에서 직접 보이지 않으므로, sensitivity analysis 또는 inverse probability weighting 으로 점검·보정해야 한다.
9 결론
코호트 평가 4 질문은 편향이 침투하는 4 가지 진입로다. 각 진입로마다 가정 위반의 결과가 명확히 다르다.
| 질문 | 위반 시 위험 | 회피 |
|---|---|---|
| Who at risk | 분모 오염, 효과 희석 | 위험 0 인 자 사전 제외 |
| Who exposed | 노출 정의 모호, dose 신호 손실 | 정량적 노출 정의 |
| Who control | Selection bias, healthy worker | 내부 비교군 우선 |
| Outcome equal | Information bias | Blinded adjudication, 객관 정의 |
추적 손실은 코호트의 운영 비용이다. 무작위 손실은 검정력만 깎지만, 차별 손실은 편향을 만든다. 다단계 추적 절차와 sensitivity analysis 로 그 영향을 통제한다. 다음 글(B9) 에서는 코호트 보고 표준(STROBE) 과 두 가지 변형 설계(Before-After, Nested Case-Control) 를 본다.
10 관련 주제
다른 카테고리
- Selection Bias — 선택 편향 일반
- Confounding and Control — 교란 통제