§ 13.2.3 — TVSFP Smoking Prevention Study: Three-Level Probit 의 정책 응용

Flay et al. (1988) 의 TVSFP 데이터 · 7th grade × 135 classrooms × 28 schools · 2×2 design (CC × TV) · THKS binary outcome · 표 13.6 subgroup frequencies · 표 13.7 (two-level ↔︎ three-level pre-post) · 표 13.8 (post-only, school clustering) · ICC: classroom 6.6% + student 25% · LR test 의 자기 cluster effect 확인

Hedeker & Gibbons (2006) Ch.13 §13.2.3 의 자세한 풀이. 13-2 sub-post 의 3-level probit framework 의 직접 응용. TVSFP study (Flay et al. 1988) — 7th grade 학생들의 흡연 예방 RCT, 28 schools 에 4 conditions 무작위 배정 (Classroom Curriculum × TV Mass-Media). Outcome: Tobacco and Health Knowledge Scale (THKS) binary. 데이터 구조: 1600 students nested in 135 classrooms nested in 28 schools, unbalanced (1-13 classrooms/school, 2-28 students/classroom). 두 가지 분석: (1) 표 13.7 — pre/post measurements within students within classrooms (3-level: visit × student × class), (2) 표 13.8 — post only with pre covariate, students within classrooms within schools (3-level: student × class × school). 핵심 발견: 분석 1 — CC 강한 효과 (post-pre 0.81), TV 효과 (0.30), CC×TV 음의 interaction (-0.32, marginally significant). 3-level model 이 2-level 보다 SE 큼 (정확). ICC: classroom 6.6%, student 25%. 분석 2 — CC 만 강한 효과 (0.63), TV 비유의 (0.21), 3-level 이 2-level (class) 대비 추가 fit 미미 (LR \(\chi^2_1 = 1.82\), NS). 정책: school clustering 효과 작음 → classroom 단위 분석 으로 충분. § 13.1.1 NIMH center clustering 과의 비교.

Statistics
저자

Kwangmin Kim

공개

2026년 05월 06일

1 들어가며 — 13-2 framework 의 정책 응용

§ 13.2 ~ 13.2.2 (13-2) 에서 3-level probit/logistic 의 수학적 framework 와 적분 분해 (식 13.9) 를 다뤘다. 본 sub-post 는 그 framework 의 정책 분석 직접 응용 — TVSFP smoking prevention study (Flay et al. 1988).

한 줄 요약

“§ 13.2.3 = TVSFP study (Flay 1988) 의 3-level probit 적용. 7th grade 학생 흡연 예방 RCT — 28 schools 에 4 conditions (CC × TV 2×2) 무작위 배정. 두 분석: (1) 표 13.7 — pre-post within students within classrooms (3-level), CC(post-pre) 0.81*** + TV 0.30*** + CC×TV -0.32* (음의 interaction). (2) 표 13.8 — post only with pre covariate, students within classrooms within schools, CC 0.63*** + TV 비유의. 3-level 의 결정적 가치: SE 정확화 → fixed-effects model 의 ‘TV significant’ 가 mixed-effects 에서 비유의. ICC: classroom 6.6% + student 25%. 분석 2 에서 school 추가 효과 작음 (LR \(\chi^2_1 = 1.82\), NS) → classroom 단위로 충분. § 13.1.1 NIMH 와 비교: 둘 다 cluster effect 작음 — 그러나 일반 권고는 항상 3-level 적합 후 검정.”

2 데이터 — TVSFP Study

2.1 임상·정책 배경

TVSFP (Television School and Family Smoking Prevention and Cessation Project)

Source: Flay et al. (1988).

목적: 청소년 흡연 예방의 두 intervention 효과 평가:

  1. CC (Classroom Curriculum): 학교 수업 기반 social-resistance program.
  2. TV (Television Mass-Media): 미디어 기반 program.

Design: 2 × 2 factorial 무작위 배정 (school 단위):

Condition CC TV
(a) Yes No
(b) No Yes
(c) Yes Yes
(d) No No (control)

Sample:

  • 7th grade students from 135 classrooms in 28 schools.
  • 1600 students with both pre + post intervention data.
  • Unbalanced: 1-13 classrooms per school, 2-28 students per classroom.

Outcome — THKS (Tobacco and Health Knowledge Scale):

  • 흡연·건강 지식 평가 점수.
  • Binary: pass / fail (cutoff 점수 기준).
직관 — TVSFP 의 3-level 구조

3-level data 의 자연스러운 형태:

Level Unit 변동 메커니즘
3 (cluster) School 학교 정책, 지역 사회, 학교 문화
2 (subject) Classroom 또는 Student Teacher quality, peer effects
1 (observation) Pre/post measurement 시간 효과

무작위화의 단위: school (cluster) — RCT 의 randomization unit 가 cluster 일 때:

  • 같은 school 의 학생들이 같은 condition 받음.
  • → School clustering 무시하면 standard error 부정확.
  • 식 13.9 의 적분 분해가 필수.

왜 binary outcome 인가:

  • THKS 가 원래 continuous (점수) 인데 cutoff 으로 binary 화.
  • 정책 결정의 단순성 (pass/fail).
  • Probit 모형의 자연 적용.

§ 9.7 NIMH 이항 분석과 같은 발상 — continuous outcome 의 binary 화.

2.2 표 13.6 — Subgroup Frequencies

표 13.6 — Post-Intervention THKS Results
CC TV Pass Fail Total Pass %
No No 175 246 421 41.6%
No Yes 201 215 416 48.3%
Yes No 240 140 380 63.2%
Yes Yes 231 152 383 60.3%
Total 847 753 1600 52.9%
직관 — 표 13.6 의 임상적 메시지

CC 의 강한 효과:

  • No CC, No TV: 41.6% pass.
  • Yes CC, No TV: 63.2% pass.
  • → CC 단독 효과 = +21.6 percentage points.

TV 의 작은 효과:

  • No CC, No TV: 41.6% pass.
  • No CC, Yes TV: 48.3% pass.
  • → TV 단독 효과 = +6.7 percentage points.

Interaction 의 흥미로움:

  • Yes CC, No TV: 63.2% pass.
  • Yes CC, Yes TV: 60.3% pass.
  • → CC + TV 가 CC 단독보다 -2.9 percentage points (약간 감소).

해석 가설:

  • TV 가 CC 의 효과를 enhance 하지 않음.
  • 오히려 약간 distraction 또는 redundancy?
  • → 음의 interaction (CC × TV).

이 패턴이 정확한 통계 분석으로 검증 — 다음 절의 표 13.7-13.8.

정책 함의 (preliminary):

  • Classroom curriculum 이 가장 효과적.
  • TV mass-media 단독은 약함.
  • 두 intervention 결합이 비효율적 — 자원 배분 시 CC 우선.

이 결론이 통계적으로 유의한지 확인하려면 mixed-effects 모형 필요.

3 분석 1 — Pre/Post Within Students Within Classrooms

3.1 모형 구조

3-level 구조 (분석 1)
  • Level 3: Classroom (135 classrooms).
  • Level 2: Student within classroom (1600 students).
  • Level 1: Pre/post measurement within student (3200 obs).

Random effects:

  • Classroom random intercept (\(\sigma_{\text{class}}\)).
  • Student random intercept (\(\sigma_{\text{student}}\)).

Fixed effects:

  • Pre 조건 (baseline): Constant, CC(pre), TV(pre), CC×TV(pre).
  • Post-pre 변화: CC(post-pre), TV(post-pre), CC×TV(post-pre).
  • → 7 covariate (절편 + 6 main + interaction).
직관 — Pre-Post Coding

본 분석의 covariate parameterization:

  • CC(pre), TV(pre), CC×TV(pre): baseline (pre) 시점에서 그룹 차이.
    • RCT 가 잘 됐으면 모두 NS (randomization 정합성 검증).
  • CC(post-pre), TV(post-pre), CC×TV(post-pre): post-pre 변화의 그룹 차이.
    • 임상적 핵심 — intervention 의 차등 효과.

이 코딩이 RCT 의 표준:

  • Baseline 차이 (NS 기대) + change effect (intervention 효과).
  • 회귀 계수의 직접 임상 해석.

대안 — Time × Treatment interaction:

  • 같은 결과지만 표기 다름.
  • 본 분석의 (post-pre) 코딩이 더 직접 해석.

3.2 표 13.7 — 4 모형 비교

4 모형 결과 — Pre vs Post Analysis
Parameter Fixed-Effects 2-Level (Class) 2-Level (Student) 3-Level
Constant -0.3116*** (.062) -0.3377*** (.104) -0.3778*** (.076) -0.3916*** (.116)
Pre vs Post 0.0986 (.088) 0.1007 (.103) 0.1198 (.098) 0.1181 (.100)
CC(pre) -0.1095 (.091) -0.1427 (.135) -0.1333 (.110) -0.1608 (.151)
TV(pre) -0.0776 (.089) -0.1154 (.129) -0.0918 (.107) -0.1251 (.144)
CC×TV(pre) -0.0026 (.129) 0.0523 (.184) 0.0030 (.157) 0.0534 (.208)
CC(post-pre) 0.6585*** 0.6922*** 0.7995*** 0.8065* (.143)**
TV(post-pre) 0.2484** 0.2632** 0.2997** 0.3045* (.121)**
CC×TV(post-pre) -0.2428 (.181) -0.2691 (.184) -0.3066 (.197) -0.3204* (.182)
Class SD 0.2872*** (.039) 0.3103*** (.049)
Student SD 0.6798*** (.059) 0.6048*** (.066)
Log L -2108.63 -2082.12 -2077.89 -2061.92

