Heterogeneity 조사 — Forest·Influence·Sensitivity·Meta-regression

Woodward Ch.12.4 — Investigating Heterogeneity

Meta-analysis 의 heterogeneity 의 source 를 식별하는 4 가지 도구 — forest plot, influence analysis, sensitivity analysis, meta-regression — 의 활용과 해석을 추상 → 일상어 → 반사실 3 단계 직관으로 풀어낸다. Subgroup analysis 와 multiple testing 의 함정도 함께 다룬다.

Experimentation
Modeling
저자

Kwangmin Kim

공개

2026년 05월 08일

1 4 가지 진단 도구

정의: Heterogeneity 의 Source 식별
도구 용도
Forest plot 전반 시각화
Influence analysis 개별 연구의 영향
Sensitivity analysis Subset 통합
Meta-regression Continuous moderator

(Woodward, 2014, Ch.12.4).

2 1. Forest Plot — 전반 시각화

직관 3 단계: Forest Plot 에서 보는 것
  • 추상 정의: 각 연구의 효과 + CI + 가중치를 한 그림에. Outlier·일관성 시각.
  • 일상어 비유: 여러 평론가의 영화 평가 평균 + 각 평가의 위치. Outlier 평론가 식별.
  • 반사실 시나리오: 통합 결과만 보고 시 outlier 의 영향 모름. Forest plot 이 raw data 보존.

시각 패턴: - 모든 연구가 통합 효과 부근 → low heterogeneity. - Outlier 연구 ↑ → influence analysis 필요. - 두 그룹으로 분리 → subgroup analysis 가능.

3 2. Influence Analysis

정의: Leave-One-Out

각 연구를 한 번씩 제외 후 재통합. 차이가 큰 연구 = 영향력 큰 연구.

for i in range(k):
    pooled_minus_i = pool(studies.drop(i))
    diff = pooled_full - pooled_minus_i

큰 변화 = 그 연구가 통합 결과를 좌우.

직관 3 단계: Influence 의 의미
  • 추상 정의: 한 연구가 sensitive — 그 연구 제거 시 결과 큰 변화. Robust 연구 → 제거해도 결과 안정.
  • 일상어 비유: 한 평론가의 의견이 평균에 큰 영향 — 그 평론가의 신뢰성 점검 필요.
  • 반사실 시나리오: Outlier 연구 = quality 문제 가능성. RoB 평가 + sensitivity 분석.

3.1 Cook’s D 같은 도구

