다층 모형의 일반 형태 — Y = Xβ + Zu + ε

Maxwell Ch.15.1 Multilevel Model Introduction

Mixed-effects model 의 행렬 표현 \(\mathbf{Y} = \mathbf{X}\boldsymbol{\beta} + \mathbf{Z}\mathbf{u} + \boldsymbol{\varepsilon}\) 과 그 의미, 분산 구조 \(\mathbf{V} = \mathbf{Z}\mathbf{G}\mathbf{Z}^T + \mathbf{R}\) 의 분해, random intercept 와 random slope 모형의 행렬 형태, BLUP (Best Linear Unbiased Predictor) 까지 정리한다. ANOVA·회귀·panel data 의 모든 모형이 이 framework 의 special case.

Experimentation
DOE
저자

Kwangmin Kim

공개

2026년 05월 08일

1 일반 형태

정의: General Mixed-Effects Model

\[ \mathbf{Y} = \mathbf{X}\boldsymbol{\beta} + \mathbf{Z}\mathbf{u} + \boldsymbol{\varepsilon} \]

  • \(\mathbf{Y}\): \(n \times 1\) 응답 vector.
  • \(\mathbf{X}\): \(n \times p\) fixed design matrix.
  • \(\boldsymbol{\beta}\): \(p \times 1\) fixed effect 모수.
  • \(\mathbf{Z}\): \(n \times q\) random design matrix.
  • \(\mathbf{u} \sim N(\mathbf{0}, \mathbf{G})\): \(q \times 1\) random effect.
  • \(\boldsymbol{\varepsilon} \sim N(\mathbf{0}, \mathbf{R})\): \(n \times 1\) residual.
  • \(\mathbf{u}\)\(\boldsymbol{\varepsilon}\) 독립.

응답의 marginal 분포: \[ \mathbf{Y} \sim N(\mathbf{X}\boldsymbol{\beta},\ \mathbf{Z}\mathbf{G}\mathbf{Z}^T + \mathbf{R}) \]

2 \(\mathbf{V} = \mathbf{Z}\mathbf{G}\mathbf{Z}^T + \mathbf{R}\)

총 covariance matrix \(\mathbf{V}\) 의 분해:

  • \(\mathbf{Z}\mathbf{G}\mathbf{Z}^T\): random effect 가 만든 응답 사이의 상관 (예: 같은 cluster 의 측정).
  • \(\mathbf{R}\): residual covariance (보통 \(\sigma^2 \mathbf{I}\) 이지만 AR(1) 등 가능).

이 분해가 공분산 구조 모형화 의 핵심.

직관: G 와 R 의 역할 분리

\(\mathbf{G}\): random effect 의 분산. cluster 사이의 차이를 표현. \(\mathbf{R}\): residual covariance. 같은 unit 내의 잡음 구조.

예: 임상 longitudinal 데이터: - \(\mathbf{G}\): 환자 random intercept 분산 → 환자 간 baseline 차이. - \(\mathbf{R}\): 시점 간 residual covariance → AR(1) 자기상관.

두 component 가 결합되어 전체 covariance 결정.

3 Random Intercept 의 행렬 표현

\(n\) 명, 각 \(T\) 시점:

\[ Y_{ij} = \beta_0 + \beta_1 t_{ij} + u_{0i} + \varepsilon_{ij} \]

행렬:

\[ \mathbf{X} = \begin{pmatrix} 1 & t_{11} \\ 1 & t_{12} \\ \vdots & \vdots \\ 1 & t_{nT} \end{pmatrix}, \quad \boldsymbol{\beta} = \begin{pmatrix} \beta_0 \\ \beta_1 \end{pmatrix} \]

\(\mathbf{Z}\) 는 cluster 지시자: \[ \mathbf{Z}_{ij,k} = \mathbf{1}[i = k] \]

\(\mathbf{u} = (u_{01}, u_{02}, \ldots, u_{0n})^T \sim N(\mathbf{0}, \sigma^2_0 \mathbf{I})\).

\(\mathbf{R} = \sigma^2 \mathbf{I}\).