*** p<.01, ** p<.05, * p<.10.

직관 — 4 모형의 비교

Pre 시점 효과 (모두 NS, 모형 무관):

  • CC(pre), TV(pre), CC×TV(pre): randomization 정합성 — baseline 에서 그룹 차이 없음.

Post-pre 변화 (intervention 효과):

효과 Fixed 2-Level (Class) 2-Level (Student) 3-Level
CC(post-pre) 0.659 0.692 0.800 0.807*
TV(post-pre) 0.248 0.263 0.300 0.305*
CC×TV(post-pre) -0.243 -0.269 -0.307 -0.320*

핵심 관찰:

  1. 추정값 (점 추정) 이 모형 따라 약간 변화:
    • Fixed → 3-level: CC effect 0.659 → 0.807 (~22% 증가).
    • 점진적 증가 — random effects 가 잠재 분산 추정에 영향.
  2. Standard errors:
    • Fixed-effects: 가장 작음 (잘못된 정확도).
    • 3-level: 가장 큼 (정확한 변동 반영).
    • 일관된 패턴 — clustering 무시 → SE 과소.
  3. 유의성:
    • CC(post-pre): 모든 모형에서 강하게 유의.
    • TV(post-pre): 모든 모형에서 유의 (그러나 약함).
    • CC×TV(post-pre): Fixed 와 2-level 에서 NS, 3-level 에서만 marginally significant (p<.10).

3-level 의 추가 정보: CC×TV interaction 의 marginally 유의성 — 표 13.6 의 -2.9 pp 효과의 통계적 표현.

저자 본문 인용:

“the 3-level model indicates an even stronger effect for the TV intervention and a result that approaches significance for the interaction.”

→ 3-level 분석이 더 정확한 정보 + 추가 발견.

3.3 LR Tests

모형 비교 LR Tests

2-level vs Fixed-Effects:

  • 2-Level (Class): \(\chi^2_1 = 53.02, p < .0001\) — 강하게 유의.
  • 2-Level (Student): \(\chi^2_1 = 61.48, p < .0001\) — 강하게 유의.

→ Random effects 추가가 중요.

3-level vs 2-level:

  • 3-Level vs 2-Level (Class): \(\chi^2_1 = 40.40, p < .0001\).
  • 3-Level vs 2-Level (Student): \(\chi^2_1 = 31.946, p < .0001\).

→ 두 random effects 모두 필요.

3-level + random subject slope vs 3-level (intercept only):

  • \(\chi^2_2 = 0.06, p = ns\) — 비유의.

→ 학생 별 시간 추세의 추가 변동 없음. Student intercept 만으로 충분.

직관 — Cluster Effects 모두 유의

3-level 모형의 정당성:

  • Classroom random effect 유의.
  • Student random effect 유의.
  • → 두 수준의 nested 구조 모두 의미 있음.

Random subject slope 비유의:

  • 학생별 pre-post 변화 속도가 거의 같음.
  • → 처치 효과가 학생 무관하게 비슷.
  • 모형 단순화 (random intercept 만) 정당.

Boundary 보정:

  • \(\sigma^2 = 0\) 이 boundary → Self-Liang (1987) 의 0.5 χ² + 0.5 χ² 분포.
  • 본 검정 통계량이 너무 커 결론 변화 없음.

3.4 ICC 분해

ICC 계산 (probit, σ_eps² = 1)

식 (참조 § 13.1):

\[ \text{ICC}_{\text{class}} = \frac{0.3103^2}{0.3103^2 + 0.6048^2 + 1} = \frac{0.096}{1.462} = 0.066 \]

\[ \text{ICC}_{\text{student}} = \frac{0.6048^2}{0.3103^2 + 0.6048^2 + 1} = \frac{0.366}{1.462} = 0.250 \]

6.6% classroom, 25.0% student.

직관 — 두 ICC 의 임상적 해석

Classroom ICC (6.6%):

  • 같은 classroom 의 학생들 간 잠재 변수 상관.
  • Teacher quality, classroom climate 등의 영향.
  • Donner (1982) 의 1-12% 범위 (cluster studies) 와 일치.

Student ICC (25%):

  • 같은 학생의 pre-post 측정 간 상관.
  • 학생 고유 특성 (배경 지식, 학습 능력) 의 영향.
  • Pre-post 디자인의 자연 상관 (같은 학생의 두 측정).

둘의 비교:

  • Student ICC > Classroom ICC (25 vs 6.6%).
  • → 학생 간 변동이 classroom 간 변동보다 큼.
  • 정책 함의: 학생 individual targeting 이 classroom-level intervention 보다 효과적일 가능성.

§ 13.1.1 NIMH 와의 비교:

  • NIMH center ICC: 1.66-4.39%.
  • TVSFP classroom ICC: 6.6%.
  • → TVSFP 의 classroom clustering 더 큼.
  • 그러나 둘 다 일반적 cluster ICC 범위.

§ 9.7 NIMH 이항 분석 (이항) vs TVSFP (probit):

  • 두 NIMH 분석은 patient ICC ~50% (정신과 환자 이질성).
  • TVSFP 학생 ICC 25% — 더 작음 (학생들이 더 동질).
  • 응답 형태 (continuous → binary) + sample 차이.

3.5 Predicted Probabilities

Marginal 확률 산출

식 (참조 § 9.5.4):

\[ \widehat{P} = \Phi\left(\frac{\widehat\eta}{\sqrt{1 + \widehat\sigma_{\text{class}}^2 + \widehat\sigma_{\text{student}}^2}}\right) \]

분모의 \(\sqrt{\cdot}\) 가 marginalization vector — random effects 잠재 분산 보정.

조건별 계산 (3-level estimates):

분모 = \(\sqrt{1 + 0.3103^2 + 0.6048^2} = \sqrt{1.462} = 1.209\).

조건 Pre \(\widehat\eta\) Pre 확률 Post \(\widehat\eta\) Post 확률
Control -0.3916 \(\Phi(-0.324) = 0.373\) -0.2735 \(\Phi(-0.226) = 0.411\)
CC -0.5524 \(\Phi(-0.457) = 0.324\) 0.4129 \(\Phi(0.342) = 0.634\)
TV -0.5167 \(\Phi(-0.427) = 0.335\) -0.0941 \(\Phi(-0.078) = 0.469\)
CC + TV -0.6113 \(\Phi(-0.506) = 0.306\) 0.2402 \(\Phi(0.199) = 0.579\)

저자 보고: 0.373/0.397, 0.324/0.621, 0.335/0.469, 0.303/0.593 (반올림 차이).

직관 — 표 13.6 와의 일치

Mixed-effects 모형의 marginal predicted probabilities 가 표 13.6 의 관측 비율과 거의 일치:

조건 관측 (Table 13.6) 모형 예측
Control 41.6% 39.7-41.1%
CC 63.2% 62.1-63.4%
TV 48.3% 46.9%
CC + TV 60.3% 57.9-59.3%

모형이 데이터 패턴 정확히 재현.

해석:

  • 모형이 데이터에 적합 — 신뢰할 수 있는 추정.
  • 추가적 통계적 정보 (SE, ICC) 가 데이터의 단순 비율 너머의 정보 제공.

임상 결론:

  • CC: control 대비 +25 pp pass rate (39.7 → 63.4).
  • TV: 단독 효과 +5 pp (39.7 → 46.9, 약함).
  • CC + TV: control 대비 +20 pp (CC 단독보다 약간 적음).

CC 가 가장 효과적 + TV 단독 효과 약함 + interaction 음수 (combination 가 CC 단독보다 약함).

정책 권고:

  • 자원 우선: CC.
  • TV: 보조 역할 (단독 의미 약함).
  • CC + TV combination: TV 의 추가 비용 vs CC 단독의 효과 차이 평가.

4 분석 2 — Post-Only with Pre Covariate (Students within Classrooms within Schools)

4.1 모형 구조

3-level 구조 (분석 2)
  • Level 3: School (28 schools).
  • Level 2: Classroom within school (135 classrooms).
  • Level 1: Student within classroom (1600 students).

Outcome: Post-intervention THKS only (binary).

Covariate:

  • Pre-intervention THKS (continuous, baseline 보정).
  • CC, TV, CC × TV (intervention).
직관 — 두 분석의 차이

분석 1: time × student × classroom (시점이 level 1).

  • Pre-post 변화를 직접 모형화.
  • Student random effect 가 within-student 상관 흡수.

분석 2: student × classroom × school (학생이 level 1).

  • Cross-sectional 효과 (post-only).
  • Pre 가 covariate 로 baseline 보정.
  • School clustering 의 영향 평가.

