컴퓨터 집약적 방법 — Woodward Ch.14 overview

Bootstrap, Permutation Test, Multiple Imputation 의 통합 시각

Woodward Ch.14 의 컴퓨터 집약적 방법 (computer-intensive methods) overview 를 정리한다. 부트스트랩 (CI 추론), 순열 검정 (가설 검정), 다중 대체 (결측 처리) 의 3 가지 시뮬레이션 도구를 역학 시각에서 통합 소개한다. 현대 통계 분석에서 분포 가정의 약화 + 자료 활용 극대화 의 정당성을 다룬다.

Experimentation
Fundamentals
저자

Kwangmin Kim

공개

2026년 05월 08일

1 도입 — 자료의 한계와 컴퓨팅의 역할

Woodward Ch.14 의 도입 메시지:

“역학 연구의 결과는 가용 자료수학적 접근의 존재 에 의해 한계 지어진다. 이 마지막 장에서 우리는 관측 자료를 사용해 비슷한 조건에서 발견될 수 있었던 자료 를 구성하는 3 가지 접근을 본다. 이 접근은 고전 통계의 수학적 제약에서 자유 롭게 하며, 추론의 범위를 확장 한다.” (Woodward 2014, Ch.14.1)

이 글은 Woodward Ch.14 의 13 sub-section 흐름을 8 편으로 분할한 overview 이다.

2 컴퓨터 집약적 방법의 3 도구

정의: Computer-Intensive Methods

현대 컴퓨팅 능력을 활용해 분포 가정 없이 또는 복잡한 자료 구조 를 다루는 통계 방법.

3 가지 핵심 도구:

  1. Bootstrap추정 에 강한 도구. CI, SE 의 비모수 계산.
  2. Permutation tests가설 검정 에 강한 도구. 분포 가정 없는 p 값.
  3. Multiple imputation결측 자료 처리에 강한 도구.

이 세 도구는 서로 다른 문제 를 해결한다.

2.1 Bootstrap — 추정 (Sections 14.2~14.7)

A-BUI7-* 시리즈에서 다룬 부트스트랩의 역학 시각 정리.

  • 어떤 통계량의 CI 도 계산 가능
  • 분포 가정 X
  • 작은 표본·이상치 에 강건

2.2 Permutation Tests — 가설 검정 (Section 14.8)

  • A-MAX2-1 의 randomization 검정의 일반화
  • 두 그룹 비교, 회귀 계수, 상관 계수 모두 적용
  • 분포 가정 X

2.3 Multiple Imputation — 결측 (Sections 14.9~14.12)

  • 결측 자료의 체계적 처리
  • 단순 대체 (평균 대체, LOCF) 의 한계 극복
  • 결측 메커니즘 (MCAR, MAR, MNAR) 인식 + 적절 처리

3 8 편 분할

A-WOO14-0  (이 글) Overview
A-WOO14-1  Rationale + Bootstrap (Section 14.1, 14.2)
A-WOO14-2  Bootstrap CI 4 유형 (14.3)
A-WOO14-3  실무 이슈 + 추가 사례 (14.4, 14.5)
A-WOO14-4  Bootstrap 가설 검정 + 한계 (14.6, 14.7)
A-WOO14-5  Permutation Tests (14.8)
A-WOO14-6  Missing Values + Naive Imputation (14.9, 14.10)
A-WOO14-7  Multiple Imputation (14.11, 14.12, 14.13)

4 왜 컴퓨터 집약적 방법인가

4.1 전통 방법의 3 한계

  1. 분포 가정의 한계

전통 t·F 검정과 정규 CI 는 모집단 정규성 또는 표본 평균의 정규 근사 가정. CLT 가 작동하면 안전하지만, 작은 표본 또는 극단적 비대칭 에서 약함.

  1. 닫힌 공식의 한계

평균, 분산 같은 단순 통계량은 닫힌 SE 공식 존재. 그러나 중앙값, 두 평균의 비율, 두 비대칭 변수의 차이 같은 통계량은 수학적 SE 공식이 복잡하거나 없음.

  1. 결측의 한계

결측 자료를 제외 하거나 평균 대체 하는 단순 방법이 편향 을 만들 수 있음.

4.2 컴퓨터의 등장

1980 년대 이후 컴퓨팅 발전이 이 한계를 시뮬레이션 으로 우회 가능하게 만들었다.

  • Bootstrap: Efron (1979) 가 도입
  • Permutation tests: Fisher (1935) 가 개념, 컴퓨팅으로 실용화
  • Multiple imputation: Rubin (1987) 이 정식화

이 세 도구가 현대 통계 분석의 표준 이 됨.

직관 — 컴퓨터 집약적 방법의 역사적 의미

1900~1980 년 통계학은 수학적 우아함 을 추구. 닫힌 공식, 정규 가정, 점근 이론.

1980 년 이후 컴퓨터가 폭발적 발전. 수학적으로 복잡한 문제를 시뮬레이션 으로 우회 가능.

이 변화가 통계학의 패러다임 전환 을 만들었다. 이제 어떤 자료, 어떤 통계량 도 컴퓨터로 추론 가능.

A/B 테스트의 빅데이터 분석은 이 변화의 직접 응용. 1 분에 \(10^6\) 개 사용자 자료의 부트스트랩 가능. 분석 도구가 자료를 따라가는 것이 아니라, 자료가 분석 도구를 따라간다.

5 3 도구의 비교

도구 목적 자료 처리 가정
Bootstrap 추정 (CI, SE) 자료 복원 추출 표본의 모집단 대표성
Permutation 가설 검정 라벨 재배치 무작위 배정
Multiple Imputation 결측 처리 결측 자료 모형 시뮬레이션 MAR (보통)

각 도구는 다른 통계 문제 를 해결. 함께 사용도 가능.

6 통합 시각 — 같은 자료, 다른 도구

A/B 테스트 자료에 3 도구 모두 적용:

1. Permutation test
   → 두 변형의 매출 차이가 우연인가? p 값 계산
   → 결과: p = 0.012 → 효과 유의

2. Bootstrap
   → 효과 크기의 95 % CI = ($3.20, $7.80)
   → 의사결정에 신뢰 구간 정보

3. Multiple imputation
   → 일부 사용자 매출 결측 (5 %) → MI 로 대체
   → 결측 처리 후 결과의 robustness 확인

통합 분석 이 현대 표준.

7 Bootstrap 의 역학 응용

7.1 사례 1 — 비대칭 자료의 평균

혈액 트리글리세라이드 분포가 극단적 우편향. 표본 평균의 CI 를 t 검정으로 계산하면 부정확. 부트스트랩이 더 robust.

7.2 사례 2 — 두 비대칭 분포의 차이

처치군 vs 대조군의 중앙값 차이 CI. 전통 공식 X. 부트스트랩이 표준.

7.3 사례 3 — 비표준 위험 지표

NNT (Number Needed to Treat) 의 CI. 비율의 비율이라 전통 공식 복잡. 부트스트랩 사용.

8 Permutation Tests 의 역학 응용

8.1 사례 1 — 작은 표본 RCT

\(n = 20\) 의 작은 시험에서 t 검정의 정규 가정 의심. Permutation 으로 정확 p 값.

8.2 사례 2 — 비모수 회귀 계수 검정

회귀 계수의 p 값 을 분포 가정 없이 계산. 잔차가 비정규일 때 유용.

8.3 사례 3 — Genome-wide Association

수백만 SNP 의 동시 검정에서 permutation 이 영가설 분포 를 자료에서 직접 추정.

9 Multiple Imputation 의 역학 응용

9.1 사례 1 — 코호트 추적 결측

장기 코호트에서 일부 변수의 결측 (예: BMI 측정 누락). MI 로 체계적 처리.

9.2 사례 2 — Survey 결측

대규모 조사 (NHANES 등) 에서 결측 항목 처리. MI 가 표준.

9.3 사례 3 — 임상시험 drop-out

ITT 분석에서 결측 outcome 처리. MI 가 LOCF 보다 정확.

10 A/B 테스트의 통합 응용

10.1 시나리오 — 매출 효과 분석

A/B 테스트 자료:

  • \(n = 5000\) 사용자 (그룹당)
  • 매출 분포 우편향
  • 일부 사용자의 추가 정보 결측

분석 절차:

  1. Multiple Imputation — 결측 사용자 정보 (예: tenure) 대체
  2. Bootstrap — 효과 크기 + CI 계산
  3. Permutation Test — 효과의 우연 가능성 검정
  4. Robustness Check — 전통 t 검정과 비교
