중첩 설계와 분산 성분 — Multilevel 의 시작

Maxwell Ch.10.3 Nested Design · Variance Components

요인 \(B\) 의 levels 가 요인 \(A\) 의 각 level 마다 다르게 정의되는 nested design 의 ANOVA 모형, EMS, 분산 성분 추정 절차, ICC 의 다층 정의, 깊은 nesting (3+ 단계) 으로의 확장을 정리한다. multilevel model (G-MAX15) 의 직접적 ANOVA 표현.

Experimentation
DOE
저자

Kwangmin Kim

공개

2026년 05월 08일

1 정의

정의: Nested Design

요인 \(B\) 의 levels 가 요인 \(A\) 의 각 level 마다 다르게 정의되는 설계. 즉 \(B\)\(A\) 안에 nested.

\[ Y_{ijk} = \mu + \alpha_j + \beta_{k(j)} + \varepsilon_{ijk} \]

  • \(j = 1, \ldots, a\): \(A\) 의 levels (보통 fixed 또는 random).
  • \(k(j) = 1, \ldots, b\): \(A = j\) 안의 \(B\) levels (보통 random).
  • \(i = 1, \ldots, n\): cell 내 관측.
  • \(\beta_{k(j)} \sim N(0, \sigma^2_{B(A)})\).

Cross-classified 와의 차이: \(B\) 의 같은 label 이 다른 \(A\) levels 에서 같은 모집단 단위가 아니다.

2 Cross-Classified vs Nested

2.1 Cross-Classified (예: 학생 × 과목)

  • 학생 1 이 수학·과학·영어 모두 수강.
  • 같은 학생 1 이 모든 과목에 등장 (cross-classified).
  • 모형: \(Y = \mu + \alpha_{\text{과목}} + \beta_{\text{학생}} + (\alpha\beta) + \varepsilon\) (twoway 일반).

2.2 Nested (예: 학급 within 학교)

  • 학교 1 의 학급 1, 2, 3.
  • 학교 2 의 학급 1, 2, 3 (다른 학급, 같은 label 이지만 같은 entity 아님).
  • 학교 1 의 학급 1 ≠ 학교 2 의 학급 1.
  • 모형: \(Y = \mu + \alpha_{\text{학교}} + \beta_{\text{학급(학교)}} + \varepsilon\).
직관: nested 는 “안에 들어 있다”

학급은 학교 안에서만 존재. 학교를 떠나면 같은 학급이 다른 학교에 다시 등장하지 않는다. 이것이 nesting.

Cross-classified 는 한 단위 (학생) 가 여러 분류 (과목) 를 동시에 가진다.

A/B test 의 사용자 × 처치는 cross-classified (각 사용자가 모든 처치를 받지는 않지만, 같은 사용자가 다른 처치 셀에 들어갈 가능성이 있는 design). 사용자 within 그룹 (예: 사용자 1, 2, 3 이 그룹 1; 사용자 4, 5, 6 이 그룹 2) 은 nested.

이 구분이 중요한 이유는 통계 모형이 다르기 때문. nested 는 hierarchical structure 함수, cross-classified 는 양방향 random effects.

2.3 데이터 자체에 의한 식별

데이터에서 nested 인지 cross-classified 인지 확인:

# nested: 같은 B label 이 한 A level 에만 등장
# cross-classified: 같은 B label 이 여러 A level 에 등장

# 예: 학교 (A) × 학급 (B)
# B label 이 "1A", "2B" 형식 → 학교 prefix 포함 → nested
# B label 이 단순 "수학", "과학" → 모든 학생이 같은 과목 → cross-classified

3 EMS — \(A\) fixed, \(B(A)\) random

\(a\) 개 fixed levels, 각 \(A\) 안에 \(b\) 개 random levels, 각 cell \(n\) 관측.

Source \(df\) EMS
\(A\) (fixed) \(a-1\) \(\sigma^2 + n \sigma^2_{B(A)} + nb \theta_\alpha\)
\(B(A)\) (random) \(a(b-1)\) \(\sigma^2 + n \sigma^2_{B(A)}\)
Error \(ab(n-1)\) \(\sigma^2\)

검정 분모: - \(A\): \(MS_{B(A)}\) - \(B(A)\): \(MS_E\)

4 EMS — 둘 다 random

\(A, B\) 모두 random effect:

Source EMS
\(A\) \(\sigma^2 + n \sigma^2_{B(A)} + nb \sigma^2_A\)
\(B(A)\) \(\sigma^2 + n \sigma^2_{B(A)}\)
Error \(\sigma^2\)

검정 분모는 동일.

5 분산 성분 추정

EMS 식에서 역으로 풀면:

\[ \hat\sigma^2 = MS_E \] \[ \hat\sigma^2_{B(A)} = (MS_{B(A)} - MS_E) / n \] \[ \hat\sigma^2_A = (MS_A - MS_{B(A)}) / (nb) \quad (A \text{ random 인 경우}) \]

