1 정의
기본 ANOVA 모형 (CRD, RBD, Latin Square 등) 에 공변량 \(X\) 를 회귀 항으로 추가하여 covariate 의 영향을 통제한 후 처치 효과를 추정.
CRD with covariate: \[ Y_{ij} = \mu + \tau_j + \beta(X_{ij} - \bar X) + \varepsilon_{ij} \]
RBD with covariate: \[ Y_{ij} = \mu + \tau_j + \beta_i + \gamma(X_{ij} - \bar X) + \varepsilon_{ij} \]
목적: 1. 분산 감소: covariate 가 잡음의 일부를 설명 → 검정력 ↑. 2. 편향 보정: covariate 의 우연 또는 구조적 차이 통제. 3. 결측 처리: 한 cell 결측이 다른 cells 에 미치는 영향 보정.
2 정통 DOE 의 ANCOVA — Maxwell 과 차이
| Maxwell Ch.9 (G-MAX9) | Montgomery Ch.8 (이 시리즈) | |
|---|---|---|
| 응용 분야 | 심리학, 임상 | 농학, 산업 |
| 강조점 | Lord’s paradox, change score | 결측, 변환, 비균등 설계 |
| 데이터 | 교육 점수, SBP | 수확량, 수율 |
| 처치 모형 | CRD, RBD | RBD, Latin Square, factorial |
| 변환 | 부수적 | 핵심 (heteroscedasticity 통제) |
본 시리즈는 두 시각의 통합 — Maxwell 의 개념적 통찰 + Montgomery 의 실무적 도구.
3 Ch.8 의 5 단계
G-MON8-0 개관 (현재 글)
G-MON8-1 ANCOVA Intro + RBD
G-MON8-2 CRD/Latin Square + Non-Orthogonal Two-Way
G-MON8-3 비직교 + Multiple Covariates
G-MON8-4 결측 + 변환
↓
G-MON9 (Weighing Designs)
4 응용
| 분야 | 처치 | 공변량 |
|---|---|---|
| 농학 | 비료 | 토양 비옥도, 초기 식물 크기 |
| 임상 | 약물 | baseline 점수 |
| 산업 | 공정 | machine 의 calibration 값 |
| 동물 | 사료 | 초기 체중, 성별 |
| 교육 | 교수법 | IQ, 사전 지식 |
| IT | UI 변종 | 사용자 사전 활동 |
5 변환 (Transformation) 의 통계적 동기
응답의 분산이 평균에 의존 (heteroscedastic) 할 때, 변환 후 분산이 일정해지도록 하는 함수.
| 분산 ~ 평균 관계 | 변환 |
|---|---|
| \(\text{Var}(Y) \propto E(Y)\) (Poisson) | \(\sqrt{Y}\) |
| \(\text{Var}(Y) \propto E(Y)^2\) (lognormal-ish) | \(\log Y\) |
| \(\text{Var}(Y) \propto E(Y)(1-E(Y))\) (binomial) | \(\arcsin\sqrt{Y}\) |
| 일반 | Box-Cox \((Y^\lambda - 1)/\lambda\) |
5.1 왜 변환이 ANOVA 에 중요한가
ANOVA 의 가정: 모든 그룹이 같은 분산. 위반 시 \(F\) 검정 부정확.
농학·산업 데이터 흔한 상황: - 수확량 (Poisson 비슷 — 분산이 평균에 비례) - 수율 (lognormal — 분산이 평균 제곱에 비례) - 비율 (binomial — 분산이 \(p(1-p)\))
변환 후 분산 일정해지면 ANOVA 정확.
5.2 Box-Cox 변환
\[ Y^{(\lambda)} = \begin{cases} (Y^\lambda - 1)/\lambda & \lambda \ne 0 \\ \log Y & \lambda = 0 \end{cases} \]
\(\lambda\) 를 데이터에서 추정 (likelihood 최대화):
| \(\lambda\) | 변환 |
|---|---|
| 1 | identity (\(Y\)) |
| 0.5 | square root |
| 0 | log |
| -0.5 | reciprocal square root |
| -1 | reciprocal |
Profile likelihood 로 \(\hat\lambda\) 추정. 95% CI 가 1 을 포함하면 변환 불필요.
6 ANCOVA + 변환의 통합 절차
- 잔차 분석: 응답을 변환 없이 ANOVA → 잔차 vs 적합값 plot. 패턴 (funnel, curve) 점검.
- 분산-평균 관계 진단: 그룹별 분산을 그룹 평균에 plot. 패턴 식별.
- 변환 선택: Box-Cox 또는 도메인 지식.
- 변환 후 ANCOVA: covariate 통제 + 처치 효과 추정.
- 결과 보고: 변환된 척도와 원래 척도 모두에서 해석.
7 Python 코드 — 변환 진단
import numpy as np
import pandas as pd
import statsmodels.api as sm
from scipy import stats
import matplotlib.pyplot as plt
# 가상 데이터: lognormal 분포 (heteroscedastic)
np.random.seed(2026)
treatments = ["A", "B", "C", "D"]
true_means = {"A": 50, "B": 80, "C": 120, "D": 180}
n = 15
records = []
for t in treatments:
mu = true_means[t]
# lognormal 응답 — 분산이 평균 제곱에 비례
log_mu = np.log(mu)
Y = np.random.lognormal(log_mu, 0.3, n)
for y in Y:
records.append({"treatment": t, "Y": y})
data = pd.DataFrame(records)
# 잔차 분석
model = sm.OLS.from_formula("Y ~ C(treatment)", data=data).fit()
print("=== ANOVA without transformation ===")
print(sm.stats.anova_lm(model).round(3))
residuals = model.resid
fitted = model.fittedvalues
fig, axes = plt.subplots(1, 2, figsize=(12, 4))
axes[0].scatter(fitted, residuals)
axes[0].set_xlabel("Fitted values")
axes[0].set_ylabel("Residuals")
axes[0].set_title("Residuals vs Fitted (heteroscedastic 의심)")
# 그룹별 분산
group_var = data.groupby("treatment")["Y"].var()
group_mean = data.groupby("treatment")["Y"].mean()
axes[1].scatter(group_mean, group_var)
axes[1].set_xlabel("Group mean")
axes[1].set_ylabel("Group variance")
axes[1].set_title("Variance vs Mean (Box-Cox 시사)")
plt.tight_layout()
# Box-Cox 변환
from scipy.stats import boxcox
Y_bc, lambda_hat = boxcox(data["Y"])
data["Y_bc"] = Y_bc
print(f"\nEstimated Box-Cox lambda = {lambda_hat:.3f}")
print("=> log transform OK" if abs(lambda_hat) < 0.2 else "=> 다른 변환")
# 변환 후 ANOVA
model_bc = sm.OLS.from_formula("Y_bc ~ C(treatment)", data=data).fit()
print("\n=== ANOVA after Box-Cox ===")
print(sm.stats.anova_lm(model_bc).round(3))8 가정과 한계
- 선형성: covariate 가 응답에 선형. 비선형 시 다항식 또는 GAM.
- 회귀 동질성: 모든 그룹이 같은 기울기.
- 변환의 한계: 변환 후 응답의 의미가 바뀜 (해석 어려움).
- 결측 처리: ANCOVA 의 결측은 mixed model 또는 multiple imputation.
9 본 시리즈 흐름
G-MAX9 (ANCOVA — 심리학·임상 lens)
│
▼
G-MON8-0 ── 개관 (현재 글)
│
▼
G-MON8-1 ── ANCOVA Intro + RBD
G-MON8-2 ── CRD/Latin/Non-Orthogonal Two-Way
G-MON8-3 ── 비직교 + 다중 공변량
G-MON8-4 ── 결측 처리 + 변환 (Box-Cox)
10 관련 주제
선행 지식
후속 주제
- G-MON8-1: ANCOVA + RBD
- G-MON8-4: Missing + Transformation
- G-MON9 — Weighing Designs (작성 예정)
다른 카테고리 연결
- Statistics — SLR BLUE
- Statistics — GLM — 변환의 GLM 대안