import numpy as np
import pandas as pd

# 가상 자료
np.random.seed(42)
n_per = 5000

control = np.random.lognormal(4, 1.0, n_per)
treatment = np.random.lognormal(4.05, 1.0, n_per)

# 1. Bootstrap 효과 크기 CI
B = 5000
diff_boot = []
for _ in range(B):
    c_b = np.random.choice(control, n_per, replace=True)
    t_b = np.random.choice(treatment, n_per, replace=True)
    diff_boot.append(t_b.mean() - c_b.mean())
ci = np.percentile(diff_boot, [2.5, 97.5])
print(f"Bootstrap 평균 차이 95 % CI: (${ci[0]:.2f}, ${ci[1]:.2f})")

# 2. Permutation test
obs_diff = treatment.mean() - control.mean()
combined = np.concatenate([control, treatment])
perm_diffs = []
for _ in range(B):
    np.random.shuffle(combined)
    perm_diffs.append(combined[:n_per].mean() - combined[n_per:].mean())
p_perm = np.mean(np.abs(perm_diffs) >= np.abs(obs_diff))
print(f"Permutation p = {p_perm:.4f}")

# 3. 전통 t 검정 (비교)
from scipy.stats import ttest_ind
t_stat, p_t = ttest_ind(treatment, control, equal_var=False)
print(f"Welch t: t = {t_stat:.3f}, p = {p_t:.4f}")

# 결과 비교 — 일관 여부
print("\n결과 robustness:")
print(f"  부트스트랩 CI 가 0 포함? {ci[0] < 0 < ci[1]}")
print(f"  Permutation p < 0.05? {p_perm < 0.05}")
print(f"  Welch t p < 0.05? {p_t < 0.05}")

이 통합 분석이 현대 A/B 테스트의 표준.

11 Woodward 의 권장

컴퓨터 집약적 방법은 분포 가정의 한계를 우회하고 자료 활용을 극대화. 작은 표본, 비대칭 자료, 복잡 통계량, 결측 자료 — 모두 다룰 수 있다.”

11.1 4 권장 시나리오

  1. 자료가 비대칭 → Bootstrap CI
  2. 표본이 작음 (\(n < 30\)) → Permutation 검정
  3. 비표준 통계량 (중앙값, AUC, NNT) → Bootstrap
  4. 결측 자료 → Multiple Imputation

12 A-BUI7-* 와의 차이

A-BUI7-* (Buisson) 는 비즈니스 행동 자료 시각. A-WOO14-* (Woodward) 는 역학 자료 시각.

측면 Buisson Ch.7 Woodward Ch.14
자료 유형 비즈니스, 행동 역학, 임상
사례 매출, 클릭, 사용자 콜레스테롤, 코호트, 임상시험
강조 적용해서 잃을 게 없다 분포 가정의 한계 극복
결측 처리 부분적 자세함 (MI 포함)

두 시각이 상호 보완. Buisson 은 행동 분석, Woodward 는 결측 처리 추가.

13 컴퓨터 집약적 방법의 추가 도구

3 핵심 도구 외에도 현대 통계 분석에서 흔한 컴퓨터 집약적 방법:

13.1 MCMC (Markov Chain Monte Carlo)

베이즈 사후 분포의 시뮬레이션. 베이즈 분석의 핵심 도구.

  • Metropolis-Hastings algorithm (1970)
  • Gibbs sampling (1984)
  • Hamiltonian Monte Carlo (Stan, 2010s)

베이즈 분석이 복잡 모형 (계층 모형, 비선형 모형) 에서 작동 가능.

13.2 Cross-Validation

머신러닝 모형 평가의 표준. K-fold CV, LOOCV, repeated CV.

부트스트랩과 비슷하지만 예측 성능 평가에 특화.

13.3 EM Algorithm (Expectation-Maximization)

결측 자료 또는 잠재 변수 모형의 최대가능도 추정.

  • E-step: 결측 또는 잠재 변수의 기대값
  • M-step: 모수 최대화
  • 수렴까지 반복

Multiple Imputation 에서도 사용.

13.4 Variational Inference

베이즈 사후 분포의 근사 분석. MCMC 보다 빠름.

