1 정의
Within-subjects 의 \(a\) 시점/처치를 단일 응답이 아니라 \(a\) 차원 multivariate 응답 으로 본다.
\[ \mathbf{Y}_i = (Y_{i1}, Y_{i2}, \ldots, Y_{ia})^T \]
각 피험자가 \(a\) 차원 vector 의 한 관측. 그룹 평균 vector 비교를 위해 MANOVA 또는 Hotelling \(T^2\) 사용.
핵심 이점: covariance matrix 의 구형성 가정 없이 분석 가능.
2 Univariate vs Multivariate 비교
| Univariate (within ANOVA + ε) | Multivariate (MANOVA / Hotelling) | |
|---|---|---|
| Sphericity 가정 | 필요 (또는 ε 조정) | 불필요 |
| 검정력 | sphericity 만족 시 ↑ | 모든 경우 안정 |
| 분포 가정 | 정규성 + 등분산 | 다변량 정규성 + 균등 covariance |
| 자유도 | 작음 (조정 후) | \(a-1\) (감소 없음) |
| 표본 요구 | 작은 \(n\) 도 가능 | \(n > a\) 필요 |
| 결측 처리 | 어려움 | 어려움 (둘 다 listwise) |
| 권장 | sphericity 만족 OR small \(n\) | sphericity 위반 OR large \(n\) |
Univariate ANOVA 는 모든 시점 데이터를 한꺼번에 합쳐 자유도를 최대화. 단 sphericity 가정.
Multivariate 는 시점별로 분리해 자유도가 적지만 가정 자유.
작은 \(n\) + sphericity 만족: univariate 우위. 큰 \(n\) + sphericity 위반: multivariate 우위.
ε 조정은 두 사이의 절충 — 자유도를 줄여 sphericity 위반에 대응.
3 D Variable (차이 점수의 multivariate 일반화)
\(a\) 시점의 데이터를 \(a-1\) 차원 차이 점수로 변환. 예: \(a = 4\):
D1 = Y2 - Y1
D2 = Y3 - Y1
D3 = Y4 - Y1
또는 직교 contrast 변환:
D1 = (Y2 - Y1) / √2 (linear within sub)
D2 = ... (quadratic)
D3 = ... (cubic)
검정: \(\mathbf{D} = (D_1, D_2, \ldots, D_{a-1})^T\) 의 평균 vector 가 0 인가? Hotelling \(T^2\) 검정.
4 Hotelling \(T^2\)
One-sample multivariate test of \(\mu_D = 0\):
\[ T^2 = n \, \bar{\mathbf{D}}^T \mathbf{S}_D^{-1} \bar{\mathbf{D}} \]
여기서 \(\mathbf{S}_D\) 는 \(\mathbf{D}\) 의 표본 covariance matrix.
분포: \(T^2 \sim \frac{(n-1)(a-1)}{n-a+1} F(a-1, n-a+1)\).
paired t-test 의 다변량 일반화.
\(a = 2\) 일 때 \(T^2 = t^2\).
5 다변량 검정 통계량 4 가지
MANOVA 의 between-groups 검정 (예: 그룹 × 시점 의 split-plot multivariate). 4 가지 통계량:
- Wilks’ \(\Lambda\): \(|\mathbf{E}| / |\mathbf{H} + \mathbf{E}|\). 가장 일반적.
- Pillai’s trace: \(\text{tr}(\mathbf{H}(\mathbf{H}+\mathbf{E})^{-1})\). robust.
- Hotelling-Lawley trace: \(\text{tr}(\mathbf{H}\mathbf{E}^{-1})\).
- Roy’s largest root: \(\mathbf{H}\mathbf{E}^{-1}\) 의 최대 eigenvalue.
여기서 \(\mathbf{H}\) = hypothesis matrix, \(\mathbf{E}\) = error matrix.
| 통계량 | 특징 |
|---|---|
| Wilks \(\Lambda\) | 일반적. 정규 가정 robust. |
| Pillai’s trace | 가장 robust. 큰 표본 권장. |
| Hotelling-Lawley | 중간. 큰 표본 통제 OK. |
| Roy’s | 한 효과가 dominant 한 경우 강력. otherwise 약. |
대부분의 경우 결과가 비슷하지만 표본이 작거나 effect 가 비대칭이면 다를 수 있다.
6 가설 데이터 — 4 시점 within
\(n = 15\) 환자, \(a = 4\) 시점 측정. \(\mathbf{D} = (D_1, D_2, D_3)^T\) 가 직교 contrast 차이 점수.
가상 결과:
| 통계량 | 값 | \(F\) | \(df\) | \(p\) |
|---|---|---|---|---|
| Hotelling \(T^2\) | 38.5 | 11.0 | (3, 12) | 0.0008 |
| Wilks \(\Lambda\) | 0.27 | 11.0 | (3, 12) | 0.0008 |
| Pillai trace | 0.73 | 11.0 | (3, 12) | 0.0008 |
| Roy largest | 2.87 | 11.5 | (3, 12) | 0.0007 |
(자유도 1 within 효과 (단일 contrast) 의 경우 모든 통계량이 동일.)
7 Ch.13 의 4 단계
G-MAX13-0 개관 (현재 글)
│
▼
G-MAX13-1 D Variable Formation + Hotelling T²
│
▼
G-MAX13-2 Wilks Λ + Pillai + Roy
│
▼
G-MAX13-3 Univariate vs Multivariate 선택
│
▼
G-MAX14 (Higher Within Multivariate)
8 Python 코드
import numpy as np
import pandas as pd
from scipy import stats
np.random.seed(2026)
n = 15
a = 4
# 4 시점 데이터, AR(1) 공분산
rho = 0.6
sigma = 5
records = []
for subj in range(n):
pi = np.random.normal(0, 8)
eps = np.zeros(a)
eps[0] = np.random.normal(0, sigma)
for j in range(1, a):
eps[j] = rho * eps[j-1] + np.random.normal(0, sigma * np.sqrt(1-rho**2))
means = [100, 105, 108, 110] # increasing trend
for j in range(a):
records.append({"subject": subj, "time": j, "Y": means[j] + pi + eps[j]})
data = pd.DataFrame(records)
# Wide format for D variable
wide = data.pivot(index="subject", columns="time", values="Y")
print("Cell means:")
print(wide.mean())
# D variables: differences from first time
D = wide.iloc[:, 1:].subtract(wide.iloc[:, 0], axis=0)
print("\nD variable means (vs time=0):")
print(D.mean())
# Hotelling T² test
n_obs = D.shape[0]
p_dim = D.shape[1]
D_mean = D.mean().values
S_D = D.cov().values
T2 = n_obs * D_mean @ np.linalg.inv(S_D) @ D_mean
F_stat = (n_obs - p_dim) / (p_dim * (n_obs - 1)) * T2
p_val = 1 - stats.f.cdf(F_stat, p_dim, n_obs - p_dim)
print(f"\nHotelling T² = {T2:.3f}")
print(f"F({p_dim}, {n_obs - p_dim}) = {F_stat:.3f}, p = {p_val:.4f}")9 결정 — Univariate vs Multivariate
Within-subjects 분석 시작
↓
표본 충분 (n > a)?
├── No → Univariate 만 (multivariate 불가능)
└── Yes
↓
Sphericity 검정 (Mauchly)
├── 구형성 OK (p > 0.05) → Univariate ANOVA (ε 조정 불필요)
└── 구형성 위반 (p < 0.05)
↓
표본 크기 충분?
├── n > 2a → Multivariate (MANOVA / Hotelling)
└── n ≤ 2a → Univariate + ε 조정 (multivariate 검정력 약)
10 가정과 한계
- 다변량 정규성: 각 차원이 정규 분포.
- 표본 ≥ \(a\): 다변량 covariance 추정 가능.
- 결측 데이터: listwise — 한 시점이라도 결측인 피험자 제거.
- 그룹 간 covariance 균등 (split-plot multivariate): Box’s M test.
11 응용
| 분야 | 시나리오 |
|---|---|
| 임상 longitudinal | 처치 (between) × 시점 (within) — split-plot multivariate |
| 발달 심리 | 연령별 측정 (within) |
| 농학 | 시점별 측정 |
| IT longitudinal A/B | 변종 × 시점 |
| 운동학 | 처치 × 측정 위치 |
12 ML 매핑
ML 모델의 다중 metric 동시 평가:
Subject (dataset): 10 datasets
Multivariate response: (accuracy, F1, AUC) — 3 차원
다중 metric 을 multivariate 응답으로 → MANOVA 로 처치 효과 검정. 단일 metric 별 분석 보다 multivariate 가 통합적.
이는 ML 의 종합 평가의 통계적 형식.
13 본 시리즈
G-MAX13-0 Within-Subjects Multivariate 개관 (현재 글)
G-MAX13-1 D Variable + Hotelling T²
G-MAX13-2 Wilks Λ + Pillai + Roy
G-MAX13-3 Univariate vs Multivariate 결정
↓
G-MAX14 (Higher Within Multivariate)
14 관련 주제
선행 지식
후속 주제
- G-MAX13-1: D Variable + Hotelling T²
- G-MAX13-2: Wilks·Pillai·Roy
- G-MAX13-3: Univariate vs Multivariate
- G-MAX14 — Higher-Order Within Multivariate
다른 카테고리 연결
- Statistics — LDA Covariance Patterns
- Math — Linear Algebra (placeholder) — eigenvalue, trace
15 더 읽을 거리
- Tabachnick, B. G., Fidell, L. S. (2019). “Using Multivariate Statistics” (7th ed). Pearson — multivariate 표준 textbook.
- Stevens, J. P. (2009). “Applied Multivariate Statistics for the Social Sciences” (5th ed). Routledge.
- Hand, D. J., Taylor, C. C. (1987). “Multivariate Analysis of Variance and Repeated Measures.” Chapman & Hall.
- Maxwell, S. E., Delaney, H. D. (2004). “Designing Experiments and Analyzing Data: A Model Comparison Perspective” (2nd ed). Lawrence Erlbaum.