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를 계산한다. 선택한 검정 통계량으로 유의성, 신뢰구간, 효과 크기를 보고하고, 이후 정준변량이나 단변량 후속 검정으로 결과를 해석한다.

만족위반결측입력: Y 다변량, X 요인, n 표본가정 진단정규성·등분산·이상치·결측H, E SSCP 계산대응: Pillai·견고공분산·변환·퍼뮤테이션검정 통계량 계산Wilks Λ / Pillai / HL / Royp-값, 효과 크기 보고사후분석정준변량, LDA, 단변량 후속출력: 유의성, 정준축, 해석권고다중대치/EM/FIML

효과 크기는 부분 η²와 정준상관 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-값도 함께 제시한다.

MANOVA다변량 분산분석통계 검정차원 축소LDA