각 연구의 영향력 정량화: \[\text{Cook's D}_i = \frac{(\hat\theta_{-i} - \hat\theta)^2}{\text{Var}(\hat\theta) / (k-1)}\]

큰 값 = 영향력 큰 연구.

4 3. Sensitivity Analysis

정의: Sensitivity Analysis

특정 부분 인구 제거 또는 포함 후 재통합. 결과 안정성 평가.

예시: - High RoB 연구 제거. - 작은 표본 (\(n < 100\)) 제거. - 출판 연도 별 (예: 2010 이전 vs 이후). - 발생 지역 별 (서양 vs 동양).

직관 3 단계: Sensitivity 의 가치
  • 추상 정의: 결과의 robustness 점검 — 다른 subset 에서도 같은 결론?
  • 일상어 비유: 평균 점수의 안정성 — 다른 학년 제외 후도 같은 결과?
  • 반사실 시나리오: Sensitivity 분석 안 하면 결과의 conditional 의 conditional 모름. 보고 시 필수.

5 4. Subgroup Analysis

정의: Subgroup

사전 명시 subgroup 별 별도 통합 + 비교.

예시: - 성별 별 (남 vs 여). - 인종 별. - 환자 baseline (노인 vs 청년). - 처치 강도 (저용량 vs 고용량).

5.1 Subgroup 검정

정의: Subgroup Difference Test

\[Q_{\text{between}} = \sum_{g} w_g (\hat\theta_g - \hat\theta_{\text{pooled}})^2\]

\(Q_{\text{between}} \sim \chi^2_{G-1}\) (\(G\) = subgroup 수).

기각 = subgroup 간 효과 차이 유의.

가정 위반: Subgroup의 Multiple Testing

\(G\) 개 subgroup → \(\binom{G}{2}\) 비교. 다중 검정 문제.

3 단계 직관:

  • 추상 정의: 각 비교 5% Type I → 다중 비교 누적. Bonferroni 보정 필요.
  • 일상어 비유: 10 그룹 비교 — 5% × 45 비교 = 다수 false positive 가능.
  • 반사실 시나리오: 사전 명시된 subgroup 만 검정. Post-hoc subgroup 은 신뢰성 ↓.

6 5. Meta-regression

정의: Meta-regression

연구 수준 covariate (예: 평균 연령, 추적 기간, dose) 의 효과를 회귀.

\[\hat\theta_i = \beta_0 + \beta_1 X_i + \epsilon_i\]

\(\hat\beta_1\) = X 1 단위당 효과 변화.

6.1 직관 — Meta-regression 의 도구

직관 3 단계: Meta-regression 의 가치
  • 추상 정의: Continuous moderator 식별 — subgroup 의 일반화.
  • 일상어 비유: 학생 점수의 학교 평균 vs 학교 자원 — 자원 ↑ 시 점수 ↑ 의 양적 관계.
  • 반사실 시나리오: Subgroup 만 사용 시 cutoff 의 자의성. Meta-regression 이 연속 효과 추정.

예시: Sodium 감소량 (mEq/d) vs BP 변화 — 50 mEq 감소 시 -2 mmHg, 100 mEq 감소 시 -4 mmHg 같은 dose-response.

6.2 Meta-regression 의 한계

가정 위반: Ecological Fallacy

연구 수준 covariate (집단 평균) 와 개인 수준 효과의 관계가 다를 수 있음.

3 단계 직관:

  • 추상 정의: 집단 평균 X 와 효과의 관계 → 개인 X 와 효과의 관계 다를 수 있음.
  • 일상어 비유: 학교 평균 점수와 학교 자원 — 학교 단위 회귀가 학생 단위 효과 추정 아님.
  • 반사실 시나리오: 진성 개인 수준 분석은 IPD meta-analysis 필요.

6.3 작은 표본의 한계

가정 위반: 작은 \(k\) 의 meta-regression

\(k\) 작 (\(< 10\)) 에서 meta-regression 의 검정력 ↓ + over-fitting 위험.

Cochrane 권장: \(k \ge 10\) 일 때만 meta-regression. 더 작으면 subgroup.

7 통합 진단 절차

[Step 1] Forest plot 시각화.
   ↓
[Step 2] I² + τ² + PI 산출.
   ↓
[Step 3] I² > 25% 이면 source 탐색.
   ↓
[Step 4] Influence analysis (outlier 식별).
   ↓
[Step 5] Sensitivity analysis (RoB, 표본 크기).
   ↓
[Step 6] Subgroup analysis (사전 명시 subgroup).
   ↓
[Step 7] Meta-regression (continuous moderator, k ≥ 10).

8 코드 예시 — 종합 진단

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 가상 자료 — 다양한 인구 + 효과
studies = pd.DataFrame({
    "study": list("ABCDEFGHIJKL"),
    "theta": [0.30, 0.45, 0.55, 0.40, 0.60, 0.35, 0.50, 0.65, 0.25, 0.70, 0.42, 0.55],
    "se": [0.15, 0.12, 0.18, 0.20, 0.13, 0.16, 0.11, 0.14, 0.22, 0.17, 0.13, 0.10],
    "year": [2005, 2008, 2010, 2012, 2014, 2007, 2011, 2013, 2009, 2015, 2006, 2016],
    "region": ["W"] * 6 + ["E"] * 6,  # West vs East
})
studies["v"] = studies["se"] ** 2

# Forest plot
fig, ax = plt.subplots(figsize=(8, 6))
y_pos = np.arange(len(studies))
ax.errorbar(studies["theta"], y_pos, xerr=1.96 * studies["se"],
            fmt="s", capsize=4)
ax.set_yticks(y_pos)
ax.set_yticklabels(studies["study"])
ax.axvline(0, linestyle="--", color="gray")
ax.set_xlabel("Effect size (θ)")
ax.set_title("Forest plot")

# Subgroup analysis (West vs East)
for region in ["W", "E"]:
    sub = studies[studies["region"] == region]
    w = 1 / sub["v"]
    theta_pooled = (w * sub["theta"]).sum() / w.sum()
    SE_pooled = np.sqrt(1 / w.sum())
    print(f"Region {region}: θ = {theta_pooled:.3f}, SE = {SE_pooled:.3f}")

# Meta-regression (year)
import statsmodels.api as sm
X = sm.add_constant(studies["year"])
m = sm.WLS(studies["theta"], X, weights=1/studies["v"]).fit()
print(f"\nMeta-regression by year:")
print(f"  Slope: {m.params['year']:.4f} per year")
print(f"  p-value: {m.pvalues['year']:.4f}")

해석: Forest plot 에서 outlier 시각, subgroup 분석에서 West vs East 차이, meta-regression 에서 시간 추세.

9 A/B 테스트의 Heterogeneity Source

사례: 다중 시험의 source 탐색

A/B 결과의 heterogeneity 가능 source: - 시간: 분기별 변동 (계절성, 시장 변화). - 지역: 국가·시장별 효과 차이. - Segment: 사용자 유형별 효과. - 버전: 기능 구현 변화.

Meta-regression: 시간·지역·segment 의 lift 효과.

3 단계 직관:

  • 추상 정의: A/B 의 외적 타당도 평가 → 어느 조건에서 효과 ↑?
  • 일상어 비유: 광고 캠페인의 시장별 + 시기별 효과 분석.
  • 반사실 시나리오: 평균 lift 만 보면 어느 조건에 강한 효과인지 모름. Source 탐색이 personalization 의 통계 기초.

10 Galbraith Plot — Heterogeneity 의 시각

정의: Galbraith (Radial) Plot

X 축: \(1/\text{SE}_i\) (precision). Y 축: \(\hat\theta_i / \text{SE}_i\) (z-score).

대각선 = 회귀 직선 (FE pooled). 각 점의 분산은 일정 (z-score 단위).

(Galbraith, 1988).

직관 3 단계: Galbraith 의 가치
  • 추상 정의: Funnel plot 의 회전 — outlier 와 heterogeneity 가시화.
  • 일상어 비유: 시험 점수 vs 학교 크기 — 각 학교의 평균이 일정 분산 단위.
  • 반사실 시나리오: Forest plot 이 임상 익숙, Galbraith 이 통계학자 친화. 둘 다 활용.

11 L’Abbé Plot — RR 의 시각

정의: L’Abbé Plot

X 축: \(r_0\) (control 결과 비율). Y 축: \(r_1\) (treatment 결과 비율).

각 연구의 점. 대각선 = no effect.

(L’Abbé et al., 1987).

직관: L’Abbé 의 활용
  • 추상 정의: Baseline 위험 의 함수로 효과 시각. Effect modification by baseline 식별.
  • 일상어 비유: 학교의 baseline 점수 vs 처치 점수 — 처치 효과의 baseline 의존.
  • 반사실 시나리오: Treatment 효과가 baseline 의 함수면 단일 RR 부적절. Subgroup 또는 meta-regression.

12 Q&A — Heterogeneity Source 의 흔한 오해

Q1: Subgroup 다수 비교 — Bonferroni?

A: 권장. 사전 명시 + multiple testing 보정.

3 단계 직관:

  • 추상 정의: 다중 비교 누적 false positive.
  • 일상어 비유: 10 회 시험 후 가장 좋은 점수만 — cherry-picking.
  • 반사실 시나리오: 사전 명시 subgroup 만 검정 + Bonferroni. Post-hoc subgroup 은 hypothesis-generating.
Q2: Meta-regression 의 best 모더레이터?

A: 인과 그래프 + 임상 가설 우선. 통계 알고리즘 (stepwise) 부적절.

3 단계 직관:

  • 추상 정의: 모더레이터 선정이 인과 분석.
  • 일상어 비유: 회사 매출 차이의 원인 — 시장 변수 vs 회사 변수. 인과 그래프.
  • 반사실 시나리오: 자료 본 후 모더레이터 선정 → over-fit. 사전 가설 우선.

13 결론

Heterogeneity 의 source 는 forest plot (시각) → influence (outlier) → sensitivity (subset) → subgroup (사전) → meta-regression (continuous) 의 5 단계로 탐색. Galbraith·L’Abbé plot 이 추가 시각 도구. Multiple testing 의 함정과 ecological fallacy 의 한계 주의.

다음 글 (H-WOO12-6) 에서 표 자료 (2x2) 의 통합 (MH, Peto, zeros) 을 본다.

14 관련 주제

Subscribe

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