1 정의
| 방법 | 식 | 적용 조건 |
|---|---|---|
| ANOVA on \(Y\) (보정 없음) | \(Y_{ij} = \mu + \alpha_j + \varepsilon\) | baseline 무관 |
| ANCOVA | \(Y = \mu + \alpha_j + \beta(X - \bar X) + \varepsilon\) | 회귀 동질성, \(\beta\) 데이터 추정 |
| Change Score | \(D = Y - X = \mu + \alpha_j + \varepsilon\) | \(\beta = 1\) 가정 |
| Residual ANOVA | \(\hat r = Y - \hat\beta_{\text{global}} X\) on group | 별도 \(\beta\) 추정 후 잔차에 ANOVA |
| Blocking | block 단위로 그룹화 후 RBD | \(X\) 를 분류 변수화 (이산화) |
2 Change Score Analysis
2.1 정의
\(D_{ij} = Y_{ij} - X_{ij}\) (처치 후 - 처치 전) 을 새 응답 변수로 두고 ANOVA.
\[ D_{ij} = \mu_D + \alpha_j + \varepsilon_{ij} \]
처치 효과 검정 = \(D\) 의 그룹 평균 비교.
2.2 가정
- \(X\) 와 \(Y\) 의 관계가 기울기 1 의 선형 (\(\beta = 1\)).
- \(X\) 의 측정 단위가 \(Y\) 와 동일 (예: 둘 다 SBP 측정).
2.3 장점
- 단순. 통계 패키지 없이 손계산 가능.
- \(\beta\) 추정이 필요 없음 → 자유도 절약.
- \(X\) 의 측정 오차 영향 최소 (오차가 \(D\) 에서 일부 상쇄).
2.4 단점
- \(\beta = 1\) 가정 위반 시 편향. 실제 \(\beta < 1\) (회귀 효과) 이면 change score 가 처치 효과를 과소·과대 추정.
- baseline 과 change 가 음의 상관 — “회귀 평균 (regression to the mean)” 으로 인한 허위 효과.
2.5 언제 적합한가
- \(X\) 와 \(Y\) 가 같은 변수의 시점만 다른 측정 (예: 사전·사후 SBP).
- \(\beta \approx 1\) 이 도메인적으로 합리적.
- 표본이 작아 \(\beta\) 추정이 불안정.
baseline 이 평균보다 매우 낮은/높은 사람은 다음 측정에서 평균에 가까이 회귀하는 경향 (통계적 현상). 이는 처치 효과가 아니다. Change score 는 baseline 자체를 무시하므로 회귀 평균이 처치 효과로 잘못 잡힐 수 있다. ANCOVA 는 baseline 을 회귀 항으로 통제하므로 이 효과를 일부 제거 — 이것이 ANCOVA 의 일반 우위.
3 Residual ANOVA
3.1 정의
전체 데이터로 회귀 \(Y \sim \beta X\) 를 fit, 잔차 \(\hat r = Y - \hat\beta X\) 를 계산. 이 잔차에 ANOVA.
\[ \hat r_{ij} = Y_{ij} - \hat\beta_{\text{global}} X_{ij} \] \[ \hat r_{ij} = \mu_r + \alpha_j + \varepsilon_{ij} \]
3.2 차이점 (vs ANCOVA)
ANCOVA 와 Residual ANOVA 는 동일하지 않다.
| ANCOVA | Residual ANOVA | |
|---|---|---|
| \(\beta\) 추정 | 그룹 효과를 통제한 후 (within-group regression) | 그룹 정보 무시 (overall regression) |
| 처치 효과 추정 | 정확 | 일반적으로 편향 |
| 자유도 | \(N - a - 1\) | \(N - 2\) (잔차로 ANOVA 시) |
| 권장 | 일반적 | 비추천 (이유: 그룹 정보를 두 번 사용) |
전체 회귀 \(\hat\beta_{\text{global}}\) 는 그룹 간 평균 차이의 일부를 회귀 효과로 흡수 한다. 따라서 잔차에는 처치 효과가 약화된 상태로 남고, 그 잔차의 ANOVA 가 처치 효과를 과소 추정한다. ANCOVA 가 거의 항상 더 정당 (within-group \(\beta\) 추정).
4 Blocking
4.1 정의
공변량 \(X\) 를 이산 levels 로 분할 (예: 분위수, 사분위수) 하여 block 변수로 만든다. 이후 Randomized Block Design (RBD) 로 분석.
baseline X → quartile blocks (Q1, Q2, Q3, Q4) → 각 block 내 random assignment to 처치
분석 모형:
\[ Y_{ijk} = \mu + \alpha_j + \beta_k^{\text{block}} + \varepsilon_{ijk} \]
4.2 장점
- 회귀 동질성 가정 불필요 — block 별로 그룹 평균 비교.
- baseline 과 응답의 비선형 관계도 일부 처리 가능 (block 별 효과 추정).
- 사전 설계 단계에서 block 결정 가능 (matched-pair design 의 일반화).
4.3 단점
- 정보 손실: 공변량의 연속 정보를 이산화 → ANCOVA 보다 검정력 ↓ (보통 10~20%).
- block 수 결정 trade-off: 많으면 자유도 부족, 적으면 block 내 분산 큼.
4.4 언제 적합한가
- \(X\) 와 \(Y\) 의 관계가 명백히 비선형.
- 사전 설계 시 baseline 으로 균형 배정 가능 (RCT 설계 단계).
- 연구자가 ANCOVA 보다 RBD 의 전통에 익숙.
5 4 가지 접근의 trade-off 표
| 접근 | \(\beta\) 가정 | 회귀 동질성 | 비선형성 | 검정력 | 권장 시 |
|---|---|---|---|---|---|
| ANOVA only | 0 (무관) | — | — | 낮음 | \(X \perp Y\) (드묾) |
| ANCOVA | 데이터 추정 | 필요 | 위반 | 가장 높음 | 일반 RCT, \(\beta\) 동일 |
| Change Score | 1 | 불필요 | 부분 처리 | 중간 | \(X, Y\) 동일 변수, \(\beta \approx 1\) |
| Residual ANOVA | 데이터 추정 (overall) | — | — | ANCOVA 보다 ↓ | 거의 비추천 |
| Blocking | 비모수 | 불필요 | 처리 | ANCOVA 보다 약간 ↓ | 비선형, 사전 설계 |
6 Maxwell SBP 데이터로 4 접근 비교
가설: 3 그룹 (A, B, Control), 각 \(n=10\), baseline \(X\), post \(Y\).
| 접근 | \(F\) | \(df\) | \(p\) |
|---|---|---|---|
| ANOVA on \(Y\) | 12.0 | 2, 27 | 0.0002 |
| ANCOVA | 25.0 | 2, 26 | \(<0.0001\) |
| Change Score \(D\) | 18.0 | 2, 27 | \(<0.0001\) |
| Residual ANOVA | 15.0 | 2, 27 | \(<0.0001\) |
| Blocking (4 quartiles) | 22.0 | 2, 24 | \(<0.0001\) |
ANCOVA 가 가장 강한 검정력. Blocking 이 그 다음. Change Score 는 \(\beta=1\) 가정의 손실로 약간 낮음.
7 Python 코드
import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import ols
from scipy import stats
# Maxwell-style data: 3 groups, baseline X, post Y
np.random.seed(2026)
groups = ["A", "B", "Control"]
n_per = 30
beta_true = 0.6
mu_X = {"A": 165, "B": 158, "Control": 162}
treatment_eff = {"A": -20, "B": -10, "Control": 0}
records = []
for g in groups:
X = np.random.normal(mu_X[g], 7, n_per)
Y = (mu_X[g] * (1 - beta_true) + beta_true * X + treatment_eff[g]
+ np.random.normal(0, 4, n_per))
for x, y in zip(X, Y):
records.append({"group": g, "X": x, "Y": y, "D": y - x})
data = pd.DataFrame(records)
# 1) ANOVA on Y
m1 = ols("Y ~ C(group, Sum)", data=data).fit()
print("=== ANOVA on Y ===")
print(sm.stats.anova_lm(m1, typ=2).round(3))
# 2) ANCOVA
m2 = ols("Y ~ C(group, Sum) + X", data=data).fit()
print("\n=== ANCOVA ===")
print(sm.stats.anova_lm(m2, typ=2).round(3))
print(f" beta_hat = {m2.params['X']:.3f}")
# 3) Change score
m3 = ols("D ~ C(group, Sum)", data=data).fit()
print("\n=== Change Score ANOVA ===")
print(sm.stats.anova_lm(m3, typ=2).round(3))
# 4) Residual ANOVA (NOT recommended — for comparison)
beta_global = sm.OLS(data["Y"], sm.add_constant(data["X"])).fit().params[1]
data["resid"] = data["Y"] - beta_global * data["X"]
m4 = ols("resid ~ C(group, Sum)", data=data).fit()
print("\n=== Residual ANOVA (biased!) ===")
print(sm.stats.anova_lm(m4, typ=2).round(3))
# 5) Blocking (quartiles)
data["block"] = pd.qcut(data["X"], 4, labels=["Q1", "Q2", "Q3", "Q4"])
m5 = ols("Y ~ C(group, Sum) + C(block, Sum)", data=data).fit()
print("\n=== Blocking (quartile) ===")
print(sm.stats.anova_lm(m5, typ=2).round(3))8 결정 절차
baseline X 가 있는가?
├── No → ANOVA on Y
└── Yes
├── X 와 Y 가 동일 변수 (사전·사후)?
│ └── Yes → β ≈ 1 인가?
│ ├── Yes → Change Score 또는 ANCOVA (선택)
│ └── No → ANCOVA
└── X 와 Y 가 다른 변수?
└── X 와 Y 의 관계가 선형?
├── Yes → ANCOVA (회귀 동질성 검정)
│ ├── 동질성 OK → ANCOVA 채택
│ └── 동질성 위반 → Johnson-Neyman 또는 Blocking
└── No → Blocking 또는 다항식 회귀
9 가정과 한계 — 종합
- ANCOVA: 일반 권장. 회귀 동질성 + 선형성 점검.
- Change Score: \(\beta = 1\) 합리적인 동일 변수 사전·사후만.
- Residual ANOVA: 일반적 비추천. ANCOVA 또는 Blocking 으로 대체.
- Blocking: 비선형·비모수 상황. 사전 설계 단계에서 결정.
모든 접근의 공통 한계: 인과 효과 추정에는 무작위 배정 또는 추가 가정 필요. 관찰 연구에서는 어느 보정 방법도 selection bias 를 자동 제거하지 못함.
10 MAX Ch.9 시리즈 정리
G-MAX9-0 ANCOVA 개관 — 분산 감소·편향 보정의 두 동기
G-MAX9-1 Linear Model + Homogeneity of Regression
G-MAX9-2 Adjusted Means + Lord's Paradox
G-MAX9-3 Change Score · Residual ANOVA · Blocking ← 현재 글
│
▼
G-MAX10 (Random/Nested), G-MON8 (ANCOVA·Transformation)
11 관련 주제
선행 지식
후속 주제
- G-MAX10-0 — Random/Nested 개관 (작성 예정)
- G-MON8-0 — ANCOVA·Transformation (작성 예정)
- G-MON2 — Complete Block Designs (작성 예정)
다른 카테고리 연결