반복측정 ANOVA와 구형성 검정: within-subject 설계 분석

반복측정 ANOVA에서 within-subject 설계를 해석하고, Mauchly 검정과 GG·HF 보정 및 혼합모형 전환 기준을 정리한다.

2026-08-14 · 최초 발행 2024-04-29

같은 사람을 반복 측정했을 때 달라지는 분석 전제

반복측정 ANOVA는 동일 피험자에게 여러 조건이나 시간점에서 측정을 수행하는 within-subject 디자인의 표준 기법이다. 피험자 간 이질성을 제거해 오차를 줄이고 검정력을 높일 수 있지만, 조건 간 분산을 비교하려면 오차항의 공분산 구조를 함께 다뤄야 한다.

이 분석은 각 피험자 안에서 조건 평균이 다른지를 F-검정으로 평가한다. 핵심 가정은 구형성(sphericity)이다. 모든 조건 쌍의 차이 점수 분산이 같다고 보는 가정이며, 이 조건이 깨지면 F 통계량의 자유도가 왜곡되어 제1종 오류(Type I error)가 증가할 수 있다.

구형성은 Mauchly’s test로 확인한다. 위반이 확인되면 epsilon(ε) 추정치를 바탕으로 자유도를 보정하며, 대표적인 방법은 Greenhouse–Geisser(GG), Huynh–Feldt(HF), Lower-bound(LB)다.

설계 단계에서 확인할 데이터 구조

단일 within 요인(k수준)으로 설계할 수도 있고, 시간 × 과제처럼 여러 요인과 교호작용을 포함할 수도 있다. 데이터는 피험자 식별자(ID), within 요인 수준(level), 종속변수(DV)를 갖는 long 포맷이 적합하다.

분석 전에 잔차의 정규성, 이상치, 결측 패턴을 확인한다. 표본 크기가 충분하면 중심극한정리 효과를 기대할 수 있다. 구형성은 k ≥ 3일 때 점검 대상이며, k=2인 경우에는 자동으로 충족된다.

반복측정 ANOVA는 결측에 취약하다. 결측이 있으면 전통적 ANOVA에서 목록삭제 위험이 생기므로, 결측이 많으면 혼합모형을 검토해야 한다.

구형성 위반이 자유도 보정으로 이어지는 방식

Mauchly’s test에서 p < .05이면 구형성 위반으로 판단한다. ε는 0 < ε ≤ 1 범위의 추정치이며, 값이 작을수록 위반 정도가 크다. GG는 보수적인 보정이고 HF는 상대적으로 덜 보수적이다.

보정은 F의 자유도(df1, df2)에 ε를 곱한 뒤 p-값을 다시 계산하는 방식으로 적용된다. 결과를 보고할 때는 GG, HF, LB 결과를 함께 제시할 수 있다.

p = .05p < .05ε 매우 작음, 결측/불균형데이터 준비: long 포맷subject, condition, dv기초 점검이상치/정규성/결측Mauchly's test로 구형성 검정구형성 충족전통 ANOVA 해석구형성 위반ε 추정(GG/HF)자유도 보정 적용F,p 재계산사후분석 효과크기 보고LMM로 전환무선효과(절편/기울기)수렴/잔차 점검결과 보고보정 방법·ε·해석 명시

MANOVA와 LMM을 검토해야 하는 조건

MANOVA 접근은 공분산 구조를 가정하지 않는 대안이다. 다만 표본 크기가 적정해야 하며 정상성과 등분산성에 민감하다.

선형혼합모형(LMM)은 결측과 비구형성을 자연스럽게 반영할 수 있다. 무선절편과 무선기울기를 통해 피험자 간 이질성을 모델링한다. 구형성 위반이 심하거나 결측이 많고, 설계 불균형이 큰 경우에는 LMM으로 전환한다.

효과크기는 부분 에타제곱(partial η²) 또는 generalized η²로 보고한다. 유의한 주효과나 교호작용 뒤에는 쌍대 비교를 수행하고, Bonferroni, Holm, Hochberg 방식으로 p.adjust 보정을 적용한다.

R로 반복측정 ANOVA 실행하기

R ≥ 4.2, rstatix ≥ 0.7.2, tidyverse ≥ 2.0 환경을 전제로 한다. 필요한 패키지는 install.packages(c("tidyverse","rstatix"))로 설치한다.

# R >= 4.2
set.seed(42)
library(tidyverse)
library(rstatix)

# 모의 데이터 생성: 30명, 3조건, 피험자 내 상관 ~ 0.6
n_subj <- 30
conds <- c("A","B","C")
Sigma <- matrix(0.6, nrow=3, ncol=3); diag(Sigma) <- 1
L <- chol(Sigma)
Z <- matrix(rnorm(n_subj*3), ncol=3) %*% L
mu <- c(0, 0.3, 0.8) # 조건 평균
Y <- sweep(Z, 2, mu, "+")
dat <- as_tibble(Y) |> set_names(conds) |> mutate(subject = factor(1:n_subj)) |>
  pivot_longer(cols = all_of(conds), names_to = "condition", values_to = "score") |>
  mutate(condition = factor(condition, levels = conds))

# 반복측정 ANOVA
anova_rm <- anova_test(data = dat, dv = score, wid = subject, within = condition)
anova_rm

# 구형성 검정
mauchly_test(anova_rm)

# 보정 적용(GG/HF) 결과표
get_anova_table(anova_rm, correction = "GG")
get_anova_table(anova_rm, correction = "HF")

# 사후분석(쌍대비교, 대응표본, 보정)
pairwise_t_test(data = dat, score ~ condition, paired = TRUE, p.adjust.method = "bonferroni")

Mauchly p < .05이면 get_anova_table에서 GG 또는 HF 보정 p-값을 기준으로 해석한다. ε_GG ≤ 0.75에서는 GG를 권장하고, ε_GG > 0.75이면 HF도 고려할 수 있다. 사후분석에는 대응 표본 t-검정과 다중비교 보정을 사용한다.

보정 방법을 선택할 때 보는 기준

방법 적용 조건 Type I 오류 통제 검정력 권장 상황 해석 포인트
Greenhouse–Geisser(GG) 일반적 위반 강함(보수적) 낮음~중간 ε 작을 때(≤ 0.75), 표본 제한 과소검정 위험, 안정적 오류 통제
Huynh–Feldt(HF) 완만한 위반 중간 중간~높음 ε 비교적 큼(> 0.75) 과대검정 위험 감소, 상황 의존
Lower-bound(LB) 최악 가정 매우 강함 매우 낮음 위반 극심, 보수 보고용 상한선 제시용, 주해 필수
MANOVA 접근 공분산 무가정 적절 자료 의존 표본 크기 충분, 균형 디자인 다변량 통계량(예: Pillai) 보고
LMM(혼합모형) 유연한 공분산 적절 높음(모형 적합 시) 결측/불균형/복잡 설계 무선효과·분산구조 명시 필수

반복 측정 자료에서의 적용 장면

제품 사용성 테스트에서는 동일 참가자의 과업 수행 시간을 UI 버전 A/B/C 조건에서 비교할 수 있다. 구형성 위반이 있으면 GG 보정으로 UI 간 시간 차이를 검정하고 사후분석을 수행한다.

교육 개입 평가는 동일 학습자의 사전·중간·사후 점수를 비교하는 형태다. 점수 상관이 높다면 반복측정 설계로 표본 수를 줄일 수 있으며, 구형성 점검이 필요하다.

생체신호 모니터링에서는 동일 피험자의 시간대별 HRV를 비교한다. 결측이 다수 발생하면 LMM으로 전환해 견고한 추정을 시도한다. 제조 공정 품질에서는 동일 장비에서 반복 측정한 표면 거칠기를 3 세팅으로 비교하고, 장비별 무선효과를 포함한 LMM으로 구형성 가정을 완화할 수 있다.

반복측정 설계가 제공하는 분석상 이점

피험자 내 상관 ρ를 가정하면 필요한 표본 규모의 근사 감소율은 ≈ (1−ρ)다. 예를 들어 ρ=0.6이면 between 대비 약 40% 표본 절감 효과가 있다.

구형성 위반 환경에서도 GG와 HF 보정을 적용하면 Type I 오류를 유지할 수 있다. 보정 방법, ε, 효과크기, 사후분석 절차를 일관된 형식으로 보고하면 결과 해석의 재현 가능성도 높아진다.

반복측정 ANOVA구형성통계 분석혼합모형효과크기