MANOVA로 다중 지표의 집단 차이 검정하기
MANOVA의 다변량 검정 구조와 Wilks’ Lambda, Pillai 통계량 선택, 정준변량과 LDA 차원 축소 연계를 정리한다.
2026-08-14 · 최초 발행 2024-04-29
여러 결과 지표를 하나의 가설로 검정할 때
MANOVA(Multivariate ANOVA)는 여러 연속형 종속변수 집합 Y에 대해 범주형 독립변수 X가 집단별 평균 벡터를 다르게 만드는지, 변수 간 공분산 구조까지 포함해 동시에 검정하는 방법이다. 종속변수를 각각 분리해 비교하는 대신 하나의 다변량 가설로 다룬다는 점이 핵심이다.
모형은 Y = XB + U로 표현할 수 있다. 가설 SSCP 행렬 H와 오차 SSCP 행렬 E를 구성한 뒤 고유값 분해를 통해 다변량 검정 통계량을 얻는다. 분석에는 각 그룹의 다변량 정규성, 공분산 동질성, 독립 표본이라는 가정이 필요하며, 결측치와 이상치도 적절히 처리해야 한다.
집단 평균 벡터가 동일하다는 것이 귀무가설이다. 대비(contrast)와 제약식을 사용하면 주효과뿐 아니라 상호작용까지 확장할 수 있다.
Wilks’ Lambda와 대안 통계량을 읽는 법
Wilks’ Λ는 det(E) / det(E + H)로 정의된다. 값이 작을수록 집단 간 차이가 크다는 뜻이다. 다만 하나의 통계량만으로 모든 설계를 판단하기보다는 표본 구성과 가정 위반 가능성을 고려해 Pillai’s Trace, Hotelling–Lawley Trace, Roy’s Largest Root도 함께 본다.
| 통계량 | 성능(검정력) | 일관성(설계 전반) | 안정성(소표본/위반) | 해석 용이성 | 운영 편의 |
|---|---|---|---|---|---|
| Wilks’ Lambda | 평균적 우수 | 균형 설계 강점 | 공분산 이질·소표본에 민감 | 널리 사용, 직관적 | 도구 지원 풍부 |
| Pillai’s Trace | 약간 보수적 | 불균형 설계 견고 | 가정 위반·이상치에 강건 | 누적 설명력 해석 용이 | 권장 대안 |
| Hotelling–Lawley | 대규모 효과에 강 | 중간 | 소표본 변동성 있음 | 해석 중간 | 상황 의존 |
| Roy’s Largest Root | 1개 강한 축에 최적 | 대안들보다 제한 | 매우 민감 | 단일 최대 효과 강조 | 특수 상황 용도 |
공분산 이질성이나 소표본, 불균형 설계가 의심되면 Pillai를 우선 검토한다. 하나의 강한 정준효과가 예상되는 경우에는 Roy를 고려할 수 있다. 기본 보고에서는 Wilks와 Pillai를 함께 제시하는 방식이 적합하다.
다변량 정규성은 Mardia’s test, Q–Q plot, Mahalanobis 거리로 점검한다. 공분산 동질성은 Box’s M으로 평가하며, 위반 시에는 Pillai 지표, 견고 공분산(SHRINKAGE), 부트스트랩, 퍼뮤테이션을 적용할 수 있다.
진단에서 사후 해석까지의 흐름
입력은 다수의 연속형 종속변수 Y, 범주형 독립변수 또는 요인 X, 표본 n, 그룹 g다. 먼저 정규성·등분산·이상치·결측을 진단하고 조치한 뒤 H와 E를 계산한다. 선택한 검정 통계량으로 유의성, 신뢰구간, 효과 크기를 보고하고, 이후 정준변량이나 단변량 후속 검정으로 결과를 해석한다.
효과 크기는 부분 η²와 정준상관 R²로 보고한다. 유의한 결과가 나오면 정준변량(Canonical Variates)을 통해 그룹 분리를 해석하고, LDA로 분류 성능과 해석력을 함께 확보할 수 있다. 각 종속변수에 대한 후속 ANOVA와 포스트 hoc, 다중비교 보정도 병행한다.
정준축, LDA, PCA가 맡는 역할
정준변량은 E⁻¹H의 고유분해에서 도출한 정준축에 Y를 사영해 그룹 분리를 최대화한다. 어떤 변수 조합이 집단 차이를 가장 잘 설명하는지 파악하는 데 사용한다.
LDA(Linear Discriminant Analysis)는 같은 정준축을 추정하며, 분류와 해석이 함께 필요한 경우에 적합하다. MANOVA의 유의성 결과를 해석하는 보조 수단이 된다.
PCA는 공분산 구조를 먼저 탐색하는 데 쓸 수 있다. 다만 그룹 정보를 사용하지 않으므로, 그룹 차이를 검정하는 MANOVA와는 목적이 다르며 상호 보완적이다.
다중 지표를 함께 다뤄야 하는 장면
제조 공정에서는 치수, 표면 조도, 경도처럼 여러 품질 특성을 대상으로 라인이나 셋업을 비교할 수 있다. 정준축은 공정 변동이 두드러지는 방향을 보여주고 공정 조정의 근거가 된다.
마케팅 캠페인 A/B/n에서는 전환율, 유지율, 객단가 등 다중 KPI를 함께 검정할 수 있다. Bonferroni 대신 MANOVA를 사용하면 상관구조를 활용하면서 검정력을 확보할 수 있다.
임상·전임상 연구에서는 다수 바이오마커의 치료군 차이를 평가한다. Box’s M 확인 뒤 Pillai를 적용하고, 정준부하량으로 생물학적 해석을 이어갈 수 있다. 교육 평가에서는 읽기·쓰기·수학 점수에 대한 교육과정 효과를 검정하고, LDA로 그룹 분리를 시각화해 학생군 특성을 진단한다.
분석 전에 확인할 데이터 상태
이상치는 Mahalanobis 거리 임계치(χ²_p, α=0.001)를 기준으로 표적 검토하고, 영향 분석 후 유지 또는 제외 근거를 기록한다. 결측치에는 다중대치(MICE)를 적용할 수 있으며, 임의 삭제는 공분산 추정 편향 위험이 있다.
변수 표준화 여부도 명시해야 한다. 스케일 차이는 정준축 해석에 영향을 준다. 그룹 크기 편차가 큰 경우에는 Pillai 또는 퍼뮤테이션 MANOVA(adonis)를 검토한다.
단변량 5개를 독립적으로 0.05 수준에서 검정하면 FWER = 1 − (1 − 0.05)^5 ≈ 22.6%가 된다. MANOVA는 가족 수준 α ≈ 5%를 유지하면서 종속변수 간 상관을 활용한다. 같은 표본에서 단변량 다중검정보다 유의성 검출 확률을 높일 수 있고, 정준부하량과 LDA 분리도 지표로 변수 기여도를 해석할 수 있다. 후속 단변량 분석을 유의한 요인 중심으로 줄이면 분석 반복에 드는 비용과 시간도 절감된다.
Python으로 검정과 정준축을 확인하는 예시
전제조건: Python 3.10+, statsmodels 0.14+, scikit-learn 1.3+, pandas 2.x, numpy 1.24+
MANOVA 결과에서는 Wilks, Pillai, Hotelling–Lawley, Roy 통계량을 함께 출력할 수 있다.
import pandas as pd
from sklearn.datasets import load_iris
from statsmodels.multivariate.manova import MANOVA
iris = load_iris(as_frame=True)
df = iris.frame.rename(columns=str.lower)
# 종속변수 4개, 독립변수: species
formula = 'sepal length (cm) + sepal width (cm) + petal length (cm) + petal width (cm) ~ target'
# statsmodels 컬럼명 공백 처리
df.columns = [c.replace(' (cm)', '').replace(' ', '_') for c in df.columns]
formula = 'sepal_length + sepal_width + petal_length + petal_width ~ target'
maov = MANOVA.from_formula(formula, data=df)
print(maov.mv_test()) # Wilks, Pillai, HL, Roy 동시 출력
LDA 변환 결과는 정준변량 점수와 분산 설명력으로 확인한다.
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
X = df[['sepal_length','sepal_width','petal_length','petal_width']].values
y = df['target'].values
lda = LinearDiscriminantAnalysis(n_components=2).fit(X, y)
Z = lda.transform(X) # 정준변량 점수
print("Explained variance ratio (LDA):", lda.explained_variance_ratio_)
공분산 동질성 위반이 의심되면 퍼뮤테이션 MANOVA(예: python pingouin.manova 또는 R car::Anova(type="III"), vegan::adonis)를 검토한다. 이상치가 많거나 Heavy-tail 분포라면 견고 공분산(Shrinkage, Minimum Covariance Determinant)을 적용한 뒤 MANOVA를 수행한다. 결측이 포함된 데이터는 다중대치 후 분석하고, 지표와 결론에 대치 불확실성을 반영한다.
결과 해석에서 놓치기 쉬운 선택
Wilks를 기본 보고에 사용하더라도 Pillai를 병행하면 강건성과 검정력 사이의 트레이드오프를 드러낼 수 있다. 사전 PCA는 탐색적 용도로 두고, 결론은 MANOVA와 정준분석 결과를 근거로 작성한다.
LDA를 분류 목적으로 사용할 때는 과적합을 막기 위한 교차검증이 필요하다. 불균형 설계나 소표본에서는 효과 크기와 신뢰구간 보고를 강화하고, 부트스트랩 p-값도 함께 제시한다.