응답 covariance: \[ \text{Cov}(Y_{ij}, Y_{i'j'}) = \begin{cases} \sigma^2_0 + \sigma^2 & i = i', j = j' \\ \sigma^2_0 & i = i', j \ne j' \\ 0 & i \ne i' \end{cases} \]

→ Compound Symmetry 구조.

3.1 CS 와의 동치성

random intercept 만 있는 모형의 marginal covariance 는 CS 형태. 이는 within-subjects ANOVA 의 sphericity 가정과 동치.

4 Random Intercept + Slope

\[ Y_{ij} = \beta_0 + \beta_1 t_{ij} + u_{0i} + u_{1i} t_{ij} + \varepsilon_{ij} \]

\(\mathbf{Z}_i\) for subject \(i\): \[ \mathbf{Z}_i = \begin{pmatrix} 1 & t_{i1} \\ 1 & t_{i2} \\ \vdots & \vdots \\ 1 & t_{iT} \end{pmatrix} \]

\(\mathbf{u}_i = (u_{0i}, u_{1i})^T \sim N(\mathbf{0}, \mathbf{G})\),

\[ \mathbf{G} = \begin{pmatrix} \sigma^2_0 & \rho \sigma_0 \sigma_1 \\ \rho \sigma_0 \sigma_1 & \sigma^2_1 \end{pmatrix} \]

intercept 와 slope 의 상관 \(\rho\). 보통 음의 상관 (높은 시작점 = 낮은 변화율).

4.1 직관

각 피험자의 trajectory

random slope 모형은 각 피험자가 자기 trajectory 를 가짐:

피험자 1: 절편 = β_0 + u_01, slope = β_1 + u_11
피험자 2: 절편 = β_0 + u_02, slope = β_1 + u_12
...

평균 trajectory: \(\beta_0 + \beta_1 t\) (population average). 개인 trajectory: \(\hat\beta_0 + \hat u_{0i} + (\hat\beta_1 + \hat u_{1i}) t\).

이는 발달 곡선, 성장 곡선, 학습 곡선의 모형.

5 Best Linear Unbiased Predictor (BLUP)

Random effect \(\mathbf{u}\) 의 추정 (기술적으로 prediction):

\[ \hat{\mathbf{u}} = \mathbf{G}\mathbf{Z}^T \mathbf{V}^{-1} (\mathbf{Y} - \mathbf{X}\hat{\boldsymbol{\beta}}) \]

이를 통해 개인별 trajectory (\(\hat\beta_0 + \hat u_{0i} + (\hat\beta_1 + \hat u_{1i}) t\)) 추정 가능.

5.1 Shrinkage

직관: Shrinkage 추정

BLUP 은 ML 추정 (각 피험자 개별 회귀) 보다 모집단 평균 쪽으로 “shrink” 한 추정.

극단 trajectory 를 가진 피험자 (outlier) 는 평균에 더 가까이 추정 → 안정성 ↑.

특히 측정 시점이 적은 피험자에서 효과적. 적은 데이터 → 모집단 정보 활용.

이는 Bayesian shrinkage 의 frequentist 해석. random effect 를 prior 처럼 사용.

6 ANOVA 와의 관계

ANOVA 형태 Mixed Model 형태
Within-subjects ANOVA Random intercept
Split-plot Random intercept + group fixed
Nested 2-level Random intercept (level 2 = cluster)
Nested 3-level Random intercept at each level
Repeated measures with sphericity CS via random intercept
Repeated measures + GG UN covariance (R structure)

→ 모든 ANOVA 가 mixed model 의 특수 사례.

7 추정 절차

7.1 Step 1 — Likelihood

\[ \log L(\boldsymbol{\beta}, \boldsymbol{\theta}) = -\frac{1}{2}\log|\mathbf{V}| - \frac{1}{2}(\mathbf{Y} - \mathbf{X}\boldsymbol{\beta})^T \mathbf{V}^{-1} (\mathbf{Y} - \mathbf{X}\boldsymbol{\beta}) - \frac{n}{2}\log(2\pi) \]

\(\boldsymbol{\theta}\) = variance components (\(\mathbf{G}, \mathbf{R}\) 의 모수).

7.2 Step 2 — Variance components 추정

ML 또는 REML maximization.

7.3 Step 3 — Fixed effect 추정

GLS 추정량: \[ \hat{\boldsymbol{\beta}} = (\mathbf{X}^T \mathbf{V}^{-1} \mathbf{X})^{-1} \mathbf{X}^T \mathbf{V}^{-1} \mathbf{Y} \]

7.4 Step 4 — BLUP

random effect prediction.

8 Python 코드

import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import mixedlm

np.random.seed(2026)
n = 25
T = 5

records = []
for subj in range(n):
    u0 = np.random.normal(0, 6)
    u1 = np.random.normal(0, 1.2)
    for t in range(T):
        y = 50 + 3 * t + u0 + u1 * t + np.random.normal(0, 2)
        records.append({"subject": subj, "time": t, "Y": y})
data = pd.DataFrame(records)

# Random intercept only
md_int = mixedlm("Y ~ time", data=data, groups=data["subject"]).fit()
print("=== Random Intercept ===")
print(md_int.summary().tables[1])
print(f"sigma^2_0 (intercept var) = {md_int.cov_re.iloc[0,0]:.3f}")
print(f"sigma^2 (residual)        = {md_int.scale:.3f}")

# Random intercept + slope
md_slope = mixedlm("Y ~ time", data=data, groups=data["subject"],
                   re_formula="~time").fit()
print("\n=== Random Intercept + Slope ===")
print(md_slope.summary().tables[1])
print(f"G matrix:\n{md_slope.cov_re}")

# BLUP for each subject
print("\nFirst 5 subjects' BLUPs:")
for k in list(md_slope.random_effects.keys())[:5]:
    print(f"  Subject {k}: {md_slope.random_effects[k]}")

# 모형 비교 — AIC
print(f"\nAIC (intercept only): {md_int.aic:.1f}")
print(f"AIC (intercept + slope): {md_slope.aic:.1f}")

9 가정과 한계

  • Random effect 의 정규성.
  • 공분산 구조의 미명시: AIC/BIC 로 선택.
  • 수렴 문제: 작은 cluster 수.
  • 계산 비용: 큰 데이터에서 ML 추정이 느림.
  • MAR 가정: 결측 처리에서.

10 응용

분야 \(X\) (fixed) \(Z\) (random)
임상 longitudinal 처치, 시점 환자
교육 교수법 학교, 학급
농학 비료 농장, plot
IT longitudinal 변종 사용자
행동 자극 피험자

11 ML 매핑

매핑: ML hyperparameter sweep 의 mixed model

ML 의 다중 dataset × hyperparameter sweep:

Y_ij = accuracy of model j on dataset i
X: model architecture, lr, dropout (fixed)
Z: dataset (random — random sample of domains)

분석: \[ Y_{ij} = \mathbf{x}_{ij}^T \boldsymbol{\beta} + u_{0i} + \varepsilon_{ij} \]

dataset random intercept → cross-domain generalization 통계적 처리.

각 dataset 의 baseline accuracy 차이를 통제 후 hyperparameter 효과 검정.

12 본 시리즈

G-MAX15-0  Multilevel 개관
G-MAX15-1  Y = Xβ + Zu + ε  ← 현재 글
G-MAX15-2  ML vs REML
G-MAX15-3  Growth Curve + Covariance Structures
G-MAX15-4  Model Comparison + Time-varying Covariates

13 관련 주제

선행 지식

후속 주제

다른 카테고리 연결

14 더 읽을 거리

  • Henderson, C. R. (1975). “Best linear unbiased estimation and prediction under a selection model.” Biometrics 31(2): 423-447 — BLUP 원조.
  • Searle, S. R., Casella, G., McCulloch, C. E. (2006). “Variance Components.” Wiley.
  • Pinheiro, J. C., Bates, D. M. (2000). “Mixed-Effects Models in S and S-PLUS.” Springer.
  • Demidenko, E. (2013). “Mixed Models: Theory and Applications with R” (2nd ed). Wiley.
  • Verbeke, G., Molenberghs, G. (2000). “Linear Mixed Models for Longitudinal Data.” Springer.

Subscribe

Enjoy this blog? Get notified of new posts by email: