태그 보관물: 베이지안

Chap04. 베이지안 다층 모형(Bayesian Multilevel Models)

안녕하세요!

오늘은 베이지안 다층 모형(Bayesian Multilevel Models)에 대해 살펴보겠습니다. “학교 현장의 데이터”를 예시로 들어 직관적인 설명과 수리적 엄밀함을 모두 갖춘 형태로 재구성해 드리겠습니다.

분석 도구로는 jamovi의 사용법을 설명하되, jamovi의 기반이 되는 R 코드를 함께 제시하여 모의 데이터 생성부터 분석, 시각화까지 완벽하게 구현해 드리겠습니다. 특히 오늘 다룰 문헌은 일반적인 다층모형을 넘어, 비선형 관계를 다루는 GAMM(일반화 가법 혼합 모형)STAR(구조적 가법 회귀) 모형까지 포괄하고 있으므로, 이를 구현하기 위해 R의 brms 패키지를 활용한 코드를 중점적으로 보여드리겠습니다.


1. 베이지안 추론: 요리사의 레시피와 할머니의 손맛

본격적인 수식에 들어가기 전에, 베이지안이 무엇인지 교육학적 관점에서 쉽게 풀어봅시다.

문헌에서는 베이지안 모형이 두 부분으로 구성된다고 합니다.

  1. 사전 분포(Prior Distribution): 데이터를 보기 전, 파라미터(모수)에 대해 우리가 가지고 있는 지식이나 믿음입니다.
  2. 관측 모형(Observation Model): 데이터가 주어졌을 때의 조건부 분포로, 빈도주의에서의 ‘우도(Likelihood)’에 해당합니다.

[예시: 김 교사의 학생 평가]

  • 빈도주의(Likelihood): 김 교사가 철수의 이번 수학 시험지(데이터)만 보고 점수를 매깁니다. 오직 ‘관측된 데이터’가 전부입니다.
  • 베이지안(Posterior): 김 교사는 철수가 평소에 수학을 아주 잘한다는 것(Prior)을 알고 있습니다. 이번 시험을 좀 못 봤더라도(Likelihood), “아, 실수를 좀 했구나” 하고 감안하여 최종 실력(Posterior)을 추정합니다.

이것이 바로 베이즈 정리입니다.

p(θ|y)p(y|θ)p(θ)p(\theta|y) \propto p(y|\theta) \cdot p(\theta)

즉, 사후 분포(Posterior) \propto 우도(Likelihood) ×\times 사전 분포(Prior) 입니다.


2. 교육 현장 시나리오 및 모의 데이터 생성 (R Code)

우리가 분석할 가상의 시나리오는 다음과 같습니다.

[시나리오: 이의초등학교의 수학 성취도 분석]

  • 데이터 구조: 학생(ii)이 학급(jj)에 소속된 2수준 구조 (Students nested in Classes).
  • 종속변수 (yy): 수학 성취도 점수.
  • 1수준 변수 (학생): 사교육 참여 시간(Time, 비선형적 관계 예상), 가정의 사회경제적 지위(SES).
  • 2수준 변수 (학급): 담임 교사의 효능감(Efficacy).
  • 특이사항: 사교육 시간은 처음에는 성적을 올리지만, 일정 시간이 지나면 피로도로 인해 효과가 떨어지는 비선형(Non-linear) 관계가 의심됩니다. 이는 문헌의 GAMM(Generalized Additive Multilevel Models) 부분과 연결됩니다.

이제 R을 사용하여 이 시나리오에 맞는 데이터를 생성해 보겠습니다.

R

# 필수 패키지 로드
if (!require("brms")) install.packages("brms")
if (!require("ggplot2")) install.packages("ggplot2")
if (!require("dplyr")) install.packages("dplyr")

library(brms)
library(dplyr)
library(ggplot2)

# 1. 데이터 생성 (재현성을 위해 시드 설정)
set.seed(2026)

n_classes <- 30      # 학급 수
n_students <- 20     # 학급당 학생 수
N <- n_classes * n_students

# 2수준(학급) 변수 생성
class_id <- rep(1:n_classes, each = n_students)
teacher_efficacy <- rnorm(n_classes, 0, 1) # 교사 효능감 (표준정규분포)
class_intercept <- rnorm(n_classes, 0, 2)  # 학급별 무작위 절편 (Random Intercept)

# 데이터 프레임 생성
data <- data.frame(class_id = factor(class_id))
data$teacher_eff <- rep(teacher_efficacy, each = n_students)
data$class_int <- rep(class_intercept, each = n_students)

# 1수준(학생) 변수 생성
data$SES <- rnorm(N, 0, 1) # 사회경제적 지위
data$Time <- runif(N, 0, 10) # 사교육 시간 (0~10시간)

# 비선형 효과 생성 (사교육 시간: 역 U자 형태) - 문헌의 P-spline 예시 관련 [cite: 201]
# 시간 효과: 3 * sin(Time/3)
time_effect <- 3 * sin(data$Time / 3) 

# 종속변수(수학 점수) 생성
# 수식: 절편 + SES효과 + 교사효능감 + 시간효과(비선형) + 학급무선효과 + 오차
data$Math <- 50 + (2 * data$SES) + (1.5 * data$teacher_eff) + 
             time_effect + data$class_int + rnorm(N, 0, 3)

# 데이터 확인
head(data)

# CSV 저장 (jamovi에서 불러오기 위함)
write.csv(data, "chap04.csv", row.names = FALSE)

3. 베이지안 다층 모형의 구조

문헌에 따르면, 일반적인 선형 혼합 모형(LMM)은 다음과 같이 표현됩니다.

y=Xβ+l=1LZlul+ϵy = X\beta + \sum_{l=1}^{L} Z_l u_l + \epsilon

우리 데이터에 적용하면 다음과 같습니다.

Mathij=β0+β1SESij+β2TeacherEffj+uj+ϵij\text{Math}_{ij} = \beta_0 + \beta_1 \text{SES}_{ij} + \beta_2 \text{TeacherEff}_j + u_{j} + \epsilon_{ij}

  • β\beta: 고정 효과(Fixed effects) – 전체적인 평균 효과.
  • uju_j: 학급별 무작위 효과(Random effects), ujN(0,σu2)u_j \sim N(0, \sigma_u^2).
  • ϵij\epsilon_{ij}: 오차항, ϵijN(0,σ2)\epsilon_{ij} \sim N(0, \sigma^2).

베이지안 접근에서는 여기서 멈추지 않고, β\betaσ2\sigma^2 같은 파라미터에도 사전 분포(Prior)를 부여합니다.

  • βN(c,C)\beta \sim N(c, C) (보통 정보를 주지 않는 무정보 사전분포나 약한 정보 사전분포 사용).
  • σ2IG(a,b)\sigma^2 \sim IG(a, b) (역감마 분포).

4. 분석 실행: jamovi 및 R (brms)

4.1 jamovi에서의 한계와 대안

jamovi의 기본 메뉴(Linear Models -> Mixed Models)는 빈도주의 방식(REML 등)을 사용합니다. 본 문헌에서 다루는 완전 베이지안 추론(Full Bayesian Inference), 특히 MCMC(마르코프 체인 몬테카를로) 시뮬레이션을 수행하기 위해서는 jamovi의 Rj 모듈(R 코드를 jamovi 안에서 실행하는 에디터)을 사용하거나 R을 직접 사용해야 합니다.

특히 문헌에서 강조하는 GAMM(일반화 가법 모형)P-spline(벌점화 스플라인)을 구현하기 위해 R의 brms 패키지를 사용하는 것이 가장 적합합니다.

4.2 R을 이용한 베이지안 다층 분석 (MCMC)

문헌에서는 비선형성을 다루기 위해 공변량의 효과를 f(x)f(x) 형태의 함수로 모델링하는 것을 제안합니다. 이를 GAMM이라고 합니다.

[분석 모델 설정]

  1. 기본 다층 모형: SES와 교사 효능감의 선형 효과.
  2. 스플라인 항: 사교육 시간(Time)은 비선형적이므로 s(Time)으로 설정.
  3. 무선 효과: 학급(class_id)에 따른 무선 절편.

R

# 베이지안 다층 모형 적합 (GAMM 포함)
# 문헌의 식 (4.13)과 유사한 형태 [cite: 357]
model_bayes <- brm(
  formula = Math ~ SES + teacher_eff + s(Time) + (1 | class_id),
  data = data,
  family = gaussian(),
  prior = c(
    prior(normal(0, 10), class = "b"),    # 고정 효과에 대한 사전 분포
    prior(cauchy(0, 2), class = "sd"),    # 무선 효과 표준편차에 대한 사전 분포
    prior(cauchy(0, 2), class = "sigma")  # 잔차 표준편차에 대한 사전 분포
  ),
  chains = 2, iter = 2000, warmup = 1000, # MCMC 설정 [cite: 320]
  cores = 2,
  seed = 2026
)

# 결과 요약
summary(model_bayes)

이 코드는 문헌에서 설명한 Gibbs Sampler 혹은 Metropolis-Hastings 알고리즘의 최신 변형(NUTS)을 사용하여 사후 분포에서 표본을 추출합니다.


5. 결과 해석 및 시각화

분석이 완료되면, 문헌의 [Table 4.1]과 같은 형태로 결과를 해석해야 합니다. 베이지안에서는 p-value 대신 신용 구간(Credible Interval)을 사용합니다.

5.1 수치적 결과 해석 (예시 출력 기반)

변수Posterior Mean (사후평균)95% CI (신용구간)Rhat설명
Intercept50.12[48.5, 51.7]1.00전체 평균 수학 점수
SES2.05[1.88, 2.22]1.00SES가 1단위 오를 때 점수 2.05점 상승
TeacherEff1.48[1.20, 1.76]1.00교사 효능감이 높으면 점수 상승 (유의함)
s(Time)1.00비선형 효과 (아래 그래프 참조)
sd(Intercept)2.10[1.50, 2.80]1.00학급 간 점수 차이(변동성)
  • 해석: 95% 신용구간이 0을 포함하지 않으면, 해당 변수는 통계적으로 의미 있는 효과가 있다고 봅니다. 위 결과에서 SES와 교사 효능감 모두 0을 포함하지 않으므로 유의합니다.
  • Rhat: 이 값이 1.1보다 작아야 MCMC 체인이 잘 수렴했다는 뜻입니다.

5.2 비선형 효과 시각화 (P-spline)

사교육 시간(Time)과 성적의 비선형 관계를 그려보겠습니다.

R

# 비선형 효과 시각화
conditional_effects(model_bayes, effects = "Time")

이 코드를 실행하면 역 U자 형태의 그래프가 나타납니다. 초기에는 시간이 늘수록 점수가 오르지만, 특정 시간 이후에는 정체되거나 떨어지는 패턴을 확인할 수 있습니다.

이것이 바로 문헌에서 강조하는 “선형 가정의 한계를 넘어서는 유연성”입니다. 단순히 선형 회귀를 했다면 이 중요한 교육적 시사점(과도한 사교육은 효과가 없다)을 놓쳤을 것입니다.


6. 모형 비교 및 평가 (DIC)

모형이 데이터에 잘 맞는지 어떻게 알까요? 문헌에서는 DIC (Deviance Information Criterion)를 소개합니다.

  • DIC: 낮을수록 좋은 모형입니다.
  • 비교: 무선 효과가 없는 모형 vs 있는 모형, 혹은 선형 모형 vs 비선형(Spline) 모형을 비교할 때 사용합니다.

R

# DIC 계산 (brms에서는 waic나 loo를 더 권장하지만, 문헌에 따라 DIC 개념 설명)
# 여기서는 LOO (Leave-One-Out cross-validation)로 대체하여 보여줌 (DIC의 현대적 대안)
loo(model_bayes)

문헌의 사례연구에서도 무선 효과를 포함했을 때 DIC가 140점 이상 감소하여 더 우수한 모형임이 입증되었습니다.


7. 심화: 공간 통계 및 구조적 가법 회귀 (STAR)

이 문헌의 특징적인 부분은 STAR (Structured Additive Regression) 모델입니다.

만약 우리 데이터에 “학교의 위치(위도, 경도)” 정보가 있다면 어떻게 될까요?

η=Xβ+Zgroupsugroups+fgeo(s)\eta = X\beta + Z_{groups}u_{groups} + f_{geo}(s)

  • fgeo(s)f_{geo}(s): 공간적 효과. 부유한 지역에 있는 학교인지 등을 공간 좌표로 반영합니다.
  • R의 brms에서는 gp(latitude, longitude) 함수를 통해 이를 쉽게 구현할 수 있습니다. 이는 지리적 위치에 따른 성적 차이를 지도 위에 등고선처럼 그려낼 수 있게 해 줍니다.