(음수가 나오면 0 으로 set — variance component 의 음수 추정은 작은 표본의 통계적 이상이지 실제 음의 분산이 아님.)

6 ICC (Intraclass Correlation)

같은 \(B(A)\) level (예: 같은 학급) 의 두 관측의 상관:

\[ \text{ICC}_{\text{학급}} = \frac{\sigma^2_{B(A)}}{\sigma^2_A + \sigma^2_{B(A)} + \sigma^2} \]

(cluster level 의 ICC. 같은 학교 내 두 학생이라면 분자가 \(\sigma^2_A + \sigma^2_{B(A)}\) 에 가까워질 수도 있음 — 정의가 multiple.)

6.1 Multilevel ICC 의 두 정의

3-level nested:

ICC 정의 의미
ICC at school \(\sigma^2_3 / (\sigma^2_3 + \sigma^2_2 + \sigma^2_1)\) 같은 학교 두 학생
ICC at class \((\sigma^2_3 + \sigma^2_2) / (\sigma^2_3 + \sigma^2_2 + \sigma^2_1)\) 같은 학급 두 학생

6.2 ICC 의 실무 의미

직관: ICC 가 큰 데이터의 의미

ICC 가 0.2 라는 것은 같은 학급 내 두 학생의 점수 분산이 학생 간 전체 분산의 20% 라는 것. 단일 OLS 는 데이터를 독립 가정하므로 표준오차가 잘못 계산된다 (실제보다 작게).

이는 design effect 로 표현되는 비효율성이고, 다단계 데이터에서 multilevel model 또는 cluster-robust SE 를 써야 하는 이유이다.

6.3 Design Effect

\[ \text{DEFF} = 1 + (m - 1) \cdot \text{ICC} \]

\(m\) = 평균 cluster 크기.

ICC = 0.1, \(m = 30\) → DEFF \(= 1 + 29 \times 0.1 = 3.9\). OLS 표준오차가 실제보다 \(\sqrt{3.9} \approx 2\) 배 작게 나옴.

\(p\) 값도 4 배 작음 (가짜 양성 4 배 증가).

7 가설 데이터 — 학교 내 학급 내 학생

\(a = 3\) 학교 (random), \(b = 4\) 학급/학교 (random), \(n = 5\) 학생/학급.

Source \(SS\) \(df\) \(MS\) \(F\)
학교 (\(A\)) 1200 2 600 \(600/100 = 6.0\) (\(MS_{B(A)}\))
학급 (학교) 900 9 100 \(100/20 = 5.0\) (\(MS_E\))
Error (학생) 960 48 20

분산 성분: - \(\hat\sigma^2 = 20\) - \(\hat\sigma^2_{B(A)} = (100-20)/5 = 16\) - \(\hat\sigma^2_A = (600-100)/(5 \times 4) = 25\)

ICC: - 학교 level: \(25 / (25 + 16 + 20) = 0.41\) - 학급 level: \((25 + 16) / (25 + 16 + 20) = 0.67\)

해석: 학교 간 차이가 큼 (전체 분산의 41%). 학급 간 차이도 강 (학교 + 학급 = 67%). 학생 간 차이는 33%.

이런 데이터는 multilevel model 이 필수 — 단일 OLS 는 표준오차 부정확.

8 깊은 nesting — 3+ 단계

학교 → 학급 → 학생 → 시점:

\[ Y_{ijkl} = \mu + \alpha_{\text{school}, l} + \beta_{\text{class}(l), k} + \gamma_{\text{student}(lk), j} + \varepsilon_{ijkl} \]

각 단계마다 분산 성분, ICC 정의 가능.

Level 분산 성분 ICC (cumulative)
Level 4 (학교) \(\sigma^2_4\) \(\sigma^2_4 / \text{total}\)
Level 3 (학급) \(\sigma^2_3\) \((\sigma^2_4 + \sigma^2_3) / \text{total}\)
Level 2 (학생) \(\sigma^2_2\) \((\sigma^2_4 + \sigma^2_3 + \sigma^2_2) / \text{total}\)
Level 1 (시점, residual) \(\sigma^2_1\)

3+ 단계 nested 는 multilevel model 의 직접 표현.

9 ANOVA Approach 의 한계

균등 데이터에서 ANOVA EMS 가 정확. 그러나:

  1. 비균등 데이터: 학교마다 다른 학급 수, 학급마다 다른 학생 수. EMS 식 어긋남.
  2. 결측 처리: 한 학생 결측이라도 단계별 균등 깨짐.
  3. 공변량 통합 어려움: 각 level 마다 다른 covariate 추가가 ad hoc.
  4. Level-별 예측 변수: ANOVA 분해에 직접 통합 안 됨.

→ 일반 권장: ML/REML approach (G-MAX16-2).

10 Python 코드 — 3-Level Nested

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

# 학교 within 학급 within 학생 데이터
np.random.seed(2026)
n_schools = 3
n_classes = 4
n_students = 5

