Effect Measures: 효과·영향·인과 추정량 종합

RR/OR 의 짝 — 절대 효과 (RD/NNT), 인구 영향 (PAR), 인과 추정량 (ATE/ITT), 검정·강건성

Risk·RR·Odds·OR 외에 epidemiology·A/B test·study design 에서 의무적으로 함께 보고되는 효과 지표를 한 글에 정리한다. 절대 효과 (Risk Difference·NNT·NNH), 인구 귀속 (Attributable Risk·PAR), 인과 추정량 (ATE·ATT·ITT·LATE), 통계 검정·구간 (p·CI·power·Cohen’s d), 강건성 분석 (E-value·Rosenbaum), A/B 효과 lens (OEC·MDE·CUPED) 까지 9 카테고리 중 5 개를 다룬다.

Epidemiology
Experimentation
Causal Inference
저자

Kwangmin Kim

공개

2026년 05월 08일

이 포스트는 relative_risk_odds_ratio.qmd (RR·OR 정의) 의 후속이다. RR·OR 만으로는 의사결정에 부족한 이유, 그리고 함께 보고해야 하는 절대·인구·인과·강건성 지표를 통합한다.

1 정의

정의: Effect Measure

노출 (exposure / treatment) 이 결과 (outcome) 에 미치는 효과의 크기·방향·정밀도를 정량화하는 통계량이다.

  • 연관성 지표 (measure of association): 노출과 결과의 통계적 동반 변동 — RR, OR, Rate Ratio
  • 효과 지표 (measure of effect): 노출의 인과적 결과 — RD, ARR, NNT
  • 영향 지표 (measure of impact): 노출 제거 시 인구 전체에서 줄어드는 위험 — AR, PAR, PAF
  • 인과 추정량 (causal estimand): 잠재적 결과로 정의된 모집단 모수 — ATE, ATT, ITT, LATE

연관성과 효과는 동일한 수치이지만 해석 lens 가 다르다. RR = 1.5 는 “노출군이 1.5 배 위험” (연관성) 인 동시에, 노출과 결과가 인과적으로 연결되어 있다면 “노출 때문에 1.5 배 위험” (효과) 으로 읽힌다. 인과적 해석은 가정 (교환가능성·일관성·양수성) 이 만족될 때만 정당하다 (Hernan & Robins, 2020, Ch.3).

직관: 왜 4 종류 lens 가 모두 필요한가

같은 데이터에서 같은 RR = 2.0 이 나와도, 의사결정자는 4 가지 다른 질문에 답해야 한다.

질문 답하는 lens 지표
“노출군과 비노출군의 위험이 얼마나 다른가?” 연관성 RR, OR
“한 사람이 노출되면 위험이 절대적으로 얼마나 늘어나는가?” 효과 RD, ARR, NNT
“이 노출을 사회 전체에서 제거하면 사건이 얼마나 줄어드는가?” 영향 AR, PAR, PAF
“이 효과가 인과적으로 처치 때문인가, 우연이나 교란 때문인가?” 인과 ATE, ATT, ITT

RR/OR 만 알면 첫 번째 질문에만 답하고, 임상·정책·인과 의사결정에는 부족하다. 의약 가이드라인이 RR 외에 ARR·NNT·E-value 까지 함께 보고하도록 의무화된 것은 이 때문이다.

2 절대 효과 — RR/OR 가 절대 못 말하는 것

RR/OR 은 상대적 비율이라 임상·비즈니스 의사결정의 임팩트를 직접 보여주지 못한다. RR = 2.0 이라도 절대 위험이 0.0001 → 0.0002 면 100 명을 노출시켜도 1 명의 추가 사건도 생기지 않는다.

직관: “상대 1.5 배” vs “절대 0.001%p”
  • 약 A: 사망률 8% → 4% (RR = 0.5, RRR = 50%, ARR = 4%p, NNT = 25)
  • 약 B: 사망률 0.0008% → 0.0004% (RR = 0.5, RRR = 50%, ARR = 0.0004%p, NNT = 250,000)

RR 만 보면 두 약의 효과가 같지만, NNT 로 보면 약 B 는 25 만 명 처방해야 1 명 살린다. 비용·부작용 대비 가치가 절대 같지 않다.

2.1 위험차 — Risk Difference (RD) / Absolute Risk Reduction (ARR)

\[ \text{RD} = P(\text{사건} \mid \text{노출}) - P(\text{사건} \mid \text{비노출}) = p_E - p_{\bar E} \]

방향이 반대면 (예: 처치가 사건을 줄이는 경우) 절대 위험 감소 (Absolute Risk Reduction, ARR) 라 부른다.

\[ \text{ARR} = p_C - p_T \]

  • 단위: percentage point (%p) — % 가 아님에 주의
  • 해석: 노출이 한 사람에게 평균적으로 더해지는 위험의 절대량
  • A/B test 의 “uplift” 와 동일한 양

2.2 상대 위험 감소 — Relative Risk Reduction (RRR)

\[ \text{RRR} = 1 - \text{RR} = \frac{p_C - p_T}{p_C} \]

  • 단위: 비율 (%)
  • 임상에서는 RRR 이 “큰 인상” 을 주므로 (50% 감소!) 의약·헬스케어 광고에 자주 등장. ARR 과 함께 보고하지 않으면 오도 가능 (위 직관 박스 참조).

2.3 Number Needed to Treat (NNT) / Number Needed to Harm (NNH)

\[ \text{NNT} = \frac{1}{\text{ARR}}, \quad \text{NNH} = \frac{1}{\text{ARI}} \]

여기서 ARI (Absolute Risk Increase) 는 처치가 부작용을 늘리는 경우의 절대 차이.

  • NNT 의 의미: 1 명의 사건을 예방하기 위해 평균적으로 몇 명을 처치해야 하는가
  • NNH 의 의미: 1 명의 부작용이 발생할 때까지 평균적으로 몇 명을 노출시키는가
  • 항상 정수로 올림 (5.3 → 6) — “5.3 명 처치” 는 의미 없음
직관: 왜 1 / ARR 인가

ARR = 0.04 = 4%p 의 의미를 풀어보면 “처치를 받은 100 명 중 처치 덕분에 사건을 피한 사람이 4 명” 이다. 따라서 1 명의 사건을 예방하려면 몇 명을 처치해야 하는가? 100 / 4 = 25 명이다. 일반화하면 \(\text{NNT} = 1 / \text{ARR}\).

역산도 가능: 마케팅에서 “이 캠페인은 NNT = 50” 이라고 들으면, 50 명에게 캠페인을 보내야 1 명의 추가 전환이 생긴다는 뜻이다. 캠페인 단가 × 50 ≤ 1 명의 LTV 가 의사결정 임계.

작은 NNT 가 항상 좋은가? 그렇지 않다. NNT 의 절대값만 봐서는 안 되고 (1) 사건의 심각성 (사망 vs 가벼운 두통), (2) 처치의 부작용·비용, (3) 표본 크기 → CI 폭을 함께 봐야 한다. 항암제는 NNT = 50 이라도 가치 있고, 비타민제는 NNT = 5 라도 부작용이 있으면 무가치할 수 있다.

NNT 의 비즈니스 의사결정 활용
AI 추천 시스템 A/B Test
  대조군 이탈률: 40%, 처치군 이탈률: 30%
  ARR = 10%p, NNT = 1 / 0.10 = 10

  → 10 명에게 추천을 적용하면 평균 1 명의 이탈을 방지

비용-효과 결정:
  추천 비용: 사용자당 월 $2 → NNT × 비용 = $20
  고객 LTV: $200
  $20 < $200 → 경제적으로 타당

  만약 NNT = 200 이면: $400 > $200 → 비경제적

이 방식은 22-study-design-validity-bias-causal.qmd §6 에서 확장 다룬다.

3 인구 영향 지표 — 정책·공중보건의 lens

같은 RR 이라도 노출 인구 비율 에 따라 사회 전체에 미치는 영향은 천차만별이다. 흡연 (RR 폐암 ≈ 20, 노출률 25%) 과 라돈 (RR 폐암 ≈ 1.5, 노출률 5%) 은 RR 만 보면 흡연이 압도적이지만, 노출률을 곱한 인구 영향 은 흡연 vs 라돈 모두 공중보건상 의미가 있다.

3.1 Attributable Risk (AR) / Attributable Risk Percent (AR%)

\[ \text{AR} = p_E - p_{\bar E} = \text{RD}, \quad \text{AR\%} = \frac{p_E - p_{\bar E}}{p_E} = \frac{\text{RR} - 1}{\text{RR}} \]

  • AR 의 수치는 RD 와 동일하지만 lens 가 다름: “노출이 노출자에게 더해주는 위험”
  • AR% 는 “노출자 사건 중 노출이 원인인 비율”

