1 ε 조정 — 자유도 축소의 메커니즘
구형성 위반 정도를 측정하는 통계량.
\[ \hat\epsilon_{GG} = \frac{(\text{tr}(\hat\Sigma))^2}{(a-1) \text{tr}(\hat\Sigma^2)} \]
여기서 \(\hat\Sigma\) 는 추정 covariance matrix.
- \(\hat\epsilon_{GG} = 1\): 완전 구형성.
- \(\hat\epsilon_{GG} = 1/(a-1)\): 최대 위반.
GG 조정 후 자유도: \[ df_{\text{numerator}} = \hat\epsilon_{GG} (a-1) \] \[ df_{\text{denominator}} = \hat\epsilon_{GG} (a-1)(n-1) \]
\(F\) 값은 동일, 자유도만 작아져 critical value 가 커지고 \(p\) 값도 커진다.
1.1 GG 의 통계적 정당화
GG 는 covariance matrix 의 eigenvalue 분포에서 도출. 모든 eigenvalue 가 같으면 구형성 만족, 다르면 위반의 정도가 ε 으로 측정.
수학적: \(\hat\epsilon_{GG} = (\sum \lambda_i)^2 / [(a-1) \sum \lambda_i^2]\). eigenvalue 가 모두 같으면 \(\epsilon = 1\).
2 Huynh-Feldt ε
GG 가 보수적으로 편향됨을 보정.
\[ \hat\epsilon_{HF} = \min\left(1,\ \frac{n(a-1)\hat\epsilon_{GG} - 2}{(a-1)(n-1) - (a-1)^2 \hat\epsilon_{GG}}\right) \]
일반적으로 \(\hat\epsilon_{HF} \ge \hat\epsilon_{GG}\). HF 가 GG 보다 자유 (검정력 ↑).
3 ε 선택 규칙
| 조건 | 권장 |
|---|---|
| \(\hat\epsilon_{GG} > 0.75\) | HF (보수적이지 않음) |
| \(\hat\epsilon_{GG} \le 0.75\) | GG (보수적, 안전) |
| 일반 권장 | 항상 GG, 보고에 두 결과 모두 |
4 Lower Bound
\(\hat\epsilon = 1/(a-1)\) — 최대 보수적. 자유도 \((1, n-1)\) 의 단일 비교와 동치. 거의 사용 되지 않음 — 검정력이 너무 약.
5 가설 데이터의 ε 조정
G-MAX11-2 의 데이터 (\(n=12, a=4\)). Mauchly’s \(W = 0.55\) (\(p = 0.04\), 구형성 위반).
| 조정 | \(\hat\epsilon\) | \(df_T\) | \(df_E\) | \(F\) | \(p\) |
|---|---|---|---|---|---|
| 없음 | 1.00 | 3 | 33 | 8.0 | 0.0004 |
| Greenhouse-Geisser | 0.65 | 1.95 | 21.45 | 8.0 | 0.0027 |
| Huynh-Feldt | 0.78 | 2.34 | 25.74 | 8.0 | 0.0014 |
| Lower bound | 0.33 | 1.00 | 11.00 | 8.0 | 0.016 |
모든 조정에서 유의하지만, \(p\) 값이 수배 증가. 효과가 작은 데이터에서는 결론이 바뀔 수 있다.
6 순서 효과 (Order Effects)
Within-subjects 의 두 번째 주요 함정.
6.1 종류
Carryover: 처치 A 의 잔여 효과가 처치 B 의 측정에 영향. 예: 약 A 의 약리 작용이 끝나지 않고 약 B 측정에 섞임.
Practice / Learning: 후속 시점일수록 능숙도 ↑ (학습 효과). 예: 같은 종류의 시험 반복 → 점수 ↑.
Fatigue / Boredom: 후속 시점일수록 동기 ↓. 예: 긴 실험에서 후반 측정의 정확도 ↓.
Sensitization: 첫 노출이 후속 노출의 반응을 바꿈. 예: 첫 광고 노출이 인지를 증가시켜 후속 광고 효과를 측정 불가능하게 함.
6.2 통계적 영향
순서 효과는 처치 효과와 혼동. 처치 A 가 항상 첫 번째이면 그 효과가 “초기 효과” 와 분리 불가능.
6.3 통제 방법
| 방법 | 설명 | 적용 |
|---|---|---|
| Counterbalancing | 처치 순서를 무작위로 배정 | 가장 일반적. 표본 크기 충분 시 |
| Latin Square | 모든 처치 × 모든 위치 조합을 균등하게 배치 | \(a\) 처치, \(a\) 피험자 그룹 |
| Williams Square | 처치 쌍 인접 균등 | 비대칭 carryover 통제 |
| Washout period | 처치 간 충분한 시간 간격 | 약리학 |
| Order as covariate | 순서 정보를 모형에 명시 | 분석 단계 |
피험자가 적으면 모든 순서 배정 조합을 다 채우지 못한다 (\(a! = 24\) 가능 순서 in \(a=4\)).
또 carryover 가 비대칭 (A→B 는 영향 큼, B→A 는 작음) 이면 단순 counterbalancing 이 부적절. 이 경우 Williams Square 또는 incomplete crossover 설계가 필요 (G-MAX11-4).
7 Latin Square 의 미리보기
\(3 \times 3\) Latin Square:
Period 1 Period 2 Period 3
Subj 1: A B C
Subj 2: B C A
Subj 3: C A B
각 처치가 각 시점에 한 번씩, 각 피험자에게 한 번씩 등장. 이로써 처치 효과와 시점 효과 (순서) 가 직교 분리된다. 자세한 내용은 G-MAX11-4.
8 Order × Treatment Interaction
순서 효과의 진단:
\[ Y = \mu + \alpha_{\text{treat}} + \beta_{\text{order}} + (\alpha\beta) + \pi_i + \varepsilon \]
- \(\beta_{\text{order}}\): 시점 효과 (전체).
- \((\alpha\beta)\): 처치 × 순서 상호작용. 이것이 carryover 를 잡는다.
\((\alpha\beta)\) 가 유의하면 carryover 의심. crossover 분석 무효.
8.1 진단 절차
Step 1: Order × Treatment ANOVA fit.
Step 2: Interaction 검정.
Step 3: 유의 → carryover 의심.
- Williams Square 로 재설계.
- 또는 첫 처치만 분석 (between-subjects 같이 다룸).
- 또는 carryover term 명시 모형.
Step 4: 비유의 → counterbalancing OK.
9 가설 데이터 — Crossover Trial
9.1 데이터
\(n = 12\) 환자, \(a = 4\) 처치, counterbalanced order. 각 환자가 4 시점에서 4 처치 모두 받음.
9.2 Order × Treatment 진단
| Source | \(df\) | \(F\) | \(p\) |
|---|---|---|---|
| Treatment | 3 | 12.0 | \(<0.001\) |
| Order (시점) | 3 | 0.5 | 0.7 |
| Treatment × Order | 9 | 0.8 | 0.6 |
| Subject | 11 | — | — |
| Error | 21 | — | — |
해석: - Treatment 효과 강함. - Order 효과 비유의 (carryover 나 fatigue 없음). - Interaction 비유의 (carryover 비대칭 없음).
→ counterbalancing 충분, crossover 분석 OK.
10 Python 코드
import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.stats.anova import AnovaRM
from scipy import stats
np.random.seed(2026)
n = 12
a = 4
treatments = ["placebo", "A", "B", "C"]
orders = list(range(a))
# 데이터 — 약간의 carryover 가 있음
records = []
for subj in range(n):
pi_subj = np.random.normal(0, 8)
# subj 마다 다른 순서로 처치 배정 (단순 counterbalancing)
perm = np.random.permutation(treatments)
prev = 0
for period, treat in enumerate(perm):
treat_eff = {"placebo": 0, "A": -8, "B": -5, "C": -10}[treat]
carryover = 0.5 * prev # 작은 carryover
period_eff = -1 * period # 약간의 fatigue
y = 130 + pi_subj + treat_eff + carryover + period_eff + np.random.normal(0, 4)
records.append({"subject": subj, "treatment": treat,
"period": period, "Y": y})
prev = treat_eff
data = pd.DataFrame(records)
# 1) ANOVA + ε corrections (pingouin 권장)
try:
import pingouin as pg
aov_corrected = pg.rm_anova(data=data, dv="Y", within="treatment",
subject="subject", correction=True, detailed=True)
print("=== Within-Subjects ANOVA (with GG/HF) ===")
print(aov_corrected)
except ImportError:
aovrm = AnovaRM(data, "Y", "subject", within=["treatment"]).fit()
print("=== Within-Subjects ANOVA (no correction reported by default) ===")
print(aovrm.anova_table)
# 2) Order × Treatment interaction (carryover 진단)
aovrm_order = AnovaRM(data, "Y", "subject", within=["treatment", "period"]).fit()
print("\n=== Treatment × Period (carryover 진단) ===")
print(aovrm_order.anova_table)11 비대칭 Carryover
A → B 의 carryover 가 +5 이지만 B → A 의 carryover 는 -2 라면 비대칭.
단순 counterbalancing 은 이를 통제 못 함: - 일부 피험자: A 다음 B → B 의 측정값에 +5 carryover. - 다른 피험자: B 다음 A → A 의 측정값에 -2 carryover.
평균하면 일부 cancel 되지만 완전 cancel 안 됨.
해결: Williams Square — 모든 처치 쌍이 인접 위치에 같은 빈도로 등장.
11.1 Williams Square 의 효과
처치 쌍 (A, B) 의 인접 등장: - A → B: 한 번. - B → A: 한 번.
→ carryover 의 효과가 두 방향에서 cancel.
자세한 구성은 G-MAX11-4.
12 Sensitization 처리
처음 노출만 진정한 처치 효과를 측정하면 첫 측정만 사용:
n = 100 피험자.
첫 처치 (각 피험자 1 회) 만 분석 → between-subjects ANOVA (G-MAX9 의 lens).
이는 within-subjects 의 검정력 이득을 잃지만 sensitization 통제.
또는 balanced incomplete block 으로 일부 피험자가 일부 처치만 — within 의 일부 이득 보존.
13 ε 조정의 효과 크기 보고
효과 크기는 ε 조정과 무관: - \(\eta^2 = SS_T / SS_{\text{total}}\) - Cohen’s \(f\) = \(\sqrt{\eta^2 / (1 - \eta^2)}\)
ε 조정은 자유도만 바꿈, \(SS\) 와 효과 크기는 동일.
따라서 보고: - \(F(GG \cdot df_T, GG \cdot df_E) = ..., p_{GG} = ...\). - \(\eta^2 = ..., f = ...\) (조정 무관).
14 결정 차트 — Within-Subjects 분석 종합
Within-Subjects ANOVA 시작
↓
효과 자유도 = 1 ($a = 2$)?
├── Yes → paired t-test, sphericity 자동 만족
└── No → 다음 단계
↓
Mauchly's test
├── 비유의 → ε 조정 불필요 (또는 GG 안전)
└── 유의 → ε 조정 필수
↓
ε 조정 적용 (GG 또는 HF)
↓
Order × Treatment interaction 검정
├── 유의 → carryover 의심 — Williams Square 또는 다른 설계
└── 비유의 → 분석 OK
↓
효과 크기 보고 ($\eta^2$, $f$)
↓
사후 비교 (paired comparison + Bonferroni)
15 가정과 한계
- ε 조정: 자유도만 축소, 효과 크기는 변하지 않음.
- Mauchly 의 검정력 한계: 항상 ε 조정 권장.
- Counterbalancing 가정: carryover 가 대칭. 비대칭이면 Williams Square 또는 multilevel.
- Order as covariate: 시점이 양적이면 직접 모형에 포함.
- Multilevel 우위: 결측·비균등에 강.
16 응용
16.1 임상 — Crossover Trial
약 A vs 약 B 의 crossover. 각 환자가 두 약 모두. washout period (약효 소멸) 필수.
분석: - ε 조정 (a=2 면 불필요). - Order × Treatment 으로 carryover 진단. - 비유의면 counterbalanced crossover 정당.
16.2 심리 — 학습 조건 비교
학습 조건 4 가지 (소리/조용/음악/잡음). 각 학생이 4 조건 모두 (다른 단어 목록).
순서 효과 위험: 학습 능숙도 ↑ (practice). counterbalancing 필수.
16.3 운동학 — 신발 비교
선수가 4 신발 시험. 피로 (fatigue) 위험 — 후반 시험 점수 ↓.
해결: 짧은 휴식, counterbalancing, 시점별 baseline 측정.
17 본 챕터의 다음 단계
G-MAX11-0 Within-Subjects 개관
G-MAX11-1 Three Situations
G-MAX11-2 Mixed Model + Sphericity
G-MAX11-3 GG/HF + Order Effects ← 현재 글
│
▼
G-MAX11-4 Latin Square + Power
18 관련 주제
선행 지식
후속 주제
- G-MAX11-4: Latin Square + Power
- G-MAX13 — Multivariate Within (sphericity 회피)
다른 카테고리 연결
19 더 읽을 거리
- Greenhouse, S. W., Geisser, S. (1959). “On methods in the analysis of profile data.” Psychometrika 24(2): 95-112.
- Huynh, H., Feldt, L. S. (1976). “Estimation of the Box correction for degrees of freedom from sample data in randomised block and split-plot designs.” Journal of Educational Statistics 1(1): 69-82.
- Senn, S. (2002). “Cross-over Trials in Clinical Research” (2nd ed). Wiley — carryover 의 표준.
- Williams, E. J. (1949). “Experimental designs balanced for the estimation of residual effects of treatments.” Australian Journal of Scientific Research 2(2): 149-168.