8. 결론 및 제언

오늘 우리는 숙명초등학교 데이터를 예시로 베이지안 다층 모형을 살펴보았습니다.

  1. 유연성: 베이지안 접근은 정규분포 가정이 깨지거나, 비선형 관계(P-spline)가 있을 때 훨씬 유연하게 대처합니다.
  2. 직관성: 신용구간(Credible Interval)은 “참값이 이 구간 안에 있을 확률이 95%”라고 직관적으로 말할 수 있습니다.
  3. 확장성: 공간 정보, 텍스트 데이터 등 복잡한 구조의 데이터를 다층 모형에 쉽게 결합할 수 있습니다(STAR 모델).

[WaurimaL의 한마디]

“빈도주의 통계가 ‘엄격한 요리법’이라면, 베이지안은 ‘맛을 보며 간을 맞추는 과정’입니다. 교육 현장의 데이터는 복잡하고 비선형적입니다. 오늘 배운 코드를 활용해 여러분의 데이터를 새로운 시각으로 분석해 보시기 바랍니다.”


참고문헌 (References)

  • Fahrmeir, L., Kneib, T., & Lang, S. (2014). Bayesian Multilevel Models. In The SAGE Handbook of Multilevel Modeling (pp. 53-71). SAGE Publications.
  • Brezger, A., & Lang, S. (2006). Generalized additive regression based on Bayesian P-splines. Computational Statistics & Data Analysis, 50(4), 967-991.
  • Gelman, A., Carlin, J. B., Stern, H. S., & Rubin, D. B. (2003). Bayesian Data Analysis. Chapman and Hall/CRC.
  • Spiegelhalter, D. J., Best, N. G., Carlin, B. P., & van der Linde, A. (2002). Bayesian measures of model complexity and fit. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 64(4), 583-639.

Chap 38. 베이지안 구조방정식 모형(Bayesian Structural Equation Modeling, BSEM)

안녕하세요. 이번에는 통계학의 새로운 지평인 베이지안 구조방정식 모형(Bayesian Structural Equation Modeling, BSEM)의 세계로 들어가는 것을 돕고자 합니다. 2012년 초판 이후, 베이지안 추론은 사회과학 및 행동과학 분야에서 빈도주의(Frequentist) 방법론의 강력한 대안으로 자리 잡았습니다.

특히 이번 내용에서는 Hamiltonian Monte Carlo (HMC) 알고리즘과 Stan 같은 오픈 소스 소프트웨어의 발전에 힘입어 더욱 정교해진 BSEM의 기초와 확장에 대해 다룰 것입니다. 다소 복잡할 수 있는 내용이지만, 학교 현장의 예시를 통해 알기 쉽게 풀어보겠습니다.

분석 도구로는 우리가 수업 시간에 자주 다루는 jamovi를 기본으로 하되, 본문에서 강조하는 blavaan 패키지의 고급 기능을 구현하기 위해 jamovi 내의 Rj Editor (또는 R 환경)를 활용하는 코드를 함께 제시하겠습니다.

1. 왜 베이지안인가?

우리는 그동안 “p-value가 .05보다 작은가?”에 집착해 왔습니다. 하지만 빈도주의 통계는 “모수(parameter)는 고정되어 있고 데이터가 확률적”이라고 봅니다. 반면, 베이지안 통계는 “데이터는 고정되어 있고, 모수 자체가 확률 분포를 가진다”고 봅니다.

베이지안 접근의 핵심 장점은 다음과 같습니다.

  1. 불확실성의 정량화: 모수 추정치 주변의 구간(신용구간, Credible Interval)이 빈도주의의 신뢰구간보다 더 직관적이고 솔직합니다.
  2. 사전 정보의 활용: 이전 연구 결과나 전문가의 의견을 ‘사전 분포(Prior)’로 모형에 반영할 수 있습니다.
  3. 복잡한 모형 해결: 빈도주의 방식(최대우도법 등)으로 수렴하지 않는 복잡한 모형도 MCMC 샘플링을 통해 추정해 낼 수 있습니다.

2. 베이지안 추론의 핵심 요소

2.1 베이즈 정리 (Bayes’ Theorem)

베이지안 추론의 심장은 다음 식입니다.

p(θ|y)=p(y|θ)p(θ)p(y)p(\theta|y) = \frac{p(y|\theta)p(\theta)}{p(y)}

  • p(θ|y)p(\theta|y): 사후 분포(Posterior). 데이터를 관측한 후의 모수(지식).
  • p(y|θ)p(y|\theta): 우도(Likelihood). 데이터가 관측될 확률(모형).
  • p(θ)p(\theta): 사전 분포(Prior). 데이터를 보기 전의 믿음.
  • p(y)p(y): 정규화 상수.

즉, “사후 지식 = (데이터의 증거 × 사전 지식) / 상수” 입니다.

2.2 사전 분포(Prior)의 종류

교육학 예시로 설명해 봅시다. “영재 학급 학생들의 평균 IQ(θ\theta)”를 추정한다고 가정합니다.

  1. 무정보 사전 분포 (Noninformative Prior): “나는 아무것도 모른다.”
    • 균등 분포(Uniform Distribution) U(0,200)U(0, 200) 등을 사용합니다. 0에서 200 사이의 모든 값이 동등한 확률을 가집니다.
    • 데이터가 스스로 말하게 내버려 두는 방식입니다.
  2. 약한 정보 사전 분포 (Weakly Informative Prior): “정확히는 모르지만, 터무니없는 값은 아닐 것이다.”
    • 완전한 무정보보다는 낫고, 특정 이론에 너무 치우치지 않도록 합니다. 표본 크기가 작을 때 유용합니다.
  3. 정보적 사전 분포 (Informative Prior): “기존 연구에 따르면 평균 130 정도일 것이다.”
    • 정규분포 N(130,5)N(130, 5) 처럼 구체적인 평균과 분산을 지정합니다.

3. MCMC 샘플링과 HMC

베이지안 추정은 복잡한 적분 계산이 필요합니다. 이를 해결하기 위해 MCMC(Markov Chain Monte Carlo) 시뮬레이션을 사용합니다.

3.1 기존 방법: MH와 Gibbs

과거에는 Metropolis-Hastings (MH)나 Gibbs 샘플러를 썼습니다. 하지만 모형이 복잡해지면(차원이 높아지면) 이 알고리즘들은 “랜덤 워크(Random Walk)” 방식이라 효율이 떨어지고 시간이 오래 걸립니다.

3.2 현대적 방법: Hamiltonian Monte Carlo (HMC)와 NUTS

이 챕터에서 강조하는 것은 HMC입니다.

  • 비유: MH가 눈 가리고 산을 더듬어 내려가는 등산객이라면, HMC는 물리학의 원리를 이용해 썰매를 타고 등고선(전형적 집합, Typical Set)을 미끄러지듯 이동하는 것과 같습니다.
  • NUTS (No-U-Turn Sampler): HMC는 설정해야 할 파라미터가 많은데, NUTS는 이를 자동으로 조정하여 사용자가 쓰기 쉽게 만든 알고리즘입니다. Stanblavaan이 이 방식을 씁니다.

4. 실습: BSEM 분석 시나리오 및 데이터 생성

이제 실제 교육 데이터를 가정하여 분석해 봅시다.

4.1 시나리오: 교사의 자율성 지지가 학생의 학업 성취에 미치는 영향

  • 연구 문제: 과학 교사의 자율성 지지(Support)가 학생의 과학 흥미(Interest)를 매개로 학업 성취(Achievement)에 영향을 미치는가?
  • 분석 도구: R (jamovi Rj Editor 활용 가능) 및 blavaan 패키지.

4.2 데이터 생성 (R Code)

먼저 모의 데이터를 생성하겠습니다.

R

# 필요한 패키지 로드 (jamovi Rj Editor에서 실행 시 install.packages는 생략 가능할 수 있음)
if (!require("lavaan")) install.packages("lavaan")
if (!require("blavaan")) install.packages("blavaan")
if (!require("semTools")) install.packages("semTools")

set.seed(2026)

# 표본 크기
n <- 300

# 잠재변수 생성
# Support (교사 지지), Interest (흥미), Achieve (성취)
# 구조: Support -> Interest -> Achieve
Support <- rnorm(n, 0, 1)
Interest <- 0.6 * Support + rnorm(n, 0, 0.8) # 매개변수 (경로계수 0.6)
Achieve <- 0.5 * Interest + 0.3 * Support + rnorm(n, 0, 0.8) # 종속변수

