이 글은 Schulz Ch.15 시리즈의 세 번째 글이다. Ch.15 개관 과 무작위 전 제외 에 이어, 무작위 후 제외와 ITT 원칙 을 깊이 다룬다 (Schulz full md L:6187~6328).
1 진입 직관 — 왜 무작위 후 제외는 위험한가
이전 글에서 무작위 전 제외가 외적 타당도 문제임을 보았다. 무작위 후 제외는 훨씬 더 위험한 문제 — 내적 타당도 직접 위협.
결정적 차이: 무작위 전 제외는 모집단 정의 의 선택. 무작위 후 제외는 baseline 균형의 파괴.
Schulz 의 원칙: “Once randomised, always analysed as assigned.” — 무작위 배정된 모든 환자는 원래 배정된 군의 일부 로 분석. 이는 RCT 의 최후 방어선.
이 원칙은 직관에 반한다. “처치 안 받은 환자도 처치군으로?”, “추적 잃은 환자도 분석에?” 그러나 ITT 의 정당화는 수학적·실증적으로 매우 강하다.
비유: 야구의 라인업. 한 번 공식 라인업 에 든 선수는 그 경기에서 안타를 못 쳐도, 부상으로 빠져도 그 팀의 일원으로 통계 기록. 사후 라인업 변경은 통계의 무결성 자체를 무너뜨림.
2 무작위 후 제외의 위험 메커니즘
2.1 핵심 정리
무작위 배정 직후:
E[X | T=0] = E[X | T=1] (baseline 균형)
무작위 후 *체계적* 제외 발생 시:
E[X | T=0, included] ≠ E[X | T=1, included] (균형 파괴)
수식 직관: 어떤 환자를 제외하느냐가 결과 변수와 상관 되면 baseline 균형이 깨진다. 우연한 제외 는 거의 없다 — 임상의의 결정·환자의 부담·약효의 영향 모두 비무작위.
2.2 4 가지 무작위 후 제외 시나리오
Schulz 가 분류한 시나리오 (Schulz 2019, Ch.15):
| 시나리오 | 메커니즘 | 위험 |
|---|---|---|
| Discovery of ineligibility | 사후 부적격 발견 | 매우 높음 |
| Post-randomisation, pretreatment outcome | 처치 시작 전 사망·결과 | 높음 |
| Protocol deviation | 프로토콜 위반 | 매우 높음 |
| Loss to follow-up | 추적 손실 | 중~높음 |
각 시나리오를 차례로 분석.
3 시나리오 1: Discovery of Ineligibility
3.1 상황
환자가 무작위 배정 후, 사후에 적격 기준을 충족하지 못함이 발견됨. 예:
- 시험 조건이 결핵 양성 환자였는데, 나중에 위양성 이었음을 발견
- 동반 질환 없음 기준이었는데, 기록 검토 후 동반 질환 발견
3.2 직관적 답 (잘못)
잘못된 직관: “이 환자는 처음부터 적격이 아니었으니 제외하자. 적격 기준을 충족한 환자만으로 분석하면 깨끗할 것.”
3.3 왜 위험한가
메커니즘: Discovery 자체가 비무작위.
| 시나리오 | Discovery 가능성 |
|---|---|
| 환자가 처치에 반응 안 함 | 높음 (의사가 더 자세히 검토) |
| 환자가 부작용 호소 | 높음 (재검토 동기) |
| 환자가 순조롭게 진행 | 낮음 (재검토 동기 없음) |
결과: 반응 없거나 부작용 있는 환자가 체계적으로 더 많이 제외 → 남은 환자의 결과가 더 깨끗 → 효과 과대 추정.
3.4 Sulfinpyrazone 사례 (재방문)
이전 글에서 본 사례. FDA audit 의 발견:
| 군 | 사후 부적격 제외 사망자 | 비대칭 |
|---|---|---|
| Sulfinpyrazone (처치) | 6 명 | 우선 제외 |
| Placebo | 1 명 | 동일 ineligibility 가 있어도 적용 안 함 |
결과: 처치군에서 불리한 결과 (사망) 의 환자가 우선 제외 → 처치군이 더 좋아 보임. 32% → 21% 효과 변화.
3.5 적절한 처리
Schulz 의 원칙: “Discovery of ineligibility 환자는 시험에 남는다. ITT 분석에 포함.”
예외: Eligibility 평가가 매우 어려운 경우. 시험 시작 시 모든 환자에게 동일 정보를 수집 + 외부 무작위 reviewer 가 blinded 평가 + 평가 결과로 제외 (또는 포함 결정). 이런 체계적 절차 는 selection bias 차단 가능.
그러나: Schulz 는 예외도 신중 권고. 가능하면 처음부터 모든 정보를 수집 하여 사후 발견 자체를 피하는 것이 최선.
4 Last Possible Moment Randomisation 원칙
4.1 Schulz 의 권고
“무작위 배정의 시점을 처치 시작 직전 으로 늦추는 것이 무작위 후 제외를 최소화한다.” (Schulz 2019, Ch.15)
4.2 메커니즘
| 무작위 시점 | 무작위 후 제외 위험 |
|---|---|
| 환자 식별 즉시 | 높음 — 처치 시작까지 다양한 사건 발생 가능 |
| 적격성 심사 후 | 중간 — 동의·기본 검사 단계의 사건 가능 |
| 처치 시작 직전 | 최소 — 무작위 후 시간이 짧음 |
반사실: 환자 모집 1 주 후 무작위 배정. 그 사이 환자가 마음 변경 (동의 철회), 증상 악화 (적격 미달), 다른 약 시작 (cross-over) 등의 사건 발생 가능. 모두 무작위 후 제외 위험.
개선: 환자 식별 → 적격성 심사 → 동의 → 기본 검사 → 처치 준비 → 무작위 배정 (이 시점에 sequence 봉투 개봉) → 즉시 처치 시작. 무작위 후 사건 발생 시간 최소화.
4.3 실무 적용
| 단계 | Action |
|---|---|
| 1. 환자 모집 | 적격 심사·동의 |
| 2. Baseline 측정 | 모든 측정·검사 완료 |
| 3. 무작위 배정 | sequence 봉투 또는 central randomisation |
| 4. 처치 시작 | 즉시 (수 분 ~ 수 시간 내) |
| 5. 추적 | 정기 follow-up |
so what: 단계 3 → 4 의 시간 간격 을 최소화. 하루 이상 늦어지면 다양한 사건 (사망·의식 변화·다른 약 복용) 발생 가능.
5 ITT vs Per-Protocol vs As-Treated 의 결정적 차이
이미 32-14 에서 비교했지만, 왜 이렇게 다른지 깊이 분석.
5.1 Per-Protocol (PP) Analysis
정의: 프로토콜을 완전 준수 한 환자만 분석.
5.1.1 위험 분석 — Dental Antibiotic 사례
Schulz 가 자주 인용하는 가상 사례 (Ch.15.3 에서 깊이 다룸).
시나리오:
- 1000 명 환자, 500 명씩 무작위 배정
- 처치군: 항생제 (예방용)
- 대조군: placebo
순응:
- 처치군 75% 순응 (375 명)
- 처치군 25% 비순응 (125 명) — 약 미복용
- 대조군 100% 순응 (500 명)
PP 분석은 처치군 순응자 375 명 만 포함. 그러나:
편향: 처치군 비순응자 (125 명) 는 왜 약을 안 먹었는가? 가능 이유: 1. 덜 우려 (자기 건강 자신감) → 처음부터 더 건강 2. 약 부작용 호소 → 원래 약에 민감
대부분 (1) 이라면, 비순응자 = 더 건강 → 제외 시 처치군에 더 위중 환자 남음. 효과 과소 추정 (반대 방향).
또는 (2) 라면, 비순응자 = 더 민감 → 제외 시 처치군에 덜 민감 환자 남음. 효과 과대 추정.
어느 방향이든 편향 발생.
5.2 As-Treated Analysis
정의: 실제 받은 처치별 분석 (배정과 무관).
위 사례에서 As-Treated: - 항생제 받은 사람 (375 명, 처치군 순응자) vs - 항생제 안 받은 사람 (125 + 500 = 625 명, 처치군 비순응자 + 대조군)
편향: 처치군 비순응자가 대조군 풀에 합류. 이들이 더 건강 또는 더 민감 이면 대조군의 baseline 차이 발생. 더 큰 편향.
5.3 modified ITT (mITT) — Schulz 의 비판
정의: 적격 + 약을 최소 1 회 받은 환자만 분석.
Schulz 의 비판 (Schulz 2019, Ch.15):
“mITT 는 ITT 가 아니다. 본질적으로 PP 분석이다. mITT 라는 명명은 misleading.”
5.3.1 왜 mITT 가 misnomer 인가
| 차이 | ITT | mITT | PP |
|---|---|---|---|
| 적격 사후 발견 환자 | 포함 | 제외 | 제외 |
| 처치 거부자 | 포함 | 제외 | 제외 |
| 비순응자 | 포함 | 일부 제외 | 제외 |
메커니즘: mITT 는 일부 무작위 후 제외를 허용. 이 일부가 비무작위 이면 selection bias 침투. ITT 의 본질적 보호 무력화.
5.3.2 실증
Abraha 외 (2015, BMJ) 의 메타-역학 분석:
mITT 시험이 ITT 시험보다 효과 추정이 더 큼 (체계적). 이는 mITT 가 체계적으로 편향 됨의 증거.
5.4 “True ITT” 의 어려움
ITT 는 원칙 이지만 완벽한 실현 은 어렵다. Loss to follow-up 으로 인해 결과 정보 부재 환자 발생. 이 경우 어떻게?
| 처리 | 적절성 |
|---|---|
| 결과 정보 다른 출처에서 (예: 사망 등록부) | 최선 — ITT 보존 |
| Worst-case 가정 (모두 사망 / 모두 생존) | Sensitivity analysis 로 사용 |
| Last observation carried forward (LOCF) | 일반적이지만 가정 강함 |
| Multiple imputation | 통계적 정교성 가능 |
| 부득이 제외 | 차선 — Loss 비율 보고 필수 |
so what: 완벽한 ITT 가 어려워도 가능한 한 모든 환자를 추적. 추적 못한 환자도 원래 배정 군으로 분류 시도.
6 Schulz 외 (1996) — ITT 보고의 충격적 실태
6.1 발견
Schulz, Grimes, Altman, Hayes (1996, BMJ) 의 분석. 1997 년 일반 의학 학술지의 249 RCT 보고:
| 지표 | 비율 |
|---|---|
| 무작위 배정 환자를 모두 분석 한다고 명시적 보고 | 2% (5/249) |
| ITT 를 언급 (그러나 세부 사항 부재) | 약 50% (119/249) |
| Exclusion 보고 부재 | 다수 |
충격: 약 의학 RCT 의 2% 만 명시적 ITT. 이는 ITT 원칙의 실무 적용 실패.
6.2 후속 분석 (Abraha 외 2017)
2349 RCT 메타분석:
| 분류 | 비율 |
|---|---|
| ITT 분석 (적절히 보고) | 25% |
| mITT 분석 (실제로는 PP) | 14% |
| ITT 미보고 | 61% |
so what: 메타분석가는 RCT 라는 이름만 으로 신뢰하면 안 된다. ITT 적절성을 별도 평가.
7 ITT 평가 체크리스트
Reviewer·독자가 ITT 적절성을 평가할 때:
7.1 Step 1: ITT 명시적 보고 여부
[O] “All randomised participants were analysed in the groups to which they were originally allocated.” [X] “ITT analysis 사용” 만 (세부 부재)
7.2 Step 2: Exclusion 의 완전 보고
[O] CONSORT flow diagram 으로 모든 단계 환자 수 [O] Exclusion 사유 분류별 보고
7.3 Step 3: mITT 사용 여부
[X] “mITT” 라는 용어 발견 시 PP 분석으로 의심. 정의를 자세히 확인.
7.4 Step 4: Loss to Follow-Up 처리
[O] Loss 비율 명시 (전체 + 군별) [O] Worst-case sensitivity analysis [X] Loss 환자 단순 제외 (정당화 부재)
7.5 Step 5: Per-Protocol Analysis 의 위치
[O] Secondary analysis 로 명시적 [X] Primary 처럼 보고 (위험)
8 IT / 디지털 실험 매핑
| 역학 (RCT) | IT (A/B Test) |
|---|---|
| Once randomised, always analysed | Once exposed, always analyzed |
| Discovery of ineligibility | “Bot 사후 발견 후 제외” |
| Last possible moment randomisation | Late binding assignment (server-side at request time) |
| Per-Protocol | “활성 사용자만” 분석 |
| As-Treated | “실제 처치 노출 받은 사용자만” |
| mITT | “약간 활동한 사용자만” — 동일 함정 |
| CONSORT flow diagram | Experiment funnel report |
IT 의 흔한 misuse: “활성 사용자만 (DAU > 7) 분석” 이 primary 처럼 사용. 이는 PP 의 IT 버전. 모든 노출 사용자 가 ITT 의 IT 버전.
9 코드 예시 — ITT vs PP 의 효과 차이
import numpy as np
from scipy import stats
np.random.seed(42)
n_per_arm = 500
# Baseline 위험 (continuous)
np.random.seed(42)
risk_T = np.random.beta(2, 5, n_per_arm)
risk_C = np.random.beta(2, 5, n_per_arm)
# 처치 효과
true_effect = 0.20
# 잠재적 결과
Y_T_treat = (np.random.random(n_per_arm) < risk_T * (1 - true_effect)).astype(int)
Y_T_no_treat = (np.random.random(n_per_arm) < risk_T).astype(int)
Y_C = (np.random.random(n_per_arm) < risk_C).astype(int)
# 25% 비순응 — 더 건강한 환자 (낮은 위험) 위주로
def is_nonadherent(risk):
return (risk < 0.3) & (np.random.random(len(risk)) < 0.5)
nonadh_T = is_nonadherent(risk_T)
# 실제 결과: 비순응자는 처치 효과 없음
Y_T_actual = np.where(nonadh_T, Y_T_no_treat, Y_T_treat)
# === ITT ===
itt_T = Y_T_actual.mean()
itt_C = Y_C.mean()
itt_effect = (itt_C - itt_T) / itt_C
print(f"[ITT] 처치 평균: {itt_T:.3f}, 대조 평균: {itt_C:.3f}")
print(f"[ITT] 상대 효과: {itt_effect:.1%}")
# === Per-Protocol (순응자만) ===
adh_T = ~nonadh_T
pp_T = Y_T_actual[adh_T].mean()
pp_C = Y_C.mean() # 대조군은 모두 순응 가정
pp_effect = (pp_C - pp_T) / pp_C
print(f"\n[PP] 처치 평균 (순응자만): {pp_T:.3f}")
print(f"[PP] 상대 효과: {pp_effect:.1%}")
# === As-Treated ===
# 처치군 비순응자 → 대조 풀에 합류
all_treat_actual_received = adh_T # 처치군에서 약 받은 사람
all_y_received = np.concatenate([Y_T_actual[adh_T], Y_T_actual[nonadh_T]])
all_y_received_or_C = np.concatenate([Y_T_actual[adh_T]]) # 약 받은
all_y_no_treat = np.concatenate([Y_T_actual[nonadh_T], Y_C]) # 약 안 받은
at_T = all_y_received_or_C.mean()
at_C = all_y_no_treat.mean()
at_effect = (at_C - at_T) / at_C
print(f"\n[As-Treated] 약 받은: {at_T:.3f}, 약 안 받은: {at_C:.3f}")
print(f"[As-Treated] 상대 효과: {at_effect:.1%}")
print(f"\n[비교]")
print(f"진짜 효과 (모두 처치 시): {true_effect:.1%}")
print(f"ITT (보수적 추정): {itt_effect:.1%}")
print(f"PP (편향 — 비순응자 제외): {pp_effect:.1%}")
print(f"As-Treated (편향): {at_effect:.1%}")
print("\n→ ITT 가 가장 unbiased (실제 정책 효과 추정)")
print("→ PP, As-Treated 는 selection bias 침투")이 코드는 ITT, PP, As-Treated 의 효과 차이를 시뮬레이션. ITT 가 정책 효과 (실제 처방 시 무엇이 일어나는가) 를 측정.
10 결론 — Ch.15.2 의 한 줄 요약
ITT 는 RCT 의 baseline 균형 마지막 보장. 위반은 selection bias 직접 침투.
핵심 메시지:
- 무작위 후 제외는 selection bias — Discovery 자체가 비무작위
- Sulfinpyrazone 32% → 21% — 부적절 제외의 정량 비용
- Last possible moment randomisation — 시간 간격 최소화
- mITT 는 misnomer — 실제는 PP, 효과 체계적 과대
- 2% 만 명시적 ITT 보고 — 실무 적용의 충격적 부재
다음 글: 추적 손실과 Panel 15.2 의 retention 전략.
11 관련 주제
선행 지식
Phase C 후속 글
- 사후 제외와 추적 손실 (placeholder)
12 참고문헌
- Schulz, K. F. & Grimes, D. A. (2019). Essential Concepts in Clinical Research (2nd ed.), Ch.15. Elsevier.
- Schulz, K. F., Grimes, D. A., Altman, D. G., Hayes, R. J. (1996). Blinding and exclusions after allocation in randomised controlled trials. BMJ 312, 742-744.
- Abraha, I., Cherubini, A., Cozzolino, F., et al. (2015). Deviation from intention to treat analysis. BMJ 350, h2445.
- Abraha, I., Cozzolino, F., Orso, M., et al. (2017). A systematic review of deviations from ITT. J. Clin. Epidemiol. 84, 37-46.
- Hollis, S. & Campbell, F. (1999). What is meant by intention to treat analysis? BMJ 319, 670-674.
- Lachin, J. M. (2000). Statistical considerations in the intent-to-treat principle. Control. Clin. Trials 21, 167-189.
- Anturane Reinfarction Trial Research Group. (1978). N. Engl. J. Med. 298, 289-295.
- Temple, R. & Pledger, G. W. (1980). The FDA’s critique of the anturane reinfarction trial. N. Engl. J. Med. 303, 1488-1492.