3.2 Population Attributable Risk (PAR) / Population Attributable Fraction (PAF)

\[ \text{PAR} = p_{pop} - p_{\bar E}, \quad \text{PAF} = \frac{p_e (\text{RR} - 1)}{1 + p_e (\text{RR} - 1)} \]

여기서 \(p_e\) 는 인구 중 노출 비율.

  • PAR 의 해석: 만약 모든 사람의 노출을 제거하면 인구 전체 위험이 얼마나 줄어드는가
  • PAF 의 해석: 인구 사건 중 노출이 원인인 비율
  • 정책 평가의 핵심 — 흡연 정책, 백신 캠페인, 비만 개입의 영향 측정
직관: 같은 RR, 다른 PAF
  • 흡연 → 폐암: RR = 20, \(p_e = 0.25\) → PAF = \(\frac{0.25 \times 19}{1 + 0.25 \times 19} ≈ 0.83\) (폐암의 83% 가 흡연 탓)
  • 라돈 → 폐암: RR = 1.5, \(p_e = 0.05\) → PAF = \(\frac{0.05 \times 0.5}{1 + 0.05 \times 0.5} ≈ 0.024\) (폐암의 2.4% 가 라돈 탓)

흡연은 강한 노출 + 높은 노출률 → 압도적 PAF. 라돈은 약한 노출 + 낮은 노출률 → 작지만 무시 못 할 PAF.

(Woodward, 2014, Ch.3) 참조.

4 인과 추정량 (Causal Estimands)

연관성 지표가 인과 효과 가 되려면 잠재적 결과 (potential outcomes) 프레임워크에서 정의된 모수에 대응되어야 한다. 같은 RR 수치라도 어느 인과 추정량을 추정하는지에 따라 해석이 달라진다.

4.1 Average Treatment Effect (ATE)

\[ \text{ATE} = E[Y^1 - Y^0] \]

  • 모집단 전체에 처치를 가했을 때 vs 가하지 않았을 때의 평균 차이
  • RCT 의 자연스러운 추정 대상 — 무작위 배정으로 \(Y^a \perp A\) 가 보장되어 \(E[Y \mid A=1] - E[Y \mid A=0]\) = ATE
  • 관찰 연구에서는 교란 보정 (regression, IPW, g-formula) 이 필요 (Hernan & Robins, 2020, Ch.2~4)

4.2 ATE on the Treated (ATT) / on the Controls (ATC)

\[ \text{ATT} = E[Y^1 - Y^0 \mid A = 1], \quad \text{ATC} = E[Y^1 - Y^0 \mid A = 0] \]

  • ATT: 실제 처치받은 집단에 한정한 효과 — 정책의 “현재 적용 결과” 평가
  • ATC: 처치받지 않은 집단의 가상 효과 — 정책의 “확장 시 기대 효과” 평가
  • ATE = \(p \cdot \text{ATT} + (1-p) \cdot \text{ATC}\) (where \(p = P(A=1)\))

4.3 Conditional ATE (CATE) / Heterogeneous Treatment Effect (HTE)

\[ \text{CATE}(x) = E[Y^1 - Y^0 \mid X = x] \]

  • 공변량 \(X\) 의 값에 따라 효과가 달라지는지 — 효과 수정 (effect modification)
  • A/B test 에서 세그먼트별 lift 분석, uplift modeling 의 추정 대상
  • 머신러닝 (Causal Forest, Meta-learners) 으로 추정 (Hernan Ch.5, Causal_Inference/05-effect-modification.qmd)

4.4 ITT vs Per-Protocol vs LATE

같은 RCT/A/B test 에서도 분석 단위에 따라 추정량이 다르다.

분석 정의 추정량 장점 위험
ITT Intention-to-Treat 배정 그룹 기준 (실제 처치 여부 무관) “배정 효과” 무작위성 보존, 선택 편향 없음 비순응 시 효과 희석
PP Per-Protocol 실제 처치받은 사람만 “처치 효과” (편향 가능) 직관적 해석 선택 편향 (자기선택)
As-Treated 실제 받은 처치 그룹으로 재분류 “노출 효과” (편향 가능) 비교적 직관적 선택 편향
LATE / CACE 도구변수로 추정한 compliers 효과 “순응자 효과” 비순응 보정 IV 가정 필요
직관: 비순응 50% RCT 에서 세 분석은 어떻게 다른가