records = []
school_eff = np.random.normal(0, 5, n_schools)
class_eff = {(s, c): np.random.normal(0, 4) for s in range(n_schools) for c in range(n_classes)}

for s in range(n_schools):
    for c in range(n_classes):
        for st in range(n_students):
            y = 100 + school_eff[s] + class_eff[(s, c)] + np.random.normal(0, np.sqrt(20))
            records.append({"school": s, "class": f"{s}_{c}", "student": st, "Y": y})

data = pd.DataFrame(records)

# Method 1: aov-style with explicit nesting
nested_model = ols("Y ~ C(school) + C(school):C(class)", data=data).fit()
print("=== Nested ANOVA ===")
print(sm.stats.anova_lm(nested_model, typ=2).round(3))

# Method 2: mixed model with REML
md = mixedlm("Y ~ 1", data=data, groups=data["school"],
             vc_formula={"class": "0 + C(class)"}).fit()
print("\n=== Mixed Model (REML) ===")
print(md.summary())

# 분산 성분 추정 (ANOVA-based)
anova = sm.stats.anova_lm(nested_model, typ=2)
ms_school = anova.loc["C(school)", "mean_sq"]
ms_class = anova.loc["C(school):C(class)", "mean_sq"]
ms_e = anova.loc["Residual", "mean_sq"]

n_per_class = n_students
n_per_school = n_classes * n_students

sigma_e = ms_e
sigma_class = (ms_class - ms_e) / n_per_class
sigma_school = (ms_school - ms_class) / n_per_school

print(f"\n=== Variance Components (ANOVA-based) ===")
print(f"  σ²_e (학생)   = {sigma_e:.3f}")
print(f"  σ²_class      = {sigma_class:.3f}")
print(f"  σ²_school     = {sigma_school:.3f}")

# ICC 계산
total = sigma_school + sigma_class + sigma_e
print(f"\n=== ICC ===")
print(f"  ICC at school = {sigma_school / total:.3f}")
print(f"  ICC at class  = {(sigma_school + sigma_class) / total:.3f}")

11 Multilevel Model 으로의 자연스러운 확장

직관: ANOVA Nested → Multilevel 의 통일

ANOVA-based 추정의 한계: - 비균등 데이터에 부정확. - 결측 어려움. - 공변량 ad hoc.

Multilevel model (mixed effects) 가 ANOVA nested 의 일반화 + 모든 한계 해결:

\[ Y_{ijk} = \mathbf{x}_{ijk}^T \boldsymbol{\beta} + u_{0,k(j)} + u_{0,j} + \varepsilon_{ijk} \]

각 level 마다 random intercept (또는 slope) 명시적 모형.

R lme4, Python statsmodels.mixedlm 자동 처리.

ANOVA nested 는 multilevel 의 special case (균등 + 결측 없음 + 단순 모형). 실무 표준은 multilevel.

12 가정과 한계

  • Random effect 의 정규성·균등: 위반 시 robust 또는 bootstrap.
  • Nesting 분류의 정확성: cross-classified 와 혼동하지 않을 것.
  • 분산 성분 음수 추정: ANOVA-based 의 단점. REML 권장.
  • Multilevel 확장: 3+ 단계는 mixed model 자동 처리 (lme4, mixedlm).
  • Cluster 수의 충분: random effect robust 추정에 \(\ge 20\sim30\) cluster.

13 응용

분야 Level 3 Level 2 Level 1
교육 학교 학급 학생
임상 다센터 센터 환자 시점
메타분석 메타분석 연구 환자
농학 다농장 지역 농장 plot
IT longitudinal 세그먼트 사용자 시점

각 level 마다 적절한 covariate 추가 가능 (multilevel 의 강점).

14 MAX Ch.10 시리즈 정리

G-MAX10-0  Random/Nested 개관
G-MAX10-1  Fixed vs Random + EMS
G-MAX10-2  Two-Way Mixed + Error Term Selection
G-MAX10-3  Nested Design + Variance Components  ← 현재 글
    │
    ▼
G-MAX11~12 (Within-Subjects), G-MAX15 (Multilevel — 통합)

15 관련 주제

선행 지식

후속 주제

  • G-MAX11-0 — Within-Subjects Univariate
  • G-MAX15-0 — Multilevel Models
  • G-MAX16-0 — Hierarchical Mixed Nested

다른 카테고리 연결

16 더 읽을 거리

  • Searle, S. R., Casella, G., McCulloch, C. E. (2006). “Variance Components.” Wiley.
  • Snijders, T. A. B., Bosker, R. J. (2012). “Multilevel Analysis: An Introduction to Basic and Advanced Multilevel Modeling” (2nd ed). Sage.
  • Raudenbush, S. W., Bryk, A. S. (2002). “Hierarchical Linear Models” (2nd ed). Sage.
  • Pinheiro, J. C., Bates, D. M. (2000). “Mixed-Effects Models in S and S-PLUS.” Springer.

Subscribe

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