왜 두 분석을 모두 하는가:

  • 분석 1: 시점 변화의 자세한 분석 (학생 안 변동 처리).
  • 분석 2: school-level clustering 의 영향 평가.
  • 두 분석이 다른 측면 — 둘 다 가치 있음.

분석 2 의 강점:

  • School effect 의 정량화.
  • Pre covariate 으로 baseline 차이 보정 (강한 통제).

4.2 표 13.8 — 4 모형 비교

4 모형 결과 — Post-Only Analysis
Parameter Fixed 2-Level (Class) 2-Level (School) 3-Level
Constant -0.4209*** (.069) -0.4412*** (.100) -0.4394*** (.153) -0.4410*** (.154)
Pre 0.5335* (.068)** 0.5310* (.071)** 0.5106* (.075)** 0.5211* (.079)**
CC 0.5913* (.092)** 0.5916* (.128)** 0.6698* (.226)** 0.6277* (.228)**
TV 0.1931** (.089) 0.1718 (.124) 0.2369 (.172) 0.2078 (.171)
CC × TV -0.2596** (.128) -0.2224 (.178) -0.3591 (.259) -0.2921 (.260)
Class SD 0.3005*** (.059) 0.2532*** (.086)
School SD 0.2143*** (.071) 0.1690** (.086)
Log L -1050.26 -1040.86 -1043.96 -1039.95

*** p<.01, ** p<.05, * p<.10.

직관 — 4 모형의 비교

Pre covariate (모두 강하게 유의, 모형 무관):

  • 0.51-0.53 — 사전 지식이 사후 지식의 강한 예측 변수.
  • 임상적 의미 — baseline 보정의 효과.

CC 효과 (모두 강하게 유의):

  • Fixed: 0.591, 3-level: 0.628.
  • 정확한 SE 가 3-level 에서 가장 큼 (0.092 → 0.228).

TV 효과:

  • Fixed: 0.193 (p<.05) — 유의.
  • Mixed-effects (모두): 0.17-0.24 — 비유의 (p > .10).

CC × TV interaction:

  • Fixed: -0.260 (p<.05) — 유의.
  • Mixed-effects: -0.22 ~ -0.36 — 비유의.

핵심 발견 — Fixed-effects vs Mixed-effects 의 정반대 결론:

  • Fixed-effects: TV main + CC × TV interaction 모두 유의.
  • Mixed-effects: 둘 다 비유의.

Cluster effect 무시 시 잘못된 유의성 결론.

저자 본문 인용:

“the fixed-effects model identified a significant main effect of TV and a CC by TV interaction, however, neither of these two effects were significant for 2-level or 3-level mixed-effects models.”

→ 정확한 분석에서는 TV 단독 효과 + interaction 모두 비유의.

4.3 LR Tests — Cluster Effect의 점진적 평가

분석 2 의 LR Tests

2-level vs Fixed:

  • 2-Level (Class) vs Fixed: \(\chi^2_1 = 18.80, p < .0001\) — 강하게 유의.
  • 2-Level (School) vs Fixed: \(\chi^2_1 = 12.60, p < .0004\) — 유의.

3-level vs Fixed:

  • 3-Level vs Fixed: \(\chi^2_2 = 20.62, p < .0001\) — 강하게 유의.

3-level vs 2-level (Class):

  • \(\chi^2_1 = 1.82, p = ns\)비유의.

School effect 추가가 거의 무의미 (classroom effect 만으로 충분).

직관 — School Effect 의 작음

3-level vs 2-level (Class) 비교:

  • 2-level (Class) 에 school 추가 → fit 큰 변화 없음 (\(\chi^2_1 = 1.82\)).
  • → School clustering 효과가 classroom clustering 안에 흡수됨.

해석:

  • 같은 school 의 classroom 들이 비슷한 환경 → school 효과가 classroom 분산에 nested.
  • Classroom-level 변동이 충분히 큼.
  • → 모형 단순화 (2-level Class) 가능.

그러나 model selection 의 신중함:

  • LR 검정의 boundary 문제 (Self-Liang).
  • 정확한 검정이 더 보수적 (NS 결론 더 안전).
  • Design 측면 — randomization 단위가 school 이면 random school 유지 권고 (저자 본문 § 13.1.1).

ICC 비교:

  • 분석 1 (Class only at level 3): ICC = 6.6%.
  • 분석 2 (School at level 3): ICC = 분류별 다름.

일반 권고:

  • 데이터 구조 (3 levels) 가 명확하면 3-level 적합 → cluster variance 검정.
  • 작으면 단순화.
  • 결론에 큰 차이 없음.