13.5 Genetic Algorithms / Simulated Annealing

복잡 최적화 문제에 사용. 통계학에서는 모형 선택 등.

이 도구들이 현대 통계 + 머신러닝 의 핵심 인프라.

14 컴퓨터 집약적 방법의 학습 순서

초급: Bootstrap (CI), Permutation (검정)
중급: Multiple Imputation (결측), Cross-validation (평가)
고급: MCMC (베이즈), EM (잠재변수), Variational
전문: Sequential Monte Carlo, ABC, GANs

각 단계가 이전 단계의 수학적 정당성 위에서 발전.

15 A/B 테스트의 통합 분석 사례

직관 — 3 도구 통합의 가치

A/B 테스트의 매출 분석에서 3 도구 통합 이 어떻게 robust 한 결론을 만드는가?

1. 결측 처리 (MI)
   - 5 % 사용자의 추가 정보 결측 (예: tenure)
   - 5 imputed dataset 생성

2. 효과 검정 (Permutation)
   - 각 imputed dataset 에서 permutation p 값
   - 5 개 p 값의 통합 (Rubin 의 결합 규칙)

3. 효과 크기 추정 (Bootstrap)
   - 각 imputed dataset 에서 BCa CI
   - 5 개 CI 의 통합 (Rubin 의 결합 규칙)

결과:
  통합 p = 0.012 (검정의 robustness)
  통합 95 % CI: ($3.20, $7.80) (효과의 정밀도)
  결측 영향: 결측 무시 결과와 일관 (robustness)

이 통합 분석이 현대 A/B 테스트 의 표준. 개별 도구가 다른 측면을 다루며 서로 보완.

16 분야별 채택 현황

분야 Bootstrap Permutation MI
임상시험 표준 가끔 표준
역학 표준 표준 표준
심리학 표준 표준 표준
경제학 표준 (regression) 가끔 가끔
머신러닝 표준 (cv 변형) 가끔 드물
빅데이터 분석 BLB (큰 자료 변형) 가끔 가끔
GWAS 가끔 표준 가끔

각 분야의 전형적 자료 + 문제 가 도구 채택을 결정.

17 컴퓨팅 자원과 부트스트랩

17.1 큰 자료에서의 효율화

# 단순 부트스트랩 — O(n × B)
n = 1_000_000
B = 5000
# 단일 스레드에서 약 1 시간

# 병렬화 — Joblib
from joblib import Parallel, delayed

def one_boot(data):
    return np.random.choice(data, len(data), replace=True).mean()

# 8 코어 → 7~8 배 가속
results = Parallel(n_jobs=-1)(
    delayed(one_boot)(data) for _ in range(B)
)
# 약 8 분

17.2 Big Data 변형

매우 큰 자료 (\(n = 10^9\)):

  • Bag of Little Bootstraps (BLB): 자료 청크 분할 + 각 청크 부트스트랩
  • Subagging: 무작위 부분 표본 + 통계량 합산
  • m-out-of-n bootstrap: 더 작은 표본 크기 부트스트랩
# BLB 의 단순 구현
def blb(data, m, n_boot=100, n_subsamples=50):
    n = len(data)
    results = []
    for _ in range(n_subsamples):
        # 작은 청크 (m 개) 추출
        subsample = np.random.choice(data, m, replace=False)
        # 청크에서 부트스트랩 (n 크기)
        boot_means = [np.random.choice(subsample, n, replace=True).mean()
                      for _ in range(n_boot)]
        results.extend(boot_means)
    return results

이 변형이 클라우드 컴퓨팅 에서 효율적.

18 후속 — 각 도구 자세히

8 편의 분할 글:

  • A-WOO14-1 — Rationale + Bootstrap 도입
  • A-WOO14-2 — Bootstrap CI 4 유형
  • A-WOO14-3 — Bootstrap 실무 이슈
  • A-WOO14-4 — Bootstrap 가설 검정 + 한계
  • A-WOO14-5 — Permutation Tests
  • A-WOO14-6 — Missing Values + Naive Imputation
  • A-WOO14-7 — Multiple Imputation

19 관련 주제

선행 지식

후속 주제 (Phase A)

  • A-WOO14-1 ~ 7 (자세히)

다른 카테고리 연결

Subscribe

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