측정의 위험성과 p < 0.05 비판

Schulz 의 measures of association 함정 + 0.05 임계값의 의학적 근거 부재

Schulz Ch.1 의 measures of association (RR, OR, RD) 의 위험성과 p < 0.05 임계값의 의학적 근거 부재 비판을 정리한다. 베이스라인 효과, 상대 vs 절대 측정, ASA 권고와의 일관성, 신뢰 구간 우선 보고의 정당성을 다룬다.

Experimentation
Fundamentals
저자

Kwangmin Kim

공개

2026년 05월 08일

1 도입 — 같은 효과, 다른 인상

Schulz & Grimes (2019, Ch.1) 은 measures of association (RR, OR, RD) 의 보고 함정을 강조한다. 같은 효과가 어떻게 보고되는가 에 따라 인상이 완전히 달라진다. 이 글은 그 함정과 p < 0.05 임계값의 의학적 근거 부재 비판을 정리한다.

2 RR vs RD — 베이스라인의 영향

정의: 4 가지 association 측정
지표 정의 단위
Risk Difference (RD) \(p_T - p_C\) 절대 (확률 단위)
Relative Risk (RR) \(p_T / p_C\) 상대 (배수)
Odds Ratio (OR) \(\frac{p_T/(1-p_T)}{p_C/(1-p_C)}\) 상대 (odds 비)
Number Needed to Treat (NNT) \(1 / |\text{RD}|\) 인원 수

2.1 사례 1 — 흔한 사건

베이스라인 사건율 10 %, 처치 효과로 8 % 감소 (사건율 8 % 가 됨).

지표 해석
RD \(-0.02\) (2 % 감소) 100 명 중 2 명 적게 발생
RR \(0.80\) (20 % 감소) 위험이 20 % 줄어듦
OR \(0.78\) RR 과 거의 같음
NNT 50 1 명 효과 위해 50 명 처치

2.2 사례 2 — 희귀 사건

베이스라인 0.1 %, 처치 효과로 0.08 % 가 됨.

지표 해석
RD \(-0.0002\) (0.02 % 감소) 10000 명 중 2 명 적게 발생
RR \(0.80\) (20 % 감소) 위험이 20 % 줄어듦
OR \(0.80\) RR 과 같음
NNT 5000 1 명 효과 위해 5000 명 처치

2.3 비교

같은 RR (0.80, 즉 20 % 감소) 인데:

  • 사례 1: NNT = 50, 임상적으로 효과
  • 사례 2: NNT = 5000, 임상적으로 작은 효과
직관 — RR 만 보면 위험한 이유

뉴스: “신약이 사망 위험을 50 % 감소시킨다”

청중의 인상: 큰 효과

진짜 정보: - 베이스라인이 0.001 % (10 만 명에 1 명) 면, 50 % 감소는 0.0005 % 감소 (NNT = 200000). - 베이스라인이 30 % 면, 50 % 감소는 15 % 감소 (NNT = 7).

같은 RR 이라도 임상 임팩트가 1000 배 다르다. 따라서 RR 단독 보고는 오해를 부른다. RR + RD + NNT 를 함께 보고하는 것이 표준.

A/B 테스트의 Lift (= RR - 1) 도 마찬가지. 베이스라인 클릭률이 매우 낮으면 큰 lift 도 작은 절대 효과. 비즈니스 의사결정은 절대 차이 × 사용자 수 로 매출 임팩트를 환산.

3 OR vs RR — 언제 다른가

OR 과 RR 은 희귀 사건 (~5 % 이하) 에서 거의 같다. 그러나 흔한 사건 에서 달라진다.

\(p_C\) \(p_T\) RR OR
0.05 0.04 0.80 0.79
0.10 0.08 0.80 0.78
0.30 0.24 0.80 0.74
0.50 0.40 0.80 0.67

희귀 사건에서 OR ≈ RR. 흔한 사건에서 OR 이 RR 보다 극단적.

3.1 왜 OR 을 사용하는가

장점:

  1. Case-control 연구 에서 RR 직접 추정 불가, OR 만 가능
  2. 로지스틱 회귀 의 회귀 계수가 OR 의 자연 로그
  3. baseline 무관 — RR 은 baseline 에 따라 의미 달라짐, OR 은 안정적

단점:

  1. 흔한 사건에서 해석이 직관과 다름 — 청중이 RR 처럼 해석하면 효과 과대 인식
  2. NNT 계산에 직접 사용 어려움

권장: 희귀 사건이나 case-control 은 OR, 흔한 사건이나 cohort 는 RR.

4 p < 0.05 의 의학적 근거 부재

Schulz 의 강력한 비판:

“0.05 임계값은 통계적·역학적·의학적 근거가 없는 임의 관습이다.” (Schulz & Grimes 2019, Ch.1)

4.1 0.05 의 역사적 출처

Fisher 가 1925 년 Statistical Methods for Research Workers 에서 도입. 당시 통계 표 작성의 편의를 위해 1/20 = 0.05, 1/100 = 0.01 등 둥근 숫자 를 채택. 의학적·생물학적 근거는 없음.

4.2 Cliff Effect 의 함정

\(p = 0.049\) vs \(p = 0.051\):

  • 자료의 증거 강도 는 거의 동일
  • 그러나 이분법적 결정은 반대 결과 도출

cliff effect 가 임상 의사결정에 비합리성을 만든다. 약간의 표본 차이로 결론이 뒤집힐 수 있다.

4.3 실제 임상 영향

가상 사례:

  • 신약 A: \(p = 0.049\) → 승인, 시장 출시
  • 신약 B: \(p = 0.051\) → 기각, 추가 연구 필요

자료의 차이가 작더라도 의사결정은 극단적 으로 나뉜다. 이는 임상적으로 비합리 하다.

5 ASA 2016 6 원칙과의 일관성

Schulz 의 비판은 ASA (American Statistical Association) 의 2016 공식 성명과 일치한다.

ASA 6 원칙 Schulz 의 강조
1. p 값은 양립 불가능성 측도 동일
2. p 값은 가설 참 확률 X 동일
3. 0.05 임계값에만 의존 X 동일
4. 완전한 보고 + 투명성 동일
5. 효과 크기·중요성 측정 X 동일
6. p 값은 단독으로 증거 측정 X 동일

두 권고가 수렴 한다는 점이 현대 통계 보고의 표준 을 보여 준다.

6 권장 보고 형식

Schulz 가 권장하는 형식:

처치 그룹 (n = 50): 25 명 사건 (50.0 %)
대조 그룹 (n = 50): 15 명 사건 (30.0 %)

Risk Difference: -20.0 %, 95 % CI [-37.5 %, -2.5 %]
Relative Risk: 0.60, 95 % CI [0.37, 0.97]
Odds Ratio: 0.43, 95 % CI [0.18, 1.01]
NNT: 5

Chi-square test: χ²(1) = 4.32, p = 0.038

이 형식이 효과 크기 + 신뢰 구간 + p 값 의 3 종 세트를 모두 포함한다. p 값은 마지막 에 있어 보조 정보임을 강조.

7 신뢰 구간 우선 보고

직관 — 신뢰 구간이 p 값보다 정보적

신뢰 구간은 p 값을 포함 한다. 95 % CI 가 0 (또는 RR=1) 을 포함하지 않으면 \(p < 0.05\) 와 동치.

그러나 CI 는 추가 정보 도 준다.

  • 효과의 크기 (CI 의 중심)
  • 추정의 정밀도 (CI 의 폭)
  • 임상적 의미 (CI 가 임상적 임계값을 포함하는지)

예시:

  • 결과 1: RR = 0.50, 95 % CI [0.45, 0.55] — 정밀, 큰 효과
  • 결과 2: RR = 0.50, 95 % CI [0.10, 2.50] — 부정확, 효과 방향조차 불확실

두 결과 모두 점추정 RR = 0.50 이지만 결론이 완전히 다름.