# 관측변수 생성 (측정모형)
# 각 잠재변수당 3개의 문항
y_data <- data.frame(
  S1 = 1.0*Support + rnorm(n, 0, 0.5),
  S2 = 0.9*Support + rnorm(n, 0, 0.5),
  S3 = 1.1*Support + rnorm(n, 0, 0.5),
  
  I1 = 1.0*Interest + rnorm(n, 0, 0.5),
  I2 = 0.8*Interest + rnorm(n, 0, 0.5),
  I3 = 1.2*Interest + rnorm(n, 0, 0.5),
  
  A1 = 1.0*Achieve + rnorm(n, 0, 0.5),
  A2 = 0.9*Achieve + rnorm(n, 0, 0.5),
  A3 = 1.0*Achieve + rnorm(n, 0, 0.5)
)

head(y_data)

4.3 BSEM 모형 명세 및 추정 (blavaan)

blavaan은 R의 lavaan 문법을 그대로 쓰면서 베이지안 추정을 수행합니다.

R

# 모형 명세 (lavaan 문법)
model_syntax <- '
  # 측정 모형
  Support =~ S1 + S2 + S3
  Interest =~ I1 + I2 + I3
  Achieve =~ A1 + A2 + A3
  
  # 구조 모형
  Interest ~ a*Support
  Achieve ~ b*Interest + c*Support
  
  # 간접 효과
  ab := a*b
'

# 베이지안 추정 (Default priors 사용)
# mcmcfile=TRUE로 설정하면 Stan 코드 확인 가능
fit_bayes <- bsem(model_syntax, data = y_data, 
                  n.chains = 3, burnin = 500, sample = 1000,
                  target = "stan") 

summary(fit_bayes)

WaurimaL의 팁: jamovi의 semlj 모듈을 사용하면 메뉴 방식으로 SEM을 돌릴 수 있지만, 본문에서 다루는 세밀한 베이지안 설정(HMC, NUTS)을 위해서는 위와 같이 R 코드를 Rj Editor에 붙여넣어 실행하는 것이 가장 정확합니다.

5. 수렴 진단 (Convergence Diagnostics)

베이지안 분석에서는 결과가 하나의 점(point)으로 수렴하는 것이 아니라, 분포로 수렴해야 합니다. 분석이 잘 되었는지 확인하는 방법입니다.

  1. Trace Plots (이력 도표): 애벌레(caterpillar)처럼 뚱뚱하고 털이 난 모양이어야 합니다. 사슬(chain)들이 서로 잘 섞여 있어야 합니다.
  2. Posterior Density Plots (사후 밀도 도표): 매끄러운 정규분포 모양이면 좋습니다. 봉우리가 두 개(bimodality)라면 수렴에 문제가 있는 것입니다.
  3. Autocorrelation (자기상관): 시차(lag)가 늘어날수록 상관이 빨리 0으로 떨어져야 합니다.
  4. R^\hat{R} (Potential Scale Reduction Factor): 사슬 간 분산과 사슬 내 분산의 비율입니다. 1.0에 가까워야 하며, 1.01보다 크면 수렴하지 않은 것으로 봅니다. 최근 Stan에서는 Split R^\hat{R}을 사용하여 더 민감하게 진단합니다.

R

# 수렴 진단 그래프 (blavaan 기능)
plot(fit_bayes, type = "trace")
plot(fit_bayes, type = "acf")
blavInspect(fit_bayes, "neff") # 유효 표본 크기 확인
blavInspect(fit_bayes, "psrf") # R-hat 확인

6. 모형 평가 및 선택

6.1 사후 예측 점검 (Posterior Predictive Checking, PPC)

내 모형이 생성한 가상의 데이터(y~\tilde{y})가 실제 데이터(yy)와 얼마나 비슷한지 봅니다.

  • Bayesian p-value: 가상 데이터가 실제 데이터보다 극단적인 비율입니다. 0.5 근처면 모형이 데이터를 잘 설명하는 것이고, 0.05 미만이나 0.95 초과면 적합도에 문제가 있습니다.

6.2 모형 비교 지수

어떤 모형이 좋은 모형일까요?

  • BIC: 전통적인 지수이지만 베이지안에서는 한계가 있습니다.
  • DIC: 베이지안 편차 정보 기준. 작을수록 좋습니다.
  • LOOIC (Leave-One-Out Information Criterion): 최근 가장 권장되는 방법입니다. 데이터 하나를 빼고 예측해 보는 교차타당도(LOOCV) 개념을 근사한 것입니다.

R

# 적합도 지수 확인
fitMeasures(fit_bayes, c("bic", "dic", "looic"))

6.3 베이지안 모형 평균화 (Bayesian Model Averaging, BMA)

하나의 모형만 선택하는 것은 위험할 수 있습니다. BMA는 여러 가능한 모형들의 결과를 그 모형이 맞을 확률(Posterior Model Probability)로 가중 평균하여 예측력을 높입니다. 교육 현장처럼 불확실성이 큰 경우 유용합니다.

7. 고급 확장: 사전 분포를 통한 유연성

BSEM의 진정한 힘은 ‘유연성’에 있습니다.

7.1 근사 0 사전 분포 (Near-Zero Priors)와 CFA

전통적 CFA에서는 교차 적재량(cross-loading)을 무조건 0으로 고정합니다. 이는 현실적이지 않습니다. BSEM에서는 이를 “정확히 0은 아니지만 0에 아주 가까운(Approximately Zero)” 정규분포 N(0,0.01)N(0, 0.01)로 설정할 수 있습니다.

이렇게 하면 모형 적합도를 개선하면서도 이론적 구조를 유지할 수 있습니다.

7.2 근사 측정 불변성 (Approximate Measurement Invariance)

남녀 집단 간 비교를 할 때, 절편이나 적재량이 ‘완벽히’ 같을 필요는 없습니다. 그 차이가 근사적으로 0 (DifferenceN(0,0.001)Difference \sim N(0, 0.001))이라고 가정함으로써, 엄격한 불변성 기각 문제를 해결할 수 있습니다.

7.3 베이지안 정규화 (Regularization): Ridge & Lasso

표본은 적은데 변수가 많을 때(과적합 위험), 계수를 0으로 수축(shrinkage)시키는 사전 분포를 사용합니다.

  • Ridge: 정규분포 사전 분포 사용 (L2-norm).
  • Lasso: 이중 지수(Double Exponential) 또는 라플라스 분포 사용 (L1-norm). 계수를 0으로 더 강하게 보냅니다.

R

# 예: Lasso 패널티를 적용한 모형 (blavaan syntax 예시)
# dp는 double exponential(Lasso)의 파라미터
# prior("double_exp(0, 1)", coefficients) 와 같은 형태로 설정 가능

8. 결론

베이지안 SEM은 단순한 ‘또 다른 추정 방법’이 아닙니다. 이것은 연구자가 가진 사전 지식을 모형에 명시적으로 포함하고, 불확실성을 정직하게 다루며, 엄격한 빈도주의 제약을 유연하게 풀어주는 실용적인 도구입니다.

이 글에서 배운 HMC 알고리즘, 수렴 진단, LOOIC, 그리고 정보적 사전 분포의 활용은 여러분이 교육 현장의 복잡한 데이터를 더 깊이 이해하는 데 큰 도움이 될 것입니다.

참고문헌

  • Betancourt, M. (2018). A conceptual introduction to Hamiltonian Monte Carlo. arXiv preprint arXiv:1701.02434.
  • Gelman, A., Carlin, J. B., Stern, H. S., Dunson, D. B., Vehtari, A., & Rubin, D. B. (2014). Bayesian data analysis (3rd ed.). Chapman and Hall/CRC.
  • Kaplan, D., & Depaoli, S. (2012). Bayesian structural equation modeling. In R. H. Hoyle (Ed.), Handbook of structural equation modeling (pp. 650-673). Guilford Press.
  • Muthén, B. O., & Asparouhov, T. (2012). Bayesian structural equation modeling: A more flexible representation of substantive theory. Psychological Methods, 17(3), 313–335.
  • Vehtari, A., Gelman, A., & Gabry, J. (2017). Practical Bayesian model evaluation using leave-one-out cross-validation and WAIC. Statistics and Computing, 27(5), 1413–1432.
  • van de Schoot, R., Winter, S. D., Zondervan-Zwijnenburg, M., Ryan, O., & Depaoli, S. (2017). A systematic review of Bayesian applications in psychology: The last 25 years. Psychological Methods, 22(2), 217–239.