5 § 13.1.1 NIMH 와의 비교

두 illustration 의 종합 비교
항목 § 13.1.1 NIMH (13-1) § 13.2.3 TVSFP (본 sub-post)
응답 형태 Continuous (IMPS 1-7) Binary (THKS pass/fail)
모형 Linear (식 13.1) Probit (식 13.4)
적분 Closed form Numerical (Gauss-Hermite)
데이터 9 centers × patients × visits 28 schools × 135 classrooms × students × pre/post
Cluster level 3 Treatment center Classroom 또는 School
Cluster ICC 1.66-4.39% (NS) Class 6.6% (유의), School 작음
Subject ICC 32-74% (시점별) 25% (분석 1)
Cluster effect 결론 작음 — 2-level 으로 충분 작음 — 그러나 명확히 유의
정책 함의 Center 별 quality 비슷 Classroom 효과 의미, school 작음
두 illustration 의 종합 교훈

공통점:

  • Cluster effect 가 작은 사례 (1-7%).
  • 2-level 분석으로 결론 큰 차이 없음.
  • 그러나 SE 부정확 위험 존재.

차이점:

  • 응답 형태 (continuous vs binary) — 다른 모형 family.
  • Cluster level 의 의미 (medical center vs school).
  • ICC 의 정확한 값 (NIMH 더 작음).

일반 권고:

  1. 항상 3-level 모형 적합 — 데이터가 nested 구조면.
  2. Cluster variance 검정 — LR test (boundary 보정).
  3. 작으면 2-level 으로 reduce — 모수 절약.
  4. 그러나 design 고려 — randomization 단위가 cluster 면 유지 권고.

Bayesian 우회 (현대 표준):

  • brms 의 default prior 가 weakly informative.
  • 작은 cluster effect 에서 정확한 사후 분포.
  • DIC, LOO 로 모형 비교.

→ 둘 다 mixed-effects 의 정확한 SE + 임상적 정보를 위해 필요.

6 응용 분야

분야 3-Level 구조 응답
학교 RCT (TVSFP) School × Classroom × Student 학생 outcome (binary/continuous)
Multi-center 임상시험 (NIMH) Center × Patient × Visit 환자 outcome
회사 종업원 Company × Department × Employee 종업원 outcome
가족 연구 Family × Member × Outcome 가족 member outcome
Hospital quality Hospital × Ward × Patient 환자 outcome
Geographic study Region × County × Subject 인구 통계 outcome

→ “Three-level nested + cluster randomization” 의 모든 사례.

7 코드 예시

7.1 Step 1: TVSFP-like 데이터 시뮬레이션

library(lme4)
library(dplyr)


# TVSFP-like 3-level binary 시뮬레이션
set.seed(2026)
n_schools <- 28
n_classrooms_per_school <- sample(1:13, n_schools, replace = TRUE)
total_classrooms <- sum(n_classrooms_per_school)

# Cluster effects
school_effects <- rnorm(n_schools, 0, 0.169)  # School SD ≈ Table 13.8
class_effects <- list()
class_id <- 0
for (s in 1:n_schools) {
  class_effects[[s]] <- rnorm(n_classrooms_per_school[s], 0, 0.253)
}

# 4 conditions 무작위 배정 (school 단위)
conditions <- sample(rep(1:4, length.out = n_schools))
cc_school <- as.numeric(conditions %in% c(1, 3))  # CC: 1, 3
tv_school <- as.numeric(conditions %in% c(2, 3))  # TV: 2, 3

# 데이터 생성
df <- data.frame()
class_counter <- 0
for (s in 1:n_schools) {
  for (c in 1:n_classrooms_per_school[s]) {
    class_counter <- class_counter + 1
    n_students <- sample(2:28, 1)  # 2-28 students per classroom
    for (st in 1:n_students) {
      pre <- rbinom(1, 1, 0.5)  # baseline THKS
      # 식 (13.3) — latent variable
      eta_post <- -0.441 + 0.521 * pre + 0.628 * cc_school[s] +
                   0.208 * tv_school[s] - 0.292 * cc_school[s] * tv_school[s] +
                   school_effects[s] + class_effects[[s]][c]
      y_latent <- eta_post + rnorm(1, 0, 1)
      post <- as.numeric(y_latent > 0)
      df <- rbind(df, data.frame(
        school = s, classroom = class_counter,
        student = paste0(class_counter, "_", st),
        cc = cc_school[s], tv = tv_school[s],
        pre = pre, post = post
      ))
    }
  }
}

cat("전체 학생:", nrow(df), "\n")
cat("Schools:", length(unique(df$school)), "\n")
cat("Classrooms:", length(unique(df$classroom)), "\n")

# Subgroup frequencies (Table 13.6 재현)
cat("\nPost-intervention pass rates:\n")
df %>% group_by(cc, tv) %>%
  summarise(n = n(), pass_rate = mean(post)) %>% print()
시뮬레이션 검증

표 13.6 의 패턴 재현 검증:

  • No CC, No TV: ~42% pass.
  • No CC, Yes TV: ~48% pass.
  • Yes CC, No TV: ~63% pass.
  • Yes CC, Yes TV: ~60% pass.

논문 결과의 점 추정 사용 → 패턴 비슷.

7.2 Step 2: 분석 2 — Post-only with Pre Covariate

# 4 모형 적합 (Table 13.8 재현)
# Fixed-effects probit
fit_fixed <- glm(post ~ pre + cc * tv, data = df,
                 family = binomial(link = "probit"))

# 2-Level (Class)
fit_2level_class <- glmer(post ~ pre + cc * tv + (1 | classroom),
                           data = df, family = binomial(link = "probit"),
                           control = glmerControl(optimizer = "bobyqa"))

# 2-Level (School)
fit_2level_school <- glmer(post ~ pre + cc * tv + (1 | school),
                            data = df, family = binomial(link = "probit"),
                            control = glmerControl(optimizer = "bobyqa"))

# 3-Level (School × Classroom)
fit_3level <- glmer(post ~ pre + cc * tv + (1 | school) + (1 | classroom),
                    data = df, family = binomial(link = "probit"),
                    control = glmerControl(optimizer = "bobyqa"))

# 결과 비교
cat("\n=== Fixed-Effects vs Mixed-Effects 결과 비교 ===\n")
cat("\nTV 효과 (논문: Fixed 유의, mixed 비유의):\n")
cat("  Fixed:", round(coef(summary(fit_fixed))["tv", c("Estimate", "Pr(>|z|)")], 3), "\n")
cat("  3-Level:", round(coef(summary(fit_3level))["tv", c("Estimate", "Pr(>|z|)")], 3), "\n")

cat("\nCC × TV interaction (논문: Fixed 유의, mixed 비유의):\n")
cat("  Fixed:", round(coef(summary(fit_fixed))["cc:tv", c("Estimate", "Pr(>|z|)")], 3), "\n")
cat("  3-Level:", round(coef(summary(fit_3level))["cc:tv", c("Estimate", "Pr(>|z|)")], 3), "\n")

# LR test (3-level vs 2-level Class)
lr_3vs2class <- 2 * (logLik(fit_3level) - logLik(fit_2level_class))
cat("\nLR test (3-level vs 2-level Class):\n")
cat("  chi^2 =", round(lr_3vs2class, 2), "(논문: 1.82)\n")
cat("  p (boundary 보정) =",
    format.pval(0.5 * (1 - pchisq(lr_3vs2class, 1)), digits = 3), "\n")
핵심 발견 검증

Fixed-effects 의 잘못된 유의성:

  • TV: p < .05 (유의).
  • CC × TV: p < .05 (유의).

Mixed-effects 의 정확한 결론:

  • TV: p > .10 (비유의).
  • CC × TV: p > .10 (비유의).

Cluster effect 무시 시 type I error 증가 의 직접 시연.

LR test (3-level vs 2-level Class):

  • \(\chi^2_1 \approx 1.82\) (논문 결과 재현).
  • p > .05 → school effect 추가가 거의 무의미.
  • → 본 데이터에서 classroom-level clustering 만 중요.

결론:

  • TVSFP 데이터에서 CC 만 강한 효과.
  • TV 단독 효과, CC × TV interaction 모두 비유의.
  • School-level clustering 작음, classroom-level 만 중요.
  • 정책 권고: classroom-based intervention (CC) 자원 집중.

7.3 Step 3: ICC 계산 + 시점별 분해

# ICC 계산 (probit, sigma_eps² = 1)
sigma_school <- attr(VarCorr(fit_3level)$school, "stddev")
sigma_class <- attr(VarCorr(fit_3level)$classroom, "stddev")

icc_school <- sigma_school^2 / (sigma_school^2 + sigma_class^2 + 1)
icc_class <- sigma_class^2 / (sigma_school^2 + sigma_class^2 + 1)

cat("\n=== ICC 분해 ===\n")
cat("School ICC:", round(icc_school, 3), "\n")
cat("Classroom ICC (within school):", round(icc_class, 3), "\n")
cat("Within (residual):", round(1 / (sigma_school^2 + sigma_class^2 + 1), 3), "\n")

# 분석 1 framework — pre/post within student within classroom
# (시뮬레이션 데이터의 구조 차이로 단순화)

# Predicted probabilities (Table 13.6 재현)
sigma_total <- sqrt(1 + sigma_class^2 + sigma_school^2)

# 4 conditions 별 predicted probability
conditions_df <- expand.grid(cc = 0:1, tv = 0:1, pre = 0)  # baseline pre = 0
conditions_df$eta_post <- predict(fit_3level, newdata = conditions_df,
                                    re.form = NA, type = "link")
conditions_df$marginal_prob <- pnorm(conditions_df$eta_post / sigma_total)

print(conditions_df)
ICC 와 Predicted Probabilities

ICC 검증:

  • Classroom ICC ~ 6-7%.
  • School ICC ~ 3-4% (작음).
  • → Classroom 이 주요 cluster.

Predicted probabilities 재현 (논문 Table 13.6 비슷):

  • Control (no CC, no TV): ~40-42%.
  • CC: ~62-63%.
  • TV: ~46-49%.
  • CC + TV: ~57-60%.

임상 해석:

  • 단순 비율 (Table 13.6) 과 모형 예측이 일치.
  • 모형이 데이터 적합 검증.
  • 추가 정보: SE, ICC, marginal vs subject-specific 효과.

Marginalization 의 의미:

  • \(\widehat{P}_{\text{marginal}} = \Phi(\widehat\eta / \sqrt{1 + \sigma^2_{\text{rand}}})\).
  • Random effects 분산 보정 → 모집단 평균 확률.
  • Subject-specific 확률 (\(\Phi(\widehat\eta + \sigma\theta)\)) 와는 다름.

7.4 Step 4: TVSFP vs NIMH 비교 시각화

library(ggplot2)


# 두 illustration 의 ICC 비교
icc_comparison <- data.frame(
  study = rep(c("NIMH (Linear)", "TVSFP Class (Probit)"), each = 2),
  level = rep(c("Cluster", "Subject"), 2),
  icc = c(0.044, 0.32, 0.066, 0.25)  # 표 13.5 / Table 13.7 의 baseline ICC
)

ggplot(icc_comparison, aes(x = study, y = icc, fill = level)) +
  geom_bar(stat = "identity", position = "dodge") +
  scale_fill_manual(values = c("Cluster" = "tomato", "Subject" = "steelblue")) +
  labs(x = "Study", y = "ICC",
       title = "ICC 비교: NIMH vs TVSFP",
       subtitle = "Cluster effects 작음, Subject effects 큼") +
  geom_text(aes(label = round(icc, 3)), position = position_dodge(0.9), vjust = -0.3)
두 illustration 의 시각적 비교

공통 패턴:

  • Cluster effects 작음 (1-7%).
  • Subject effects 큼 (25-32%).
  • → 두 사례 모두 subject heterogeneity 가 dominant.

차이점:

  • TVSFP classroom ICC (6.6%) > NIMH center ICC (4.4%).
  • 학교 environment 가 hospital environment 보다 학생 outcome 에 더 강한 영향?
  • 또는 cluster size 차이 (135 classrooms vs 9 centers).

실무 권고:

  • 두 사례 모두에서 cluster effect 작아 2-level 분석으로 결론 큰 차이 없음.
  • 그러나 정확한 SE 와 cluster 별 추정을 위해 3-level 권고.
  • Cluster randomized trials 의 design 시 ICC 1-10% 가정 (Donner 1982 표준).

ICH E9 (Statistical Principles for Clinical Trials):

  • Multi-center clinical trials 에서 center as random effect 표준.
  • Cluster ICC 보고 의무.
  • 작은 cluster effect 에서도 정확한 SE 보고.

8 관련 주제

선행 지식

후속 주제 (Ch.13 sub-posts)

  • § 13.2.4 — More general outcomes (ordinal, nominal, count)
  • § 13.3 — Ch.13 Summary
  • Ch.14 — 결측 데이터

관련 개념

  • Flay et al. (1988) — TVSFP study 원전
  • Donner (1982), Donner & Klar (2000) — Cluster ICC 기준
  • Murray (1998) — Group-randomized trials 표준
  • Self & Liang (1987) — Boundary LR test
  • Raudenbush & Bryk (2002) — Multilevel models 표준
  • ICH E9 — Multi-center clinical trials 표준
  • Murray, Catellier, Hannan (2004) — Cluster RCT design 가이드
  • § 12.5 자살률 분석 — Spatial 3-level 의 다른 사례

Subscribe

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