성장 곡선과 공분산 구조 — CS, AR(1), Unstructured

Maxwell Ch.15.3 Growth Curve · Covariance Structures

Growth curve modeling (random slope) 과 multilevel model 에서 사용되는 공분산 구조 (CS, AR(1), Toeplitz, Unstructured) 의 정의·선택 기준·AIC/BIC 기반 비교를 정리한다. intercept-slope 상관, 비선형 trajectory, 시변 공변량 결합까지 다룬다.

Experimentation
DOE
저자

Kwangmin Kim

공개

2026년 05월 08일

1 Growth Curve Modeling

정의: Growth Curve Model

각 피험자가 자기 개인적 시간 trajectory 를 가지는 random intercept + slope 모형.

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

\[ \begin{pmatrix} u_{0i} \\ u_{1i} \end{pmatrix} \sim N\left(\mathbf{0}, \mathbf{G}\right), \quad \mathbf{G} = \begin{pmatrix} \sigma^2_0 & \rho \sigma_0 \sigma_1 \\ \rho \sigma_0 \sigma_1 & \sigma^2_1 \end{pmatrix} \]

각 피험자의 slope 가 다르다 — “어떤 사람은 빠르게 변하고, 어떤 사람은 느리다”.

2 Random Slope 의 의미

ANOVA 의 within-subjects 와의 차이: ANOVA 는 모든 피험자가 같은 시간 효과를 가진다고 가정 (random intercept 만). Growth curve 는 시간 효과의 개인 차이를 명시.

모형 random 시간 효과
Repeated measures ANOVA intercept 모든 사람 같음
Random intercept intercept 모든 사람 같음
Random slope intercept + slope 사람마다 다름
직관: Random Slope 의 가치

발달 연구: 어린이마다 학습 속도 다름. 일부는 빠르게 학습, 일부는 천천히.

random slope 가 이 개인차를 통계적으로 잡는다: - \(\sigma^2_1 > 0\): 학습 속도의 개인차 존재. - \(\beta_1\): 평균 학습 속도. - \(\hat u_{1i}\): 피험자 \(i\) 의 평균 대비 차이 (BLUP).

random slope 없는 모형 사용 시: - 잘못된 가정 (모든 사람 같은 속도). - 실제 분산이 더 큼 → 검정력 부정확.

3 Intercept-Slope 상관

\(\rho\): 시작점이 높은 사람일수록 변화율이 어떤가?

  • \(\rho < 0\): 높은 시작점 = 낮은 변화 (회귀 평균 효과). 일반적.
  • \(\rho > 0\): 높은 시작점 = 높은 변화 (“rich get richer”).
  • \(\rho = 0\): 무관.

3.1 사례 — 학습 곡선

처음 점수가 높은 학생이 나중에 더 빠르게 향상? 또는 ceiling 효과로 변화 작음?

\(\rho\) 가 그 답을 정량화.

4 공분산 구조 비교

각 구조에 따라 within-subject 응답의 공분산:

4.1 Compound Symmetry (CS)

\[ \Sigma = \sigma^2 \begin{pmatrix} 1 & \rho & \rho & \rho \\ \rho & 1 & \rho & \rho \\ \rho & \rho & 1 & \rho \\ \rho & \rho & \rho & 1 \end{pmatrix} \]

모든 시점 분산 같음, 모든 시점 쌍 공분산 같음. Random intercept only model 과 동치.

모수 2 개. 가장 단순.

4.2 First-Order Autoregressive (AR(1))

\[ \Sigma_{ij} = \sigma^2 \rho^{|t_i - t_j|} \]

거리에 따라 공분산 감소. 시계열 데이터에 자연스러움.

모수 2 개.

4.3 Toeplitz

\[ \Sigma_{ij} = \sigma_{|i-j|} \]

거리별 다른 공분산. AR(1) 의 일반화.

모수 = \(T\) 개 (T 시점).

4.4 Unstructured (UN)

자유 — 모든 분산·공분산 다름.

모수 = \(T(T+1)/2\). 가장 자유. 가장 많은 데이터 요구.

직관: 단순 → 복잡으로 진행

CS 가 가장 단순한 가정 (모든 시점 동등). 데이터가 시계열이면 AR(1). 분산이 시점마다 다르면 (initial 측정의 분산이 큰 경우) UN. AIC/BIC 로 비교.

권장 절차: CS → AR(1) → UN. AIC 가 줄어들 때까지 복잡도 증가. 주의: 작은 표본에서는 복잡한 구조 (UN) 추정이 불안정.

5 모형 비교 절차

Step 1: Null 모형 (random intercept only) fit (REML).
  AIC, BIC 기록.

Step 2: Random slope 추가 fit.
  AIC 비교. LRT 도 가능 (boundary mixture).

Step 3: Residual covariance 구조 변경.
  CS → AR(1) → Toeplitz → UN.
  각 모형 AIC, BIC 비교.

Step 4: 최적 구조 선택.
  AIC 또는 BIC 가 가장 작은 모형.
  단순 모형 권장 (Occam's razor).

Step 5: 모형 진단.
  잔차 plot, Q-Q plot.

6 가설 데이터 — Growth Curve

\(n = 30\) 환자, \(T = 6\) 시점. SBP 측정.

모형 AIC BIC
Random intercept (CS) 1620 1635
Random int + slope (block diag) 1605 1625
Random int + slope + AR(1) residual 1585 1612
Random int + slope + UN residual 1590 1640

→ AR(1) 잔차 + random slope 가 가장 좋음. 시점 간 자기상관이 있고 개인별 trajectory 다름.

7 비선형 Trajectory

선형 trajectory 가 부적합하면 다항식 또는 nonlinear:

7.1 Polynomial

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

quadratic random slope 가능. 자유도 부담 ↑.

7.2 Splines

natural cubic spline 또는 B-spline 으로 비선형 trajectory.

R splines::ns(), Python patsy.bs().

7.3 Logistic Growth

\[ Y_{ij} = \frac{a_i}{1 + \exp(-(b_i (t - c_i)))} + \varepsilon_{ij} \]

asymptote \(a_i\), 변화율 \(b_i\), 중간점 \(c_i\) 가 모두 individual.

R nlme::nlme, Python scipy.optimize + bootstrap CI.

8 Python 코드

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

np.random.seed(2026)
n = 30
T = 6

records = []
for subj in range(n):
    u0 = np.random.normal(0, 8)
    u1 = np.random.normal(0, 1.5)
    eps = np.zeros(T)
    eps[0] = np.random.normal(0, 3)
    for t in range(1, T):
        eps[t] = 0.5 * eps[t-1] + np.random.normal(0, 3 * np.sqrt(1-0.25))
    for t in range(T):
        y = 140 + 0.5 * t + u0 + u1 * t + eps[t]
        records.append({"subject": subj, "time": t, "Y": y})
data = pd.DataFrame(records)

# Model 1: Random intercept (CS)
md1 = mixedlm("Y ~ time", data=data, groups=data["subject"]).fit()
print(f"Random Intercept: AIC={md1.aic:.1f}, BIC={md1.bic:.1f}")

# Model 2: Random intercept + slope
md2 = mixedlm("Y ~ time", data=data, groups=data["subject"],
              re_formula="~time").fit()
print(f"Random Int+Slope: AIC={md2.aic:.1f}, BIC={md2.bic:.1f}")

print(f"\nG matrix (intercept-slope correlation):")
print(md2.cov_re)
print(f"Correlation: {md2.cov_re.iloc[0,1] / np.sqrt(md2.cov_re.iloc[0,0] * md2.cov_re.iloc[1,1]):.3f}")

9 가정과 한계

  • 각 구조의 모수 수: UN 은 \(T(T+1)/2\) — 작은 \(n\) 에서 부족.
  • 수렴 문제: 복잡한 random + UN.
  • AIC vs BIC: BIC 가 보수적 (더 단순 모형 선호).
  • 음의 분산 추정: 수치적 이상. random slope 분산이 매우 작은 경우.
  • 선형 trajectory 가정: 비선형이면 polynomial 또는 splines.

10 응용

분야 trajectory
발달 심리 어린이의 인지 발달
임상 약 반응의 시간 곡선
운동학 학습 곡선 (skill acquisition)
IT longitudinal 사용자 retention 변화
농학 식물 성장 곡선

11 ML 매핑

매핑: ML 의 learning curve

ML 모델의 학습 곡선: - \(Y\): epoch 별 validation accuracy. - \(t\): epoch (시점). - Subject: training run (각 run 마다 random init).

Growth curve model: - random intercept: run 마다 다른 baseline accuracy. - random slope: run 마다 다른 학습 속도.

Logistic growth (sigmoid): \[ \text{accuracy}(t) = \frac{a_i}{1 + \exp(-(b_i (t - c_i)))} \]

각 run 의 asymptote \(a_i\), 변화율 \(b_i\), 중간점 \(c_i\) — 모두 individual.

이는 ML 의 hyperparameter sweep 의 learning curve 분석의 통계적 형식.

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 더 읽을 거리

  • Singer, J. D., Willett, J. B. (2003). “Applied Longitudinal Data Analysis: Modeling Change and Event Occurrence.” Oxford University Press — growth curve 표준.
  • Pinheiro, J. C., Bates, D. M. (2000). “Mixed-Effects Models in S and S-PLUS.” Springer.
  • Hedeker, D., Gibbons, R. D. (2006). “Longitudinal Data Analysis.” Wiley.
  • Bollen, K. A., Curran, P. J. (2006). “Latent Curve Models: A Structural Equation Perspective.” Wiley.
  • Davidian, M., Giltinan, D. M. (1995). “Nonlinear Models for Repeated Measurement Data.” Chapman & Hall.

Subscribe

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