신약 RCT, 1000 명 중 500 명을 처치군에 배정. 이 중 50% (250 명) 만 실제로 약을 먹고 나머지 250 명은 부작용 우려로 위약을 자기 결정으로 먹음. 대조군 500 명은 모두 위약 복용.

  • ITT: “약을 권유받은 500 명 vs 위약을 권유받은 500 명” → 약을 안 먹은 절반 때문에 효과가 희석. 정책 의사결정 (“약을 환자에게 권유하면 효과가 있는가?”) 에 답함.
  • PP: “약을 실제 먹은 250 명 vs 위약을 먹은 500 명+250 명” → 약을 거부한 사람이 더 건강했다면 (“순한 사람만 약을 먹음”) 효과가 과대 추정. 의약품 본질 효과에 가깝지만 편향됨.
  • LATE: “배정에 응한 250 명만의 효과” → IV 가정 (배정이 결과에 직접 영향 없고 처치를 통해서만 영향) 만족 시 인과 효과 정확.

규제 기관 (FDA, EMA) 은 ITT 를 1 차 분석으로 의무화 — 비순응이 약의 가치 (부작용 회피 가능성, 복용 어려움 포함) 를 반영하기 때문. PP 는 보조 분석.

A/B test 도 동일 — 사용자가 새 기능을 노출받고도 클릭하지 않을 수 있지만, 우리는 기능을 “노출받은” 그룹의 효과를 측정 (ITT). “실제 사용한” 그룹만 비교하면 (PP) 적극 사용자 자기선택 편향이 들어간다.

(Hernan & Robins, 2020, Ch.9, 16, 22) — A/B test 는 일반적으로 ITT 가 표준이며, AB_test/40-project-agent-ab-overview.qmd 에서 자세히 다룬다.

4.5 SATE vs PATE — 외적 타당성의 lens

\[ \text{SATE} = \frac{1}{n}\sum_{i=1}^n (Y_i^1 - Y_i^0), \quad \text{PATE} = E[Y^1 - Y^0] \]

  • SATE (Sample ATE): 표본 내 효과 — 내적 타당성
  • PATE (Population ATE): 모집단 효과 — 외적 타당성
  • 표본이 모집단을 대표하지 않으면 SATE ≠ PATE → A/B test 결과가 전체 사용자에 일반화되지 않을 수 있음 (22-study-design-validity-bias-causal.qmd §4.2)

4.6 Marginal vs Conditional Effect — Non-collapsibility

\[ \text{Marginal RR} = \frac{E[Y^1]}{E[Y^0]}, \quad \text{Conditional RR}(L) = \frac{E[Y^1 \mid L]}{E[Y^0 \mid L]} \]

OR 의 경우 marginal 과 conditional 이 일반적으로 다르다 (non-collapsibility) — 이는 RR/RD 와 OR 의 본질적 차이이며, 로지스틱 회귀 결과의 해석 함정이다 (Hernan & Robins, 2020, Ch.4).

직관: 남성과 여성 OR 이 모두 2.0 인데 전체 OR 은 왜 1.7 인가

가상 데이터 (남성·여성 500 명씩):

남성 사건 비사건 OR
처치 100 150 \(\frac{100 \times 200}{150 \times 50}\) = 2.67
대조 50 200
여성 사건 비사건 OR
처치 50 200 \(\frac{50 \times 200}{200 \times 50}\) = 1.0
대조 50 200

남성의 처치 효과는 OR = 2.67, 여성은 1.0. 두 집단을 합쳐 marginal OR 을 계산하면 단순 가중 평균이 아니다. 이게 non-collapsibility — OR 은 분모·분자가 모두 비선형으로 변하기 때문.

RR 과 RD 는 collapsible — 각 stratum 의 RR 이 모두 2.0 이면 전체 marginal RR 도 2.0. OR 만 비정상.

실무 함정: 로지스틱 회귀의 OR 은 “다른 공변량을 고정한 조건부 효과 (conditional)”. marginal OR (인구 평균) 은 따로 추정해야 (g-formula 또는 simulation). OR 을 RR 처럼 “전체 인구의 평균 효과” 로 해석하면 틀린다.

RR 사용 권장: 결과가 흔한 (>10%) 코호트·RCT 에서는 로지스틱 OR 대신 Poisson 또는 log-binomial 회귀로 RR 을 직접 추정하는 게 해석상 안전.

5 통계 검정·구간 — 효과 보고의 의무 패키지

효과 추정량은 항상 점추정 + 구간 + 검정 3 종으로 보고한다. 한 가지만 보고하면 의사결정 정보가 부족하다.

5.1 p-value, Confidence Interval, Standard Error

지표 정의 함정
p-value \(P(\text{관측 효과 또는 더 극단} \mid H_0)\) 0.05 가 절대 임계 아님; 표본이 크면 임상적으로 무의미한 차이도 유의
CI Confidence Interval 반복 실험 시 모수를 포함하는 비율 (1-α) 단일 실험에서 “이 구간에 모수가 있을 확률” 이 아님
SE Standard Error 추정량의 표본분산의 제곱근 \(\text{SE}^2 = \text{SD}^2 / n\) — n 이 늘면 SE 감소, SD 는 불변
SD Standard Deviation 데이터의 변동성 모집단 특성, 표본 크기와 무관
p ≤ 0.05 와 CI 가 모두 필요한 이유
  • p < 0.05 + CI [0.001, 0.002]: 통계적 유의 + 임상적 무의미
  • p > 0.05 + CI [-0.05, 0.50]: 통계적 비유의 + 큰 효과 가능성 (검정력 부족)

CI 의 폭이 정밀도를, p 가 무작위성과의 거리를 알려준다. 둘 다 필요하다.

직관: p-value 의 흔한 오해 4 가지
  1. “p = 0.04 이면 95% 확률로 효과가 진짜다” ❌ p 는 \(H_0\) 가 참일 때 데이터가 관측될 확률. “효과가 진짜일 확률” 은 베이지안 사후 확률이며 사전 확률·표본 크기에 의존. p 가 작아도 사전 확률이 매우 작으면 (예: 10% 가설) 사후 확률은 여전히 낮을 수 있다.

  2. “p > 0.05 이면 효과가 없다” ❌ “효과 없음 (null) 이 참” 이 아니라 “이 표본에서 검출 못 함”. 검정력이 낮으면 큰 효과도 못 잡는다. CI 가 [-0.5, 0.5] 처럼 넓으면 “효과를 모른다” 가 정확한 해석.

  3. “p = 0.04 가 p = 0.06 보다 효과가 강하다” ❌ p 의 절대값이 효과 크기를 의미하지 않는다. 표본이 1000 만이면 ARR = 0.001%p 도 p < 0.001. 효과 크기는 별도 지표 (Cohen’s d, RD) 로 확인.

  4. “실험 중 p 를 매일 확인하다 0.05 도달하면 종료” ❌ 매일 확인하면 실제 false positive rate 가 알파보다 훨씬 높음 (peeking problem). 1 회 분석 alpha = 0.05 도, 매일 50 일 확인하면 실제 alpha ≈ 28%. Sequential testing (O’Brien-Fleming, Pocock) 이나 사전 표본 크기 + 1 회 종료가 정답.

대안 보고 형식:

[BAD]  처치 효과 p = 0.04, 통계적으로 유의함.
[GOOD] 처치군 vs 대조군 차이: ARR = 4.2%p (95% CI [1.1, 7.3]), p = 0.04, NNT = 24.

좋은 보고는 (1) 점추정 + 단위, (2) CI, (3) p, (4) 임상·비즈니스 임팩트 해석을 모두 포함.

5.2 효과 크기 (Effect Size) — 표준화된 효과

연속 결과의 효과를 표준편차 단위로 표준화하면 척도 간 비교 가능.

지표 수식 어디서
Cohen’s d \(\frac{\bar X_1 - \bar X_2}{s_{pooled}}\) 연속 결과 두 그룹 비교
Hedges’ g Cohen’s d + 작은 표본 보정 n < 50 시 권장
Cliff’s δ \(P(X_1 > X_2) - P(X_2 > X_1)\) 비모수, 순위
η² / ω² Eta·Omega-squared \(\frac{SS_{between}}{SS_{total}}\) ANOVA, 분산 설명 비율
Cohen’s h \(2\arcsin\sqrt{p_1} - 2\arcsin\sqrt{p_2}\) 비율 비교 (proportion)

Cohen 가이드라인: d = 0.2 (작음), 0.5 (중간), 0.8 (큼). 단 도메인마다 다르다 — 의약품 임상시험은 d = 0.2 도 의미 있고, 사회과학은 d = 0.5 가 임계.

직관: Cohen’s d = 0.5 가 어떻게 체감되는가

Cohen’s d 는 평균 차이를 표준편차로 나눈 값 — 두 분포가 얼마나 분리되어 있는가의 척도.

  • d = 0.2 (작음): 두 분포가 거의 겹침. 무작위로 두 사람 뽑으면 \(\sim 56\%\) 확률로 처치군이 큼 (거의 동전).
  • d = 0.5 (중간): 분포가 60~70% 겹침. \(\sim 64\%\) 확률.
  • d = 0.8 (큼): 분포가 50% 정도 겹침. \(\sim 71\%\) 확률.
  • d = 2.0 (매우 큼): 분포가 거의 안 겹침. 한눈에 보이는 차이.

키 비유: 한국 성인 남성 (평균 174cm, SD ≈ 6cm) 과 여성 (평균 162cm, SD ≈ 5cm) 의 키 차이를 Cohen’s d 로 표준화하면 약 d = 2.2 — “한눈에 보이는” 차이. d = 0.5 는 “통계적으로 검출 가능하지만 일상에서 잘 안 느껴지는” 정도.

왜 도메인마다 임계가 다른가: 의약품 (사망률 차이) 은 d = 0.2 도 임상적으로 큰 효과 (생명) 이고, 사회과학 (학업 성취) 은 d = 0.2 가 실용적으로 무의미할 수 있음 — 결과의 가치가 다름.

A/B test 에서: conversion rate 차이 0.5%p (10% → 10.5%) 는 Cohen’s h ≈ 0.016 (매우 작음). 그러나 매출이 1B 달러 규모면 절대 효과는 큼 — 표준화된 효과 크기가 작다고 비즈니스 영향이 작다고 결론짓지 말 것. ARR (절대 효과) 과 함께 봐야 한다.

(Maxwell & Delaney, 2004, Ch.3~4)

5.3 검정력 (Power) 과 MDE — 사전 표본 산출의 base

\[ \text{Power} = 1 - \beta = P(\text{기각} \mid H_1 \text{ 참}), \quad \text{MDE} = z_\alpha + z_\beta) \cdot SE \]

  • Power: \(H_1\) 이 참일 때 \(H_0\) 를 기각할 확률 — 보통 0.8 또는 0.9 목표
  • MDE (Minimum Detectable Effect): 주어진 \(\alpha, \beta, n\) 으로 검출 가능한 최소 효과 크기
  • A/B test 에서는 사전 MDE 산출 후 표본·기간 결정 — peeking 방지의 base

5.4 다중 검정 보정

보정 통제 대상 방법
FWER Family-Wise Error Rate \(P(\text{1개 이상 위양성})\) Bonferroni: \(\alpha / k\), Holm-Bonferroni (덜 보수적)
FDR False Discovery Rate 기각 중 위양성 비율 (기대값) Benjamini-Hochberg (BH)

A/B test 의 secondary metric 다수 분석, 메타분석의 다중 비교, GWAS 등에서 의무.

6 강건성·민감도 분석

관찰 연구의 효과 추정은 미관측 교란에 취약하다. 결론이 가정 위반에 얼마나 견디는지 정량화하는 게 강건성 분석.

6.1 E-value (VanderWeele & Ding, 2017)

정의: E-value

관측된 RR (또는 OR) 을 1 (효과 없음) 로 만들기 위해 미관측 교란이 노출과 결과 모두에 가져야 하는 최소 RR.

\[ \text{E-value} = \text{RR}_{obs} + \sqrt{\text{RR}_{obs} \cdot (\text{RR}_{obs} - 1)} \]

  • E-value = 2.5 → 미관측 교란이 노출과 결과 모두에 RR 2.5 이상의 효과를 가져야 결론이 뒤집힘
  • 큰 E-value = 강건한 결론
  • 관찰 연구의 표준 보고 항목 (BMJ, Annals 등 의무화 진행)
  • Python: evalue 패키지 또는 직접 계산
직관: 관측 RR 별 E-value 의 의미
관측 RR E-value 해석
1.2 1.69 작은 미관측 교란 (RR 1.7 정도) 로 결론 뒤집힘 → 약한 결론
1.5 2.37 중간 미관측 교란 필요 → 보통
2.0 3.41 강한 교란 필요 → 상당히 강건
5.0 9.47 거의 본 적 없는 강한 교란 필요 → 매우 강건
10.0 19.49 흡연-폐암 수준의 결론 — 거의 절대적

역사적 사례: 흡연-폐암 RR ≈ 20 → E-value ≈ 39. 미관측 교란이 흡연과 폐암 모두에 RR 39 이상 효과를 가져야 결론 뒤집힘 — 그런 교란은 알려진 바 없으므로 흡연-폐암 인과관계는 사실상 확정.

대비 사례: 비타민 D 결핍 - 심혈관 질환 RR ≈ 1.3 → E-value ≈ 1.92. 미관측 생활습관·운동·식이 교란이 RR 1.9 효과를 가질 가능성은 충분히 있음 → 약한 결론, 추가 RCT 필요.

보고 의무: BMJ, Annals of Internal Medicine 은 관찰 연구 논문에 E-value 보고를 의무화 (2018~). “관찰 효과 + CI + E-value” 가 새 표준.

A/B test 에서도: 무작위 배정이 잘 됐다면 E-value 가 필요 없지만, SRM 등으로 무작위가 깨졌거나 관찰 데이터로 효과를 추정했다면 E-value 보고 권장.

6.2 Rosenbaum bounds — Matching 후 hidden bias

PSM 결과의 강건성. matched pair 의 처치 확률이 서로 \(\Gamma\) 배까지 다를 수 있다고 가정하고 결론이 뒤집히는 \(\Gamma^*\) 를 찾는다.

  • \(\Gamma^* = 1.5\): 미관측 교란이 처치 확률을 50% 변동시켜야 결론 뒤집힘
  • \(\Gamma^*\) = 강건
  • R: rbounds, Python: causalinference (보강 필요)

6.3 Tipping Point Analysis — 결측 가정의 강건성

RCT 의 결측 데이터에 어느 가정 (MAR, MNAR) 을 적용하면 결론이 뒤집히는지 탐색. 의약 규제 기관 (FDA·EMA) 가이드.

7 A/B Test 효과 측정 lens

A/B test 는 RCT 의 IT 버전이라 위 지표를 그대로 쓰지만, 실무 운영을 위한 추가 지표가 있다.

지표 정의 어디서
OEC Overall Evaluation Criterion 단일 의사결정 메트릭 AB_test/42-metrics-design.qmd
Lift / Uplift \(\frac{p_T - p_C}{p_C}\) 또는 \(p_T - p_C\) RR-1 또는 RD 와 동일 양
MDE 사전 표본·power 로 검출 가능한 최소 효과 AB_test/44-sample-size.qmd
CUPED Controlled Pre-Experiment Data 사전 공변량으로 분산 감소 (Buisson, 2021, Ch.5)
SRM Sample Ratio Mismatch 그룹 비율 χ² 검정 데이터 파이프라인 결함 신호

(Kohavi, Tang, Xu, 2020, Ch.1~4) — A/B test 정통.

8 응용 분야

분야 핵심 지표 사례
임상시험 (RCT) ARR, NNT, RRR + ITT 신약 효능 보고 의무 표준
코호트 역학 RR, RD, AR, PAR 흡연-폐암 인과 추론
케이스-컨트롤 OR (RR 근사) 희귀 질환 위험 요인
A/B Test Lift, MDE, OEC 추천 시스템·UI 변경 평가
정책 평가 PAR, PAF, ATE/ATT 백신 캠페인·금연 정책
관찰 인과추론 ATE, ATT, E-value 빅데이터 효과 추정

9 예시 — 한 데이터에서 모든 지표 계산

사례: 신약 임상시험 (가상)
사망 (Y=1) 생존 (Y=0) 합계
처치군 (T) 80 920 1000
대조군 (C) 120 880 1000
  • \(p_T = 0.08\), \(p_C = 0.12\)
  • RR = \(0.08 / 0.12 = 0.667\) — 처치군 사망 위험이 대조군 대비 67%
  • OR = \(\frac{80 \times 880}{120 \times 920} = 0.638\) — 사건이 드물지 않아 RR 과 약간 다름
  • RD = ARR = \(0.12 - 0.08 = 0.04\) = 4%p
  • RRR = \(1 - 0.667 = 0.333\) = 33% 상대 감소
  • NNT = \(1 / 0.04 = 25\) — 25 명 처치하면 1 명 살림
  • AR (처치를 노출로 보면 음수, 보호 효과): \(0.08 - 0.12 = -0.04\)
  • PAR (인구 50% 가 처치받는다 가정): \(p_{pop} = 0.5 \times 0.08 + 0.5 \times 0.12 = 0.10\), \(\text{PAR} = 0.10 - 0.12 = -0.02\)
  • E-value: 보호 효과 RR = 0.667 의 역수 1.5 → \(1.5 + \sqrt{1.5 \times 0.5} = 2.37\)

해석: 25 명에게 약을 줘야 1 명 살린다 (NNT). 결론을 무력화하려면 미관측 교란이 처치-결과 모두에 RR 2.37 이상의 효과가 있어야 한다 (E-value).

10 코드

import numpy as np
from scipy import stats
from statsmodels.stats.proportion import proportion_confint, proportions_ztest
from statsmodels.stats.power import NormalIndPower
from statsmodels.stats.proportion import proportion_effectsize

# 사례 데이터
a, b = 80, 920    # 처치군: 사건, 비사건
c, d = 120, 880   # 대조군: 사건, 비사건
n_T, n_C = a + b, c + d
p_T, p_C = a / n_T, c / n_C

# 1. 절대·상대·인구 효과
RR = p_T / p_C
OR = (a * d) / (b * c)
RD = p_T - p_C
ARR = p_C - p_T
RRR = 1 - RR
NNT = 1 / ARR
print(f"RR={RR:.3f}, OR={OR:.3f}, RD={RD:.3f}")
print(f"ARR={ARR:.3f}, RRR={RRR:.3f}, NNT={np.ceil(NNT):.0f}")

# 2. 신뢰구간 (Wald, log-transformation)
log_RR = np.log(RR)
SE_logRR = np.sqrt(b / (a * n_T) + d / (c * n_C))
CI_RR = np.exp([log_RR - 1.96 * SE_logRR, log_RR + 1.96 * SE_logRR])
print(f"RR 95% CI: [{CI_RR[0]:.3f}, {CI_RR[1]:.3f}]")

# 3. 검정 (proportion z-test)
z, p_value = proportions_ztest([a, c], [n_T, n_C])
print(f"z={z:.2f}, p={p_value:.4f}")

# 4. 검정력·MDE (사전 분석)
analysis = NormalIndPower()
effect_size = proportion_effectsize(p_T, p_C)  # Cohen's h
n_required = analysis.solve_power(
    effect_size=effect_size, alpha=0.05, power=0.80, alternative="two-sided"
)
print(f"필요 표본 (그룹당, power=0.8): {int(np.ceil(n_required))}")

# 5. E-value (VanderWeele & Ding, 2017)
def evalue(rr):
    rr_adj = max(rr, 1 / rr)  # 보호 효과는 역수
    return rr_adj + np.sqrt(rr_adj * (rr_adj - 1))
print(f"E-value: {evalue(RR):.2f}")

# 6. PAR / PAF (인구 노출률 가정)
p_e = 0.5  # 인구의 50% 가 노출 (처치)
p_pop = p_e * p_T + (1 - p_e) * p_C
PAR = p_pop - p_C
PAF = p_e * (RR - 1) / (1 + p_e * (RR - 1))
print(f"PAR={PAR:.4f}, PAF={PAF:.3f}")
# A/B Test 실무: CUPED 분산 감소 (간단 시뮬레이션)
import numpy as np
np.random.seed(42)
n = 5000
pre = np.random.normal(100, 15, n)         # 사전 공변량 (예: 작년 매출)
treat = np.random.binomial(1, 0.5, n)
y = 100 + 5 * treat + 0.7 * pre + np.random.normal(0, 10, n)

# Naive: 단순 차이
naive_effect = y[treat == 1].mean() - y[treat == 0].mean()
naive_var = y[treat == 1].var() / sum(treat == 1) + y[treat == 0].var() / sum(treat == 0)

# CUPED: y_cuped = y - θ * pre, where θ = cov(y, pre) / var(pre)
theta = np.cov(y, pre)[0, 1] / np.var(pre)
y_cuped = y - theta * pre
cuped_effect = y_cuped[treat == 1].mean() - y_cuped[treat == 0].mean()
cuped_var = y_cuped[treat == 1].var() / sum(treat == 1) + y_cuped[treat == 0].var() / sum(treat == 0)

print(f"Naive: effect={naive_effect:.3f}, SE={np.sqrt(naive_var):.3f}")
print(f"CUPED: effect={cuped_effect:.3f}, SE={np.sqrt(cuped_var):.3f}")
print(f"분산 감소율: {1 - cuped_var / naive_var:.1%}")

11 관련 주제

선행 지식

후속 주제 (Epidemiology 시리즈 내)

인과추론 시리즈 (Causal_Inference/)

A/B Test 시리즈 (AB_test/)

다른 카테고리 연결

Subscribe

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