CI 가 임상적 최소 의미 차이 (Minimum Clinically Important Difference, MCID) 를 포함하는지도 중요하다. 통계적으로 유의해도 효과가 임상적 임계값보다 작으면 무의미.

8 A/B 테스트 사례

A/B 테스트의 비즈니스 의사결정 도 같은 원리.

8.1 사례 — 매출 향상 A/B 테스트

변형 A (대조): 평균 매출 $1,000, n = 5,000
변형 B (신규): 평균 매출 $1,015, n = 5,000

Risk Difference: +$15 (1.5 % lift)
95 % CI: [+$5, +$25]
p = 0.003 (매우 유의)

해석:

  • 통계적: 효과 명확 (p < 0.01)
  • 비즈니스: 1.5 % 매출 향상은 사용자 1000만 명에서 연 1500만 달러 추가 매출
  • CI: [+$5, +$25] → 효과의 보수적 추정도 $5 (양수) → 채택 결정 안전

이 경우 효과 크기 + CI + p 값 모두 의미 있다.

8.2 반대 사례

변형 A: 평균 매출 $1,000, n = 200
변형 B: 평균 매출 $1,050, n = 200

Risk Difference: +$50 (5 % lift)
95 % CI: [-$30, +$130]
p = 0.21 (유의 X)

해석:

  • 통계적: 효과 미확인 (p > 0.05)
  • 그러나 효과 크기 추정은 +$50 (큰 효과)
  • CI: [-$30, +$130] → 효과 방향조차 불확실

결정: 판단 보류, 표본 확대 후 재검정. 효과 크기는 의미 있을 수 있으나 검정력 부족.

9 다중 비교와 보고

Schulz Ch.5 에서 다중성을 다루지만, Ch.1 도 주 결과 (primary outcome)부수 결과 (secondary outcome) 의 분리를 강조한다.

Primary outcome (사전 등록):
  사망률 — RR = 0.75, 95 % CI [0.55, 1.02], p = 0.07

Secondary outcomes:
  재입원률 — RR = 0.85, 95 % CI [0.70, 1.05], p = 0.13
  부작용 발생률 — RR = 1.20, 95 % CI [0.90, 1.60], p = 0.21
  ...

Primary outcome 만 confirmatory 로, secondary 는 exploratory 로. 이 계층화 가 다중성 문제를 회피한다.

10 결과 해석 — 4 가지 시나리오

시나리오 p 값 CI 가 0 포함? CI 가 MCID 포함? 결정
A < 0.05 No Yes 강한 채택
B < 0.05 No No 통계적 유의, 임상적 미의미
C > 0.05 Yes Yes 미확정, 표본 확대
D > 0.05 Yes No 효과 없음 결론

이 매트릭스가 p 값 + CI + MCID 를 통합한 의사결정 도구이다. p 값 단독으로는 4 시나리오를 구분할 수 없다.

11 코드 예시 — RR/OR/RD/NNT 계산

import numpy as np
from scipy.stats import chi2_contingency

# 가상 자료
n_treat = 1000
n_control = 1000
events_treat = 50  # 5 %
events_control = 80  # 8 %

# 비율
p_t = events_treat / n_treat
p_c = events_control / n_control

# 측정값 계산
rd = p_t - p_c
rr = p_t / p_c
or_val = (p_t / (1 - p_t)) / (p_c / (1 - p_c))
nnt = 1 / abs(rd) if rd != 0 else float('inf')

# 95 % CI for RR (Wald log)
log_rr = np.log(rr)
se_log_rr = np.sqrt(1/events_treat - 1/n_treat + 1/events_control - 1/n_control)
ci_rr = (np.exp(log_rr - 1.96*se_log_rr), np.exp(log_rr + 1.96*se_log_rr))

# 95 % CI for RD (Wald)
se_rd = np.sqrt(p_t*(1-p_t)/n_treat + p_c*(1-p_c)/n_control)
ci_rd = (rd - 1.96*se_rd, rd + 1.96*se_rd)

# 카이제곱 검정
table = np.array([[events_treat, n_treat - events_treat],
                  [events_control, n_control - events_control]])
chi2, p_chi, _, _ = chi2_contingency(table)

print(f"처치 그룹: {events_treat} / {n_treat} = {p_t:.3f}")
print(f"대조 그룹: {events_control} / {n_control} = {p_c:.3f}")
print(f"\nRD = {rd:.4f}, 95 % CI [{ci_rd[0]:.4f}, {ci_rd[1]:.4f}]")
print(f"RR = {rr:.3f}, 95 % CI [{ci_rr[0]:.3f}, {ci_rr[1]:.3f}]")
print(f"OR = {or_val:.3f}")
print(f"NNT = {nnt:.0f}")
print(f"\n카이제곱: χ²(1) = {chi2:.3f}, p = {p_chi:.4f}")

12 SCH Ch.1 의 통계 lens 마무리

Phase A 의 lens 에서 Schulz Ch.1 의 핵심:

  1. RCT 가 통계적 으로 gold standard (무작위 배정의 검정 분포 정당화)
  2. 분수의 분모 명시 (ITT vs PP) 는 결론을 좌우
  3. Measures of association 의 적절한 선택 과 다중 보고
  4. p < 0.05 임계값의 임의성 인정
  5. 효과 크기 + CI + p 값 의 3 종 세트 보고
  6. Primary vs secondary outcome 의 계층화

이 6 가지가 현대 임상 통계 보고 의 표준이며, A/B 테스트 등 IT 영역에도 직접 적용된다.

13 ASA 6 원칙의 적용 사례

13.1 사례 1 — 위장약 시험

“제산제 A 가 표준 B 보다 위장 통증 감소 효과 (RR 0.85, p = 0.04).”

ASA 6 원칙 적용:

  1. p 값은 양립 불가능성 측도 — RR 0.85 가 H_0 (효과 없음) 와 어울리지 않는 정도
  2. p 값은 가설 참 확률 X — “효과 있음 확률 96 %” 라고 잘못 해석 금지
  3. 0.05 임계값에만 의존 X — 효과 크기 (RR 0.85) 도 평가
  4. 완전한 보고 — 95 % CI 포함 (예: [0.75, 0.97])
  5. 효과 크기 측정 X — RR 0.85 만 본다면 NNT = 7 같은 절대 효과도 보고
  6. p 값 단독 증거 X — 메커니즘, 재현, 외부 타당성 평가 필요

13.2 사례 2 — A/B 테스트

“신규 디자인이 클릭률 5 % → 5.2 %로 증가, p = 0.03”

ASA 6 원칙:

  1. 작은 p — 자료가 H_0 와 약하게 양립
  2. NOT “효과 있음 확률 97 %”
  3. 0.05 보다 효과 크기 + 비즈니스 의미 중요
  4. 모든 메트릭 결과 보고 (다른 메트릭 악화? 다중성?)
  5. 5 % → 5.2 % 는 4 % relative lift. 절대값 0.2 % 는 비즈니스 의미가 작음
  6. p 값 + 비즈니스 임팩트 분석 + 사용자 실험

각 원칙이 데이터 분석의 정직성 강화.

14 p 값의 변형 — 새로운 통계 지표

14.1 s-value (Surprise value)

s-value (Greenland 2019)

p 값의 정보량 표현. 직관적 해석:

\[ s = -\log_2(p) \]

비유: “동전을 s 번 연속 던져 모두 앞면이 나오는 것” 의 정보량.

p s 비유
0.5 1 동전 1 회
0.05 4.3 동전 4.3 회
0.01 6.6 동전 6.6 회
0.001 10 동전 10 회

s-value 가 놀람의 정도 를 직관적으로 표현. p < 0.05 ≈ 동전 4 회 이상 — 적당한 놀람. 강하지 않음.

14.2 Bayes Factor (BF)

Bayes Factor

두 가설의 증거력 비율:

\[ \text{BF}_{10} = \frac{P(D | H_1)}{P(D | H_0)} \]

BF 증거력
1 ~ 3 약한
3 ~ 10 중간
10 ~ 30 강한
> 30 매우 강한

p 값과 다른 정보. p = 0.05 가 항상 BF = 3 같은 단순 변환 불가 (사전 확률 의존).

14.3 Equivalence Testing

H_0: |effect| ≥ Δ (의미 있는 차이)
H_1: |effect| < Δ (등가성)

신약이 기존 약과 동등 함을 검정. NPP 시험 (non-inferiority trial).

15 효과 크기의 분야 표준

15.1 Cohen 1988 의 관습

효과 크기 작은 중간
Cohen’s d 0.2 0.5 0.8
Pearson r 0.10 0.30 0.50
Cohen’s f (ANOVA) 0.10 0.25 0.40
η² 0.01 0.06 0.14
Odds Ratio 1.5 3.5 9.0

15.2 분야별 변형

분야 작은 효과
임상 RR 0.95 ~ 1.05
심리학 d 0.2
경제학 효과의 1 %
마케팅 Lift 1 ~ 5 %
A/B 테스트 (큰 IT) 0.1 % 절대 변화

16 신뢰 구간 우선 보고 — 학술 권고

직관 — APA Task Force (Wilkinson 1999) 권고
  1. 효과 크기 + CI 보고 (필수)
  2. p 값은 보조 (정확한 값)
  3. NHST 의존 줄이기
  4. 모든 결과 보고
  5. 사전 등록 권장

이 권고가 현대 통계 보고의 표준.

A/B 테스트도 같다. 효과 크기 (lift, $) + 95 % CI 가 비즈니스 의사결정의 핵심. p 값은 부수적.

17 ASA 권고와 분야 적용

17.1 의학 임상

CONSORT, ICH E9 따름. ASA 6 원칙과 일관.

17.2 학술 심리학

JARS (Journal Article Reporting Standards) 권고. 효과 크기 + CI 필수.

17.3 A/B 테스트

회사별 표준 다양. 그러나 Microsoft, Google, Booking 등이 ASA 권고와 일관된 보고 표준 채택.

17.4 경제학

AER (American Economic Review) 등이 사전 등록 + 코드 공유 점차 표준화.

18 코드 — Effect Size Calculator

import numpy as np
from scipy import stats

def cohens_d(group1, group2):
    """Cohen's d for two groups"""
    n1, n2 = len(group1), len(group2)
    s1, s2 = group1.std(ddof=1), group2.std(ddof=1)
    pooled_sd = np.sqrt(((n1-1)*s1**2 + (n2-1)*s2**2) / (n1+n2-2))
    return (group1.mean() - group2.mean()) / pooled_sd

def cohens_h(p1, p2):
    """Cohen's h for two proportions"""
    return 2 * (np.arcsin(np.sqrt(p1)) - np.arcsin(np.sqrt(p2)))

def odds_ratio(p1, p2):
    """OR with 95 % CI"""
    or_val = (p1/(1-p1)) / (p2/(1-p2))
    return or_val

# 사례
control = np.array([10, 12, 15, 13, 11])
treatment = np.array([15, 18, 20, 17, 16])

d = cohens_d(treatment, control)
print(f"Cohen's d = {d:.3f}")

# 비율 비교
p1, p2 = 0.10, 0.06
print(f"Cohen's h = {cohens_h(p1, p2):.3f}")
print(f"OR = {odds_ratio(p1, p2):.3f}")

19 후속 — 표본 크기와 다중성

다음 시리즈는 Schulz Ch.11 (sample size) 과 Ch.19 (multiplicity) 에서 임상 영역의 표본 산정다중성 처리 를 다룬다.

20 관련 주제

선행 지식

후속 주제 (Phase A)

  • A-SCH11-0~2 (Sample Size Calculations)
  • A-SCH19-0~2 (Multiplicity I)

다른 카테고리 연결

Subscribe

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