무작위 후 제외와 ITT — Ch.15.2

Discovery of Ineligibility · Last Possible Moment · mITT 의 misnomer

Schulz Ch.15.2 — 무작위 제외의 결정적 위험과 ITT 원칙의 정당화. (1) 무작위 후 ineligibility 발견의 selection bias 메커니즘 (Sulfinpyrazone 재방문), (2) Last possible moment randomisation 원칙, (3) mITT (modified ITT) 의 misnomer 비판 — 사실은 PP 분석, (4) Schulz 외 (1996) 의 “단 2% 만 명시적 ITT 보고” 충격, (5) Reviewer 가 ITT 적절성을 평가하는 체크리스트.

Experimentation
Epidemiology
저자

Kwangmin Kim

공개

2026년 05월 08일

이 글은 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 직접 침투.

핵심 메시지:

  1. 무작위 후 제외는 selection bias — Discovery 자체가 비무작위
  2. Sulfinpyrazone 32% → 21% — 부적절 제외의 정량 비용
  3. Last possible moment randomisation — 시간 간격 최소화
  4. mITT 는 misnomer — 실제는 PP, 효과 체계적 과대
  5. 2% 만 명시적 ITT 보고 — 실무 적용의 충격적 부재

다음 글: 추적 손실과 Panel 15.2 의 retention 전략.

11 관련 주제

선행 지식

Phase C 후속 글

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.

Subscribe

Enjoy this blog? Get notified of new posts by email: