Summary
- ANOVA/OLS의 extended version
- OLS가 “모든 요인이 전집에서 고정된 상수(평균)”로 취급한다면,
LMM은 “일부 요인은 집단이나 피험자 간 변동을 반영하는 확률적 요인(확률 분포, random effect)”으로 취급
용어 설명
- 고정효과 (Fixed effect): 연구자가 관심 있는 요인의 효과. 모든 피험자에게 공통으로 적용되는 평균적 효과 (예: 교수법 차이, 조건 효과)
- 랜덤효과 (Random effect): 피험자나 자극 등 반복 단위마다 달라지는 효과. “확률 분포에서 뽑힌 표본”으로 간주. 개인차를 모델링
- Random intercept: 각 피험자(또는 항목)마다 기저 수준이 다름을 허용. 어떤 피험자는 전반적으로 높고, 어떤 피험자는 낮은 것을 반영
- Random slope: 각 피험자마다 조건의 효과 크기가 다름을 허용. 어떤 피험자는 조건 효과가 크고, 어떤 피험자는 작은 것을 반영
- REML (Restricted Maximum Likelihood): Random effects 구조를 비교할 때 사용하는 추정 방법. 고정효과의 불확실성을 고려하여 분산을 덜 편향되게 추정
- ML (Maximum Likelihood): Fixed effects를 비교할 때 사용하는 추정 방법
- 중첩 (Nested) vs 교차 (Crossed): 중첩 = 항목이 특정 집단에만 속함 (학생 ∈ 학교). 교차 = 모든 피험자가 모든 항목을 경험 (피험자 × 단어)
Implementation
import statsmodels.formula.api as smf model = smf.mixedlm( "RT ~ C(condition) * C(group)", # group = between-subject factor data=df, groups=df["subject"], re_formula="~C(condition)" # random intercept + random slope by condition ) result = model.fit() print(result.summary())
Expected Output
Mixed Linear Model Regression Results ==================================================== Model: MixedLM Dependent Variable: RT Group variable: subject No. Observations: 20 ---------------------------------------------------- Coef. Std.Err. z P>|z| Intercept 503.2 9.1 55.3 <0.001 C(condition)[T.B] -40.9 6.5 -6.3 <0.001 Group Var 870.4 Residual 104.3
====================================================
Random Effect
NOTE
“random effect”: 결국 반복되는 단위에 대응.
간단히 말해 데이터의 비독립성(dependence) 을 모델링.
- Within-subject factor (조건이 같은 피험자에게 반복됨)
→ 반드시 subject를 random effect로 둬야 함.- 조건별 분산이 모델링하고 싶을 떈,
→ random_slope 추가.
OLS vs Linear Mixed Effects Model
Summary
feature에 의한 effect를 fixed하게 볼 것이냐 아니냐의 차이
OLS:
- group(categorical feature에 의해 나뉘는)에 의한 효과를 하나로 봄.(fixed effect)
→ 관심 대상 전체 집단의 평균 effect()를 알고 싶다.- 그룹 내 개인차에 대한 고려 x
- 여기서 , 은 모든 i (예: 피험자), j (측정)에 대해 동일.
수식 변수 풀이
- : 피험자 i, 측정 j의 종속변수 값 (예: 반응 시간)
- : 절편 — x = 0일 때의 y 예측값 (전체 평균)
- : 기울기 — x가 1단위 증가할 때 y의 변화량. 모든 피험자에게 동일
- : 오차항 — 평균 0, 분산 인 정규분포에서 추출. 개인 차이를 모두 오차로 처리
LMM:
OLS에 더불어 그룹 내에서 개인차도 고려하고자 제안.
, : 전체 평균(고정효과)
, : 피험자 i의 편차(랜덤효과)
수식 변수 풀이
- : 피험자 i의 개인별 절편 — 전체 평균() + 개인 편차()
- : 피험자 i의 개인별 기울기 — 전체 평균 효과() + 개인 편차()
- : 랜덤효과 — 정규분포에서 추출된 것으로 가정. 추정 대상은 분포의 분산()
수식 변수 풀이
- : random intercept의 분산 — 피험자 간 기저 수준이 얼마나 다른지
- : random slope의 분산 — 피험자 간 조건 효과가 얼마나 다른지
- : intercept와 slope 간의 상관 — 기저 수준이 높은 피험자가 효과도 큰지/작은지
- 이 행렬(공분산 행렬)이 LMM에서 추정하는 핵심 파라미터
→ 각 피험자마다 고유한 intercept와 slope를 가짐.
→ 하지만 그 값들이 “전적으로 자유로운 상수”가 아니라,
“어떤 분포(보통 정규분포)에서 온 확률표본”으로 간주됨.
Parameters
NOTE
기본적인 regression formula를 아래와 같이 생각했을 때,
random intercept
Summary
- = participant i 의 random intercept
→ 참가자 당 즉, MixedLM에 group 파라미터로 주는 value 당 하나의 intercept 부여.
random slope
Summary
- = participant i 의 **X에 대한 random slope
- → 같은 X 값을 넣어도 서로 다른 참가자는 다른 효과(기울기)를 보임
variance component formula
Summary
- = 모음 j 의 random intercept
- = 단어 k 의 random intercept
역할
- 특정 categorical factor의 각 수준(level)마다 독립적인 random variance를 허용하는 구조.
- 하지만 이것들은 intercept처럼 작동하지 않음 (즉, 각 관측치에 additive shift를 주지 않음).
- 대신 group-level random intercept과는 독립적인, 추가적인 분산 성분을 부여하는 방식.
LMM vs RM-ANOVA 비교
Summary
반복측정 데이터 분석에서 RM-ANOVA 대신 LMM이 점점 더 선호되는 이유와 선택 기준.
| 기준 | RM-ANOVA | LMM |
|---|---|---|
| 구형성 가정 | 필요 (위반 시 G-G/H-F 보정) | 불필요 |
| 결측치 처리 | listwise deletion (케이스 전체 제거) | 자연스럽게 처리 (MCAR/MAR) |
| 불균형 설계 | 어려움 | 자연스럽게 처리 |
| 시간 연속 모델링 | 범주형만 (시점 1, 2, 3…) | 연속형 가능 (시간 자체를 변수로) |
| random effects 구조 | 고정적 (subject만) | 유연 (subject + item + …) |
| 가정 | 정규성, 등분산, 구형성 | 잔차 정규성, random effects 정규성 |
| 해석 용이성 | 직관적 (F, η²) | 계수 해석 필요 (β, t) |
| 소프트웨어 | SPSS 등 쉽게 | R(lme4), Python(statsmodels) |
언제 무엇을 쓸까?
- RM-ANOVA: 완전 균형 설계, 결측 없음, 구형성 충족, 간단한 보고 필요
- LMM: 결측치 있음, 불균형 설계, 구형성 위반, crossed random effects(by-subject + by-item) 필요
모형 선택: AIC / BIC
Summary
여러 LMM 후보 중 최적 모형을 선택할 때 정보 기준(information criteria)을 사용한다.
AIC (Akaike Information Criterion)
수식 변수 풀이
- : 최대우도 (Maximum likelihood) — 현재 모형이 데이터를 얼마나 잘 설명하는지. 클수록 좋음
- : 우도의 역수 변환 — 작을수록 모형이 데이터에 잘 맞음
- : 추정해야 하는 파라미터 수 — 복잡한 모형일수록 큼
- : 복잡성 벌칙 — 파라미터가 많을수록 AIC 증가 (과적합 방지)
- : 최대우도 (maximum likelihood)
- : 추정 파라미터 수
- 낮을수록 좋음
- 예측력 중시, 약간 복잡한 모형 허용
BIC (Bayesian Information Criterion)
수식 변수 풀이
- : BIC의 복잡성 벌칙 — 표본 크기 이 클수록 벌칙이 커짐 → AIC보다 간결한 모형 선호
- AIC와의 차이: 이면 이므로 BIC가 항상 더 강하게 벌칙 부과
- : 관측치 수
- AIC보다 간결한 모형 선호 (penalty가 더 큼)
- 대표본에서 “진짜 모형” 선택에 일치적(consistent)
모형 비교 전략
- Random effects 비교: REML (Restricted Maximum Likelihood) 사용
- Fixed effects 비교: ML (Maximum Likelihood) 사용
- Likelihood ratio test: nested model 비교
수식 변수 풀이
- : 축소 모형의 우도 (더 간단한 모형)
- : 전체 모형의 우도 (더 복잡한 모형)
- : 두 모형의 파라미터 수 차이 — 카이제곱 분포의 자유도
- 직관: “복잡한 모형이 단순한 모형보다 유의하게 데이터를 더 잘 설명하는가?”
모형 비교 예시
모형 Random effects AIC BIC M1 (1|subject) 1234 1250 M2 (1 + condition|subject) 1220 1245 M3 (1 + condition|subject) + (1|item) 1205 1238 → M3이 AIC, BIC 모두 최소 → 최적 모형
Implementation — 모형 비교
import statsmodels.formula.api as smf # 모형 후보 정의 m1 = smf.mixedlm("RT ~ C(condition)", data=df, groups=df["subject"]).fit() m2 = smf.mixedlm("RT ~ C(condition)", data=df, groups=df["subject"], re_formula="~C(condition)").fit() # AIC / BIC 비교 print(f"M1: AIC={m1.aic:.1f}, BIC={m1.bic:.1f}") print(f"M2: AIC={m2.aic:.1f}, BIC={m2.bic:.1f}") # Likelihood ratio test (R의 anova()에 대응) from scipy import stats lr_stat = -2 * (m1.llf - m2.llf) df_diff = m2.df_modelwc - m1.df_modelwc p_val = stats.chi2.sf(lr_stat, df_diff) print(f"LR χ²={lr_stat:.2f}, df={df_diff}, p={p_val:.4f}")
Random Effects 구조 결정 가이드
| 상황 | random effects | 수식 (R 문법) |
|---|---|---|
| 피험자 반복측정 | by-subject intercept | (1|subject) |
| 조건별 개인차 | + by-subject slope | (1 + cond|subject) |
| 자극(item) 반복 | + by-item intercept | + (1|item) |
| 최대 구조 | crossed random effects | (1 + cond|subject) + (1 + group|item) |
Barr et al. (2013) 권장
“Keep it maximal”: 설계가 허용하는 최대한의 random effects 구조로 시작.
수렴 실패 시 점진적으로 축소 (random correlation 제거 → random slope 제거).
관련 문서
- ANOVA — LMM의 기초가 되는 고정효과 모형
- ANCOVA — 공변량 통제 (LMM에서도 fixed effect로 포함 가능)
- 통계 검정법 개요 — 검정법 선택 플로우차트
- Eta-squared — RM-ANOVA의 effect size