태그 보관물: r

Chap 30. 잠재곡선 모델링

안녕하세요?
이번에는 현대 교육 연구에서 개인의 변화를 추적하고 분석하는 가장 강력한 도구 중 하나인 잠재곡선 모델링(Latent Curve Modeling, LCM)에 대해 깊이 있게 다뤄보겠습니다.

종단적 성장 데이터(Longitudinal growth data)는 동일한 대상을 반복 측정하고, 동일한 척도를 사용하며, 관찰 시점을 정확히 알고 있다는 독특한 특징이 있습니다. 이러한 특징은 교육 현장에서 학생의 성취도 변화나 심리적 발달을 이해하는 데 엄청난 기회를 제공합니다.

이 글은 여러분이 jamovi(또는 R)를 활용해 직접 분석을 수행할 수 있도록 이론부터 실무까지 상세히 안내할 것입니다.

1. 잠재곡선 모델의 기초: 변화를 어떻게 정의할 것인가?

잠재곡선 모델의 핵심 아이디어는 각 개인의 반복 측정된 점수를 ‘개인별 궤적(Individual Trajectory)’으로 이해하는 것입니다. 이는 고전적인 분산 분석(ANOVA)이 집단 평균의 변화에 집중했던 것과 대조적입니다.

1.1 기본 방정식

가장 고전적인 잠재곡선 모델은 반복 측정된 관찰 점수(y[t]iy[t]_i)를 세 가지 성분으로 분해합니다.

y[t]i=f0i+B[t]f1i+u[t]iy[t]_i = f_{0i} + B[t] \cdot f_{1i} + u[t]_i

  1. 잠재 절편(f0if_{0i}): 개인 ii의 초기 수준 또는 기준점 점수입니다.
  2. 잠재 기울기(f1if_{1i}): 시간 경과에 따른 개인 ii의 변화량(성장률)입니다.
  3. 잔차(u[t]iu[t]_i): 특정 측정 시점 tt에서 발생하는 오차나 고유한 특징입니다.

여기서 기저 계수(B[t]B[t], Basis coefficients)는 변화의 형태를 결정합니다. 예를 들어, 4년간 매년 측정했다면 B[t]B[t]를 [0, 1, 2, 3]으로 고정하여 선형 성장을 가정할 수 있습니다.

2. 분석 프레임워크: SEM vs. MLM

성장 모델은 다층 모델(MLM)이나 구조방정식 모델(SEM) 프레임워크 모두에서 추정 가능하지만, 각각 장단점이 있습니다.

특징MLM (Multilevel Modeling)SEM (Structural Equation Modeling)
주요 장점비선형 궤적 직접 추정 가능, 소표본에 유리(REML 사용)복잡한 통계 모델의 일부로 포함 가능(예: 2차 요인 모델)
유연성시점 간 잔차 구조 제약적다양한 잔차 구조 설정 가능, 적합도 지수 제공

본 내용에서는 모형의 적합도를 평가하고 더 복잡한 인과 관계를 확장하기에 유리한 SEM 접근법에 초점을 맞춥니다.

3. [사례 연구] 초등학생의 어휘력 성장 분석

이론을 실생활에 적용해 봅시다. 한 초등학교에서 1학년부터 4학년까지 동일한 학생 100명을 대상으로 매년 ‘어휘력 검사(Vocabulary Test)’를 실시했다고 가정합시다.

3.1 모의 데이터 생성 배경 (Story)

  • 연구 질문: 학생들의 어휘력은 학년이 올라감에 따라 선형적으로 발달하는가? 초기 어휘력 수준이 높은 학생이 더 빠르게 성장하는가?
  • 데이터 구성: Student_ID, Grade1, Grade2, Grade3, Grade4, Family_SES(가족 사회경제적 지위).

3.2 jamovi/R 분석 가이드

jamovi의 SEMLj 모듈이나 R의 lavaan 패키지를 사용하여 분석을 수행할 수 있습니다.

R을 활용한 선형 성장 모델링 예시 코드:

R

# 1. 필요한 패키지 로드
if(!require(lavaan)) install.packages("lavaan")
library(lavaan)

# 2. 교육현장 모의 데이터 생성 (100명의 학생)
set.seed(2026) # 결과 재현을 위한 설정
n <- 100

# 가상 요인 생성
SES <- rnorm(n, 0, 1) # 사회경제적 지위 (표준화 점수)
intercept <- 50 + 5 * SES + rnorm(n, 0, 2) # 초기치 (SES 영향 포함)
slope <- 3 + 1.5 * SES + rnorm(n, 0, 0.5) # 성장률 (SES 영향 포함)

# 4개 시점 데이터 생성 (선형 성장 가정) 
Grade1 <- intercept + rnorm(n, 0, 1)
Grade2 <- intercept + 1 * slope + rnorm(n, 0, 1)
Grade3 <- intercept + 2 * slope + rnorm(n, 0, 1)
Grade4 <- intercept + 3 * slope + rnorm(n, 0, 1)

# 데이터프레임 구축 
vocab_data <- data.frame(Grade1, Grade2, Grade3, Grade4, SES)

# 3. 잠재곡선 모델(LCM) 정의
# i(intercept)와 s(slope)를 정의하고 기저 계수를 [0, 1, 2, 3]으로 고정합니다. 
lcm_model <- '
  i =~ 1*Grade1 + 1*Grade2 + 1*Grade3 + 1*Grade4
  s =~ 0*Grade1 + 1*Grade2 + 2*Grade3 + 3*Grade4

  # 조건부 모델: SES가 i와 s를 예측
  i ~ SES
  s ~ SES
'

# 4. 모델 추정 및 결과 보고
fit <- growth(lcm_model, data = vocab_data)
summary(fit, fit.measure = TRUE, standardized = TRUE)

3.3 결과 해석 가이드

분석 결과에서 여러분이 주목해야 할 핵심 파라미터는 다음과 같습니다.

1) 고정 효과 (Fixed Effects)

  • i ~ 1 (절편 평균): 우리 학교 1학년 학생들의 평균 어휘력 점수입니다.
  • s ~ 1 (기울기 평균): 학생들이 매년 평균적으로 몇 점씩 성장했는지를 나타냅니다.

2) 랜덤 효과 (Random Effects / Variances)

  • i ~~ i (절편 분산): 학생들 간의 초기 어휘력 차이가 얼마나 큰지 보여줍니다.
  • s ~~ s (기울기 분산): 학생마다 성장 속도가 얼마나 다른지(개별성)를 나타냅니다.

3) 예측 요인 해석 (Regression Paths)

  • s ~ SES: 이 값이 통계적으로 유의한 양수라면, “가정의 사회경제적 지위가 높을수록 어휘력 성장 속도가 더 빠르다”는 교육적 결론을 내릴 수 있습니다.

4. jamovi에서 수행하는 방법

R 코드가 익숙하지 않다면, jamoviSEMLj 모듈을 사용해 보세요.

  1. 데이터 준비: 위 R 스크립트로 생성한 vocab_data를 CSV로 저장하여 jamovi에서 엽니다.
  2. 모듈 실행: SEMLj -> Syntax Mode 또는 Growth Model 클릭.
  3. 변수 배치: Grade1~4를 각 시점(Time points)에 배치합니다.
  4. 기저 계수 설정: 학년별로 [0, 1, 2, 3]을 직접 입력하여 선형 모델을 구성합니다.
  5. 예측 변수: SESCovariates 칸에 넣어 성장에 미치는 영향을 확인합니다.

5. 모델의 단계적 확장과 해석

분석은 보통 간단한 모델에서 시작하여 점진적으로 매개변수를 추가합니다.

5.1 무변화 모델 (Level-only Model)

성장이 없다고 가정하는 모델입니다. 만약 이 모델의 적합도가 나쁘다면(보통 나쁩니다), 이는 학생들의 점수가 시간에 따라 변화했음을 의미합니다.

5.2 선형 성장 모델 (Linear Growth Model)

매년 일정한 속도로 성장한다고 가정합니다.

  • 평균(α2\alpha_2): 전체 학생의 평균적인 연간 성장률입니다.
  • 변량(ψ22\psi_{22}): 학생들 간에 성장 속도 차이가 얼마나 큰지 보여줍니다.
  • 공분산(ψ21\psi_{21}): 초기 수준(절편)과 성장률(기울기) 사이의 관계입니다. 교육적으로는 종종 초기값이 낮은 학생이 더 빨리 성장하는지(보상 효과)를 확인하는 데 쓰입니다.

5.3 잠재 기저 모델 (Latent Basis Model)

변화의 형태를 데이터가 스스로 결정하게 하는 모델입니다. 첫 시점을 0, 마지막 시점을 3으로 고정하고 중간 시점(λ22,λ32\lambda_{22}, \lambda_{32})을 추정합니다. 만약 추정된 값이 1.5, 2.5 등으로 나온다면, 성장이 특정 시기에 더 가속화되었음을 알 수 있습니다.

# 잠재 기저 모델 정의
latent_basis_model <- '
  # 절편(i) 정의
  i =~ 1*Grade1 + 1*Grade2 + 1*Grade3 + 1*Grade4
  
  # 잠재 기저(s) 정의: 첫 시점 0, 끝 시점 3 고정. 중간은 라벨(L2, L3)을 붙여 추정
  s =~ 0*Grade1 + L2*Grade2 + L3*Grade3 + 3*Grade4

  # i와 s의 평균 및 분산/공분산 추정 (growth 함수가 자동 수행)
'

# 모델 실행
fit_basis <- growth(latent_basis_model, data = vocab_data)

# 결과 보고
summary(fit_basis, fit.measure = TRUE, standardized = TRUE)

6. 결측치와 시간 지표의 유연성

실제 연구에서는 학생들이 전학을 가거나 특정 검사를 빠뜨리는 경우가 흔합니다.

  • 결측치 처리: SEM 프레임워크는 완전정보 최대우도법(FIML)을 사용하여 결측치가 있는 데이터를 효과적으로 처리합니다. 이는 데이터가 누락된 학생을 제외하지 않고, 남아있는 정보를 모두 사용하여 추정치를 얻는 방식입니다.
  • 가속 종단 설계(Accelerated Longitudinal Study): 짧은 기간 동안 여러 연령대의 코호트를 관찰하여, 장기적인 발달 과정을 짧은 시간 안에 재구성하는 방식입니다. 예를 들어, 1-2학년 집단과 2-3학년 집단을 동시에 관찰하여 1학년부터 3학년까지의 궤적을 연결할 수 있습니다.

7. 성장에 영향을 미치는 요인 (조건부 모델)

학생들의 성장 궤적을 설명하기 위해 시간-불변 예측 변수(Time-invariant predictors)를 추가할 수 있습니다.

f0i=α00+α01SESi+d0if_{0i} = \alpha_{00} + \alpha_{01} \cdot SES_i + d_{0i}

f1i=α10+α11SESi+d1if_{1i} = \alpha_{10} + \alpha_{11} \cdot SES_i + d_{1i}

위 식에서 사회경제적 지위(SES)가 기울기(f1if_{1i})의 유의한 예측 요인이라면, “가정 형편이 좋을수록 어휘력 성장 속도가 더 빠르다”는 결론을 내릴 수 있습니다.

8. 결론 및 향후 전망

잠재곡선 모델은 교육 현장의 복잡한 변화를 포착하는 데 필수적인 도구입니다. 최근에는 다음과 같은 고급 모델로 발전하고 있습니다:

  • 동적 SEM(DSEM): 시계열 데이터의 오차 간 자기회귀 효과까지 고려합니다.
  • 성장 혼합 모델(GMM): 서로 다른 성장 궤적을 가진 잠재 집단(예: 상위권, 정체권, 하락권)을 찾아냅니다.
  • 잠재 차이 점수 모델(LDS): 시점 간 변화량 자체의 역동성을 분석합니다.

이 도구들을 통해 여러분의 데이터 속에 숨겨진 변화의 이야기를 명확하게 들려주시길 바랍니다.

참고문헌

  • Bell, R. Q. (1953). Convergence: An accelerated longitudinal approach. Child Development, 24(3/4), 145–152.
  • Bell, R. Q. (1954). An experimental test of the accelerated longitudinal approach. Child Development, 25(4), 281–286.
  • Grimm, K. J., Ram, N., & Estabrook, R. (2017). Growth modeling: Structural equation and multilevel modeling approaches. Guilford Press.
  • McArdle, J. J. (1988). Dynamic but structural equation modeling of repeated measures data. In J. R. Nesselroade & R. B. Cattell (Eds.), Handbook of multivariate experimental psychology (pp. 561–614). Springer.
  • Meredith, W., & Tisak, J. (1990). Latent curve analysis. Psychometrika, 55(1), 107–122.
  • Muthén, B., & Shedden, K. (1999). Finite mixture modeling with mixture outcomes using the EM algorithm. Biometrics, 55(2), 463–469.
  • Wishart, J. (1938). Growth-rate determinations in nutrition studies with the bacon pig, and their analysis. Biometrika, 30(1/2), 16–28.

Chap 29. 혼합모형(Mixture Models)

안녕하세요?
이번에는 교육 연구에서 집단의 이질성을 파악하는 아주 강력한 도구인 혼합 모형(Mixture Models)에 대해 깊이 있게 다루어 보겠습니다.

과거 아리스토텔레스 시대부터 과학의 기초는 사물을 유사성에 따라 분류하는 것이었습니다. 교육 현장에서도 우리는 학생들을 단순히 ‘전체 평균’으로 보는 것이 아니라, 서로 다른 학습 양식이나 심리적 특성을 가진 여러 잠재적 집단(Latent Groups)으로 이해할 필요가 있습니다.

1. 혼합 모형의 개념과 기초

혼합 모형은 데이터가 여러 개의 하위 분포(Components)가 합쳐진 형태라고 가정하는 통계적 접근법입니다.

1.1. 왜 혼합 모형인가?

전통적인 군집 분석(K-means 등)은 학생을 특정 집단에 ‘딱’ 잘라 배정합니다(Crisp membership). 반면, 혼합 모형은 확률적 소속(Probabilistic membership)을 제공합니다. 예를 들어, 한 학생이 ‘자기주도형’ 집단에 속할 확률이 85%, ‘교사의존형’ 집단에 속할 확률이 15%라고 알려주는 식이죠. 이는 분류의 불확실성을 과학적으로 다룰 수 있게 해줍니다.

1.2. 주요 모델의 유형

심리학과 교육학에서 가장 많이 쓰이는 형태는 다음과 같습니다.

  • 잠재 프로파일 분석 (LPA): 연속형 변수(예: 시험 점수, 자아존중감 척도)를 사용하여 집단을 구분합니다.
  • 잠재 계층 분석 (LCA): 범주형/이분형 변수(예: 예/아니오 설문 응답)를 사용하여 집단을 구분합니다.

2. 모형의 추정과 의사결정

혼합 모형을 성공적으로 구현하기 위해서는 몇 가지 중요한 통계적 결정을 내려야 합니다.

2.1. EM 알고리즘과 지역 최적해(Local Optima)

혼합 모형은 보통 EM(Expectation-Maximization) 알고리즘을 통해 추정됩니다. 이 과정에서 주의할 점은 ‘가장 좋은 해’라고 생각한 결과가 사실은 특정 조건에서만 나타나는 지역 최적해(Local Optima)일 수 있다는 점입니다.

WaurimaL의 팁: 이를 방지하기 위해 무작위 시작값(Random Starts)을 충분히(예: 1,000 ~ 5,000개) 설정하는 것이 필수적입니다. 시작값이 적으면 데이터의 실제 구조를 놓칠 위험이 큽니다.

2.2. 공분산 구조의 결정

데이터의 형태(부피, 모양, 방향)를 어떻게 가정하느냐에 따라 14가지 이상의 모델이 존재합니다.

모델 유형부피 (Volume)모양 (Shape)방향 (Orientation)특징
EII동일구형해당 없음가장 제약이 많은 형태 (K-means와 유사)
VII가변구형해당 없음집단별 크기는 다르지만 모양은 동그라미
VVV가변가변가변가장 유연하며 데이터에 최적화됨

2.3. 집단 수 선정 (BIC와 ICL)

“우리 반 학생들은 몇 개의 유형으로 나뉘는가?”를 결정할 때 가장 널리 쓰이는 지표는 BIC(Bayesian Information Criterion)입니다. 일반적으로 BIC 값이 가장 작은 모델을 선택합니다. 만약 집단 간 구분이 명확한 모델을 원한다면 ICL(Integrated Completed Likelihood) 지표를 함께 고려하는 것이 좋습니다.

3. 교육 현장의 사례: “학습 동기 프로파일 분석”

이해를 돕기 위해 가상의 고등학생 200명의 데이터를 생성하여 분석해 보겠습니다.

3.1. 모의 데이터 시나리오

  • 변수: 내재적 동기(IM), 외재적 동기(EM), 학습 불안(ANX), 자기효능감(SE)
  • 잠재된 스토리: 1. 고동기형: 모든 점수가 높음. 2. 불안형: 동기는 있으나 불안도가 매우 높음. 3. 무기력형: 모든 점수가 전반적으로 낮음.

3.2. R을 이용한 분석 코드

Jamovi의 snowRMM 모듈로도 가능하지만, 보다 정밀한 제어를 위해 R의 mclust 혹은 mixture 패키지를 권장합니다.

R

# 필요한 패키지 로드
library(mclust)
library(tidyverse)

# 1. 모의 데이터 생성 (교수 재량)
set.seed(2026)
n <- 200
# 세 개의 집단 생성 (고동기, 불안, 무기력)
g1 <- matrix(rnorm(n*0.4*4, mean=4, sd=0.5), ncol=4) # 고동기
g2 <- matrix(rnorm(n*0.3*4, mean=c(3,4,4,3), sd=0.6), ncol=4) # 불안형
g3 <- matrix(rnorm(n*0.3*4, mean=2, sd=0.7), ncol=4) # 무기력
data <- rbind(g1, g2, g3)
colnames(data) <- c("IM", "EM", "ANX", "SE")

write.csv(data,"chap29.csv",row.names = F)

# 2. 혼합 모형 적합 (집단 수 1~5개 테스트)
fit <- Mclust(data, G=1:5)

# 3. 결과 요약 및 집단 수 확인
summary(fit) 
# 최적 모델과 집단 수(G) 출력

# 4. 시각화: 프로파일 플롯
means <- fit$parameters$mean
matplot(means, type="b", pch=1:fit$G, main="Student Learning Profiles")

# 5. 모형 적합 (예: mclust 사용)
fit1 <- Mclust(data, G=3)

# 6. 1번 집단 80개, 2번 집단 60개, 3번 집단 60개를 하나의 벡터로 만듭니다.
actual_classes <- c(rep(1, 80), rep(2, 60), rep(3, 60))

# 7. 예측된 집단 할당 (MAP 분류)
# 각 관측치를 가장 높은 사후 확률을 가진 집단에 할당합니다.
predicted_classes <- fit1$classification

# 8. 실제 집단 정보와 비교하여 ARI 계산
# actual_classes는 데이터 세트에 포함된 실제 집단 레이블입니다.
final_ari <- adjustedRandIndex(actual_classes, predicted_classes)

# 9. 결과 해석
# 결과 출력
cat("분석 결과 ARI 수치:", final_ari, "\n")

4. 분석 결과의 해석과 주의사항

분석이 끝났다고 해서 바로 “우리 학생들은 3개 집단이다!”라고 결론지어서는 안 됩니다.

4.1. 직접적 vs 간접적 적용

  • 직접적 적용: 실제로 데이터 안에 질적으로 다른 ‘진짜 집단’이 존재한다고 믿는 경우입니다.
  • 간접적 적용: 데이터가 단순히 비정규분포(기울어짐 등)를 띠고 있어서, 이를 설명하기 위해 여러 개의 정규분포를 빌려 쓰는 경우입니다.

대부분의 사회과학 데이터는 후자인 경우가 많습니다. 따라서 ‘집단 분류’ 자체에 매몰되기보다는, 전체적인 데이터의 이질성을 이해하는 수단으로 혼합 모형을 활용해야 합니다.

4.2. 분류 정확도 (ARI)

분석 결과로 나온 집단 분류가 얼마나 정확한지 판단하기 위해 ARI(Adjusted Rand Index)를 확인합니다. ARI가 0.8 이상이면 ‘우수’, 0.65 이상이면 ‘수용 가능’한 수준으로 봅니다.

5. 결론: 연구자를 위한 제언

혼합 모형은 매우 유연하지만, 그만큼 오용하기 쉽습니다.

  1. 시각화가 우선입니다: 분석 전 산점도나 요인 점수 분포를 통해 실제로 집단이 나뉠 만한 구조인지 먼저 확인하세요.
  2. 이론적 근거를 가지세요: 통계 지표(BIC)가 4개를 추천하더라도, 교육학적 이론으로 설명되지 않는 집단이라면 모형을 재검토해야 합니다.
  3. 복제 가능성을 염두에 두세요: 혼합 모형은 과적합(Overfitting)의 위험이 크므로, 다른 샘플에서도 동일한 구조가 나타나는지 확인하는 과정이 필요합니다.

참고문헌 (APA Style)

  • Bauer, D. J., & Curran, P. J. (2003). Distributional assumptions of growth mixture models: Implications for overextraction of latent trajectory classes. Psychological Methods, 8(3), 338–363.
  • Celeux, G., & Govaert, G. (1995). Gaussian parsimonious clustering models. Pattern Recognition, 28(5), 781–793.
  • Dempster, A. P., Laird, N. M., & Rubin, D. B. (1977). Maximum likelihood from incomplete data via the EM algorithm. Journal of the Royal Statistical Society: Series B (Methodological), 39(1), 1–22.
  • McLachlan, G. J., & Peel, D. (2000). Finite mixture models. Wiley.
  • Steinley, D. (2026). Mixture Models. In The SAGE Handbook of Quantitative Methods in Psychology. SAGE. (Original work published 2023)
  • Steinley, D., & Brusco, M. J. (2011). Evaluating the performance of model-based clustering: Recommendations and cautions. Psychological Methods, 16(1), 63–79.

Chap 28. 적은 표본과 많은 변수를 가진 구조방정식 모델링

안녕하세요? 이번에는 ‘표본은 작고 변수는 많은(Small NN, Large pp)’ 상황에서의 구조방정식 모델링(Structural Equation Modeling, SEM)입니다. 현장에서 교육 연구를 진행하다 보면 설문 문항(변수)은 수백 개에 달하는데, 특정 소수 집단이나 특수 학교 학생들을 대상으로 하여 표본을 충분히 확보하지 못하는 경우가 비일비재하죠.

이런 고차원적 문제(High-dimensional problems) 상황에서 기존의 통계적 방법론을 그대로 적용하면 어떤 오류가 발생하는지, 그리고 이를 해결하기 위한 최신 기법들은 무엇인지 함께 알아보겠습니다.

1. 작은 표본과 많은 변수의 딜레마

구조방정식(SEM)의 핵심 강점은 측정 오차를 분리하고 잠재 변수 간의 관계를 명확히 추정하는 것입니다. 하지만 본래 SEM은 대표본(NN)과 상대적으로 적은 변수(pp)를 가정하고 개발된 점근적(Asymptotic) 방법론입니다.

교육 연구 현장에서 흔히 발생하는 문제는 다음과 같습니다.

  • 수렴 실패 및 불안정성: 표본이 적으면 표본 공분산 행렬(SS)이 ‘full rank’가 되지 않아 수렴에 수천 번의 반복 계산이 필요하거나 아예 수렴하지 않을 수 있습니다.
  • 다중공선성: 변수가 많아지면 변수 간 상관관계가 지나치게 높아져 행렬이 근사 특이(Near-singular) 상태에 빠지기 쉽습니다.
  • 부적절한 적합도: 점근적 이론에 기반한 카이제곱(χ2\chi^2) 통계량은 변수가 많고 표본이 작을 때 모델을 과도하게 기각하는 경향(Type I error 인플레이션)이 있습니다.

[사례 연구: 학업 스트레스와 학교 적응]

어느 중학교의 학습 지원 대상 학생 50명을 대상으로 ‘학업 스트레스 지표(150문항)’를 조사했다고 가정해 봅시다. 150개의 문항(변수)에 대해 표본이 50명뿐이라면, 기존의 최대우도법(ML)은 거의 확실하게 오류를 뱉어낼 것입니다.

2. 모델 매개변수 추정의 해결책

표본 공분산 행렬 SS가 특이 행렬(Singular matrix)이 되어 계산이 불가능할 때, 우리는 릿지(Ridge) 방법을 고려할 수 있습니다.

2.1 릿지 최대우도법 (Ridge ML)

전통적인 방법은 SS의 대각선에 일정한 상수를 더해 양의 정구조(Positive definite) 행렬로 만드는 것입니다.

  • Yuan & Chan (2008) 제안: SS 대신 Sa=S+aIS_a = S + aI (여기서 a=p/Na = p/N)를 사용하여 추정의 속도와 수렴율을 획기적으로 높였습니다.

2.2 릿지 일반화최소자승법 (Ridge GLS)

일반적인 GLS는 표본이 작고 변수가 많을 때 매우 불안정합니다. 이를 보완하기 위해 가중치 행렬 WW를 조정한 릿지 GLS가 제안되었습니다.

  • Yang & Yuan (2019): 비정규 분포 데이터에서 릿지 GLS가 NML(정규분포 기반 ML)보다 효율적인 추정치를 제공함을 입증했습니다.

2.3 베이지안(Bayesian) 접근법

베이지안 방식은 점근적 이론에 의존하지 않기 때문에 소표본 연구에서 강력한 대안이 됩니다.

  • 사전 정보(Priors)의 활용: 과거 연구나 전문가 견해를 바탕으로 사전 분포를 설정하면, 데이터가 부족하더라도 안정적인 추정이 가능합니다.
  • 주의사항: 잘못된 사전 정보를 설정할 경우 편향된 결과를 초래할 수 있으므로 신중해야 합니다.

3. 모델 적합도 평가의 교정

전통적인 TMLT_{ML} 통계량은 소표본에서 믿을 수 없습니다. 이를 교정하기 위한 다양한 ‘휴리스틱’ 및 ‘통계적 교정’ 방법들이 제안되었습니다.

교정 방법주요 특징추천 상황
Swain 교정(N1)(N-1)NSwainN_{Swain}으로 대체하여 교정일반적인 소표본
Yuan & Bentler (2017) Trml(c20)T_{rml}^{(c20)}경험적 결과에 기반한 평균 및 분산 교정비정규 분포 및 소표본
Tian & Yuan (2019) Ta(b)T_{a}^{(b)}2,000개 이상의 조건에서 캘리브레이션된 최신 통계량변수가 매우 많은 경우(p120p \le 120)

4. 실전 가이드: R을 활용한 소표본 SEM 분석

많은 교육학도가 사용하는 jamovi의 기본 SEMLj 모듈은 이러한 고차원 교정 기능을 모두 제공하지는 못합니다. 따라서 R의 lavaan 패키지를 활용한 분석이 권장됩니다.

[모의 데이터 시나리오]

  • 스토리: ‘교사 효능감’과 ‘직무 만족도’의 관계 모델링.
  • 상황: 특수 교사 80명 대상(N=80N=80), 문항 수는 총 60개(p=60p=60).

R

# 필요한 라이브러리 로드
library(lavaan)

# 1. 모의 데이터 생성 (N=80, p=60인 고차원 데이터)
set.seed(2026)
data <- matrix(rnorm(80 * 60), 80, 60)
colnames(data) <- paste0("v", 1:60)
df <- as.data.frame(data)

# 2. 모델 정의 (간략화된 예시)
model <- '
  F1 =~ v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8 + v9 + v10
  F2 =~ v11 + v12 + v13 + v14 + v15 + v16 + v17 + v18 + v19 + v20
  F2 ~ F1
'

# 3. Satorra-Bentler 교정 적용 분석 (소표본/비정규성 대비)
fit_sb <- sem(model, data = df, test = "Satorra.Bentler")

# 4. 결과 출력
summary(fit_sb, fit.measures = TRUE, standardized=TRUE)

5. 결론 및 제언

소표본과 다변수 상황에서의 SEM은 “불가능한 작업”이 아니라 “세심한 교정이 필요한 작업”입니다. 분석 시 다음 원칙을 기억하세요.

  1. 릿지 추정법을 통해 수렴 불안정성을 해결하세요.
  2. 단순 카이제곱 대신 경험적으로 교정된 통계량(TrmlT_{rml}, Ta(b)T_{a}^{(b)})을 확인하세요.
  3. 표준 오차의 정확성을 위해 부트스트랩(Bootstrap) 기법 활용을 검토하세요.
  4. 가능하다면 강력한 사전 정보를 바탕으로 한 베이지안 SEM을 고려해 보시기 바랍니다.

참고문헌

  • Marcoulides, K. M., Yuan, K.-H., & Deng, L. (2022). Structural equation modeling with small samples and many variables. In Handbook of Structural Equation Modeling.
  • Yuan, K.-H., & Chan, W. (2008). Structural equation modeling with near singular covariance matrices. Computational Statistics & Data Analysis, 52, 4842-4858.
  • Tian, Y., & Yuan, K.-H. (2019). Mean and variance corrected test statistics for structural equation modeling with many variables. Structural Equation Modeling, 26, 827-846.

WaurimaL의 한 마디:

이 내용이 여러분의 학위 논문이나 연구 설계에 실질적인 도움이 되길 바랍니다. 혹시 여러분의 연구 데이터에서 “표본이 너무 적어 분석이 안 된다”는 경고 메시지가 뜬다면, 제가 제안한 릿지(Ridge) 옵션을 먼저 검토해 보시는 건 어떨까요?

Chap 13. jamovi와 lavaan을 활용한 구조방정식 모델링(SEM)

안녕하세요!

구조방정식은 단순히 변수 간의 관계를 보는 것을 넘어, 우리가 직접 관찰할 수 없는 ‘잠재적인 마음의 상태(잠재변수)’를 측정하고 그들 사이의 복잡한 인과관계를 모형화할 수 있게 해주는 아주 매력적인 방법론입니다.

이 장에서는 실제 교육 현장에서 만날 수 있는 시나리오를 통해 jamoviR(lavaan)을 활용하여 구조방정식을 어떻게 수행하는지 아주 상세히 다룹니다.

1. 들어가며: 왜 구조방정식인가?

우리가 교육 현장에서 마주하는 개념들—예를 들어 ‘학업 동기’, ‘교사 지지’, ‘자기효능감’—은 단 하나의 시험 점수나 설문 문항으로 완벽히 설명하기 어렵습니다. 구조방정식 모델링(Structural Equation Modeling, SEM)은 이러한 잠재변수(Latent Factor)를 여러 개의 측정지표(Indicator)를 통해 파악하고, 이들 간의 구조적 관계를 분석하는 통계 기법입니다.

전통적으로 SEM은 Mplus, Amos와 같은 고가의 상용 프로그램을 주로 사용해 왔으나, 최근에는 jamoviSEMLj 모듈이나 R의 lavaan 패키지와 같은 오픈소스 도구들이 발전하면서 누구나 정교한 분석을 수행할 수 있게 되었습니다.

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

이해를 돕기 위해 학교 현장의 이야기를 담은 데이터를 가정해 봅시다.

연구 시나리오: “교사의 정서적 지지가 학생의 학업 성취에 미치는 영향”

  • 독립변수(X): 교사 지지(Teacher Support) – ‘정서적 지지(x1)’와 ‘학업적 지지(x2)’로 측정.
  • 매개변수(M): 학업 참여(Engagement) – ‘행동적 참여(m1)’와 ‘정서적 참여(m2)’로 측정.
  • 결과변수(Y): 학업 성취(Achievement) – ‘수학 점수(y1)’와 ‘국어 점수(y2)’로 측정.

연구자는 교사의 지지가 학생의 참여도를 높이고, 이것이 최종적으로 성취도 향상으로 이어지는지 확인하고자 합니다.

2.1. 모의 데이터 생성 (R 코드)

분석 실습을 위해 N=500N=500 명의 데이터를 생성합니다. 실제 상황과 유사하게 일부 데이터는 무작위로 누락(MCAR)된 것으로 가정합니다.

R

# R을 활용한 모의 데이터 생성
set.seed(2025)
library(MASS)

# 상관 행렬 설정 (교사지지, 참여, 성취 간의 관계)
n <- 500
mu <- rep(0, 6)
sigma <- matrix(c(1.0, 0.6, 0.3, 0.3, 0.2, 0.2,
                  0.6, 1.0, 0.3, 0.3, 0.2, 0.2,
                  0.3, 0.3, 1.0, 0.7, 0.4, 0.4,
                  0.3, 0.3, 0.7, 1.0, 0.4, 0.4,
                  0.2, 0.2, 0.4, 0.4, 1.0, 0.7,
                  0.2, 0.2, 0.4, 0.4, 0.7, 1.0), 6, 6)

data <- mvrnorm(n, mu, sigma)
colnames(data) <- c("x1", "x2", "m1", "m2", "y1", "y2")
df <- as.data.frame(data)

# 결측치 주입 (MCAR 가정)
df$m1[sample(1:n, 50)] <- NA
df$y1[sample(1:n, 70)] <- NA

# 데이터 저장 (jamovi에서 불러오기 위함)
# write.csv(df, "school_sem_data.csv", row.names = FALSE)

3. 데이터 준비 및 기초 분석

3.1. 데이터 불러오기 및 결측치 처리

Mplus나 lavaan은 텍스트 형태의 데이터를 읽습니다. jamovi에서는 .csv 파일을 바로 불러올 수 있습니다.

  • 결측치 코드: 데이터셋 내에 공백 대신 -999와 같은 특정 숫자를 사용할 수 있지만, jamovi와 lavaan은 시스템 결측치(NA)를 직접 처리하는 데 매우 능숙합니다.
  • FIML(Full-Information Maximum Likelihood): 결측치가 있을 때 케이스를 삭제(Listwise deletion)하지 않고, 사용 가능한 모든 정보를 활용하여 모수를 추정하는 방식입니다. jamovi와 lavaan 모두 이 방식을 기본 혹은 옵션으로 제공합니다.

3.2. 기초 통계(Descriptive Statistics) 확인

분석 전, 변수들의 평균, 표준편차, 그리고 상관관계를 확인해야 합니다. jamovi의 Exploration -> Descriptives 메뉴를 통해 데이터의 분포를 살핍니다.

변수평균표준편차결측치 개수
x1 (정서적 지지)-0.010.990
m1 (행동적 참여)0.021.0150
y1 (수학 점수)-0.040.9870

4. 관찰변수 경로분석 (Manifest Path Analysis)

가장 먼저, 요인으로 묶지 않고 개별 변수(x1, m1, y1) 간의 관계를 분석해 봅시다.

4.1. 분석 방법 (jamovi SEMLj)

  1. SEMLj -> Syntax Mode 혹은 Path Analysis 메뉴 선택.
  2. Model 설정:
    • m1 ~ x1 (교사 지지가 참여를 예측)
    • y1 ~ x1 + m1 (교사 지지와 참여가 성취를 예측)
  3. 옵션: Direct and indirect effects를 체크하여 매개효과를 확인합니다.

4.2. 주요 결과 해석

  • 직접 효과(Direct Effect): 교사 지지(x1x_1)가 성취(y1y_1)에 직접 미치는 영향.
  • 간접 효과(Indirect Effect): x1m1y1x_1 \rightarrow m_1 \rightarrow y_1로 이어지는 경로의 곱(a×ba \times b).
  • 유의성 검정: 간접효과 검정 시 Bootstrapping(1000회 이상)을 권장합니다. 이는 곱해진 값의 분포가 정규분포를 따르지 않을 수 있기 때문입니다.

5. 확인적 요인분석 (Confirmatory Factor Analysis, CFA)

이제 측정 도구가 제대로 작동하는지 확인합니다. ‘교사 지지’라는 잠재변수(X)가 x1, x2에 의해 잘 설명되는지 보는 과정입니다.

5.1. 모델 식별 및 제약

  • 식별(Identification): 잠재변수는 단위가 없으므로, 첫 번째 측정지표의 부하량을 1로 고정하거나 잠재변수의 분산을 1로 고정하여 척도를 부여합니다.
  • 측정 모델 구성:
    • X =~ x1 + x2
    • M =~ m1 + m2
    • Y =~ y1 + y2

5.2. 적합도 지수 (Fit Indices)

모델이 실제 데이터와 얼마나 일치하는지 평가합니다.

  • χ2\chi^2 검정: p>.05p > .05이면 좋으나 표본 크기에 민감합니다.
  • CFI / TLI: .90 이상(가급적 .95 이상) 권장.
  • RMSEA: .08 이하(가급적 .05 이하) 권장.
  • SRMR: .08 이하 권장.

6. 잠재 경로 분석: 전체 구조모델 (Full SEM)

측정 모델(CFA)과 구조 모델(Path)을 결합합니다.

6.1. lavaan 문법 (R/jamovi 공용)

jamovi의 syntax 창이나 R에서 아래와 같이 입력합니다.

R

# 전체 SEM 모델 설정
model <- '
  # 측정 모델 (CFA)
  Teacher_Support =~ x1 + x2
  Engagement      =~ m1 + m2
  Achievement     =~ y1 + y2

  # 구조 모델 (Path)
  Engagement  ~ a*Teacher_Support
  Achievement ~ b*Engagement + c*Teacher_Support

  # 간접효과 및 총효과 정의
  indirect := a*b
  total    := c + (a*b)
'
# 모델 실행 (FIML 결측치 처리 포함)
fit <- sem(model, data = df, missing = "fiml")
summary(fit, fit.measures = TRUE, standardized = TRUE)

7. 고급 분석 주제 (Mplus 및 R 역량)

7.1. 잠재성장곡선 모델 (Latent Growth Curve Model, LGM)

시간에 따른 학생의 성취도 변화(초기치와 변화율)를 분석할 때 사용합니다.

  • i (Intercept): 모든 시점의 부하량을 1로 고정.
  • s (Slope): 시간의 흐름(0, 1, 2, 3 등)에 따라 부하량 설정.

7.2. 다집단 분석 (Multigroup Analysis)

성별이나 학교 유형에 따라 모델의 경로가 다른지 확인합니다. ‘형태 동일성’, ‘측정 동일성’ 등을 단계별로 검증해야 합니다.

7.3. 몬테카를로 시뮬레이션 (Monte Carlo Simulation)

특정 표본 크기에서 내 모델이 얼마나 정확한 파워(통계적 검정력)를 갖는지 미리 시뮬레이션해 볼 수 있습니다. 주로 R과 Mplus에서 강력한 기능을 제공합니다.

8. 결론 및 제언

구조방정식은 단순한 통계 기법을 넘어 연구자의 이론적 가설을 검증하는 강력한 논리 도구입니다. jamovi와 lavaan을 활용하면 복잡한 수식 없이도 직관적으로 모델을 구성할 수 있습니다. 여러분의 교육 연구가 이 도구를 통해 더욱 깊이 있고 정교해지기를 기대합니다.

참고문헌 (APA Style)

  • Arbuckle, J. L. (2014). Amos 23.0 User’s Guide. Chicago: IBM SPSS.
  • Byrne, B. M. (2012). Structural equation modeling with Mplus: Basic concepts, applications, and programming. New York: Routledge.
  • Enders, C. K. (2022). Applied missing data analysis (2nd ed.). New York: Guilford Press.
  • Geiser, C. (2021). Longitudinal structural equation modeling with Mplus: A latent state-trait perspective. New York: Guilford Press.
  • Muthén, L. K., & Muthén, B. O. (1998-2017). Mplus user’s guide (8th ed.). Los Angeles, CA: Authors.
  • Rosseel, Y. (2012). lavaan: An R package for structural equation modeling. Journal of Statistical Software, 48(2), 1-36.

HLM vs R(lme4)

HLM 프로그램과 R의 lme4 패키지를 결과 신뢰도(추정 정확성, 표준오차 계산, 가정 검토 기능)까지 포함하여 비교해 보겠습니다.


1. HLM 프로그램 vs. R의 lme4 패키지 비교

비교 항목 HLM 프로그램 R의 lme4 패키지
가격 ❌ 유료 ✅ 무료
GUI 지원 ✅ 있음 (쉽게 사용 가능) ❌ 없음 (코딩 필요)
PVs(확률값) 자동 처리 ✅ 가능 (Rubin’s Rule 자동 적용) ❌ 직접 계산 필요
HLM (다층 선형 모델) 분석 ✅ 최적화됨 ✅ 가능
GLMM (로지스틱/포아송 등) ✅ 지원 (HGLM) ✅ 지원 (GLMM)
베이지안 HLM 분석 ❌ 불가능 ✅ 가능 (brms, rstanarm 사용)
대규모 데이터 처리 속도 ❌ 상대적으로 느림 ✅ 빠름 (C++ 기반 최적화)
데이터 전처리 ❌ 제한적 (외부 프로그램 필요) ✅ R 패키지 (dplyr, tidyr 등)과 연계 가능
시각화 ❌ 기본 제공 없음 ggplot2, sjPlot 등으로 가능
표준오차 계산 방식 ✅ 일반적인 방법 사용 ✅ 기본 제공 (lmerTest로 추가 가능)
신뢰구간 계산 ✅ 기본 제공 ✅ 기본 제공 (confint 함수 활용)
PVs(확률값) 신뢰도 계산 ✅ Rubin’s Rule 자동 적용 ❌ 별도 수작업 필요
랜덤 효과 신뢰도 검토 (ICCs 등) ✅ 자동 계산 ✅ 직접 계산 필요
모델 가정 검토 기능 (잔차 분석 등) ❌ 제한적 ✅ 잔차 플롯, Q-Q 플롯 등 가능 (DHARMa, performance 패키지 활용)

2. 결과 신뢰도 측면에서의 비교

분석 결과의 신뢰도를 판단할 때 중요한 요소들을 고려해 보겠습니다.

① 신뢰도 높은 추정치 제공 여부

  • HLM 프로그램

    • 최대우도 추정(MLE) 또는 제한된 최대우도 추정(REML) 사용.
    • PVs(확률값) 사용 시 Rubin’s Rule을 자동 적용하여 신뢰도 높은 결과 제공.
    • 다층적 구조를 고려한 적절한 표준오차 계산 가능.
  • R의 lme4 패키지

    • 기본적으로 REML 방식을 사용하며, MLE로 변경 가능 (REML = FALSE 옵션).
    • PVs(확률값)를 사용할 경우 직접 반복 분석 후 Rubin’s Rule을 적용해야 함.
    • 표준오차 계산은 lmerTest 패키지를 추가하면 더욱 정확한 결과 제공 가능.

➡ HLM 프로그램이 PVs 자동 처리가 가능하기 때문에, 확률값을 활용한 연구에서는 HLM의 신뢰도가 더 높을 수 있음. 하지만 PVs를 사용하지 않는다면 lme4도 높은 신뢰도를 제공할 수 있음.


② 모델 가정 검토 기능

  • HLM 프로그램

    • 기본적으로 잔차 분석 및 가정 검토 기능이 제한적이며, 잔차 플롯 같은 시각적 분석 도구가 부족함.
    • 정규성 가정 검토 등을 위해서는 SPSS, R 등의 추가 프로그램을 활용해야 함.
  • R의 lme4 패키지

    • performance, DHARMa 같은 패키지를 활용하면 잔차 플롯, Q-Q 플롯, 이상치 탐색 등 모델 진단 기능을 수행 가능.
    • 랜덤 효과(ICC) 신뢰도 분석을 쉽게 수행할 수 있음 (performance::icc() 등 활용).

➡ 모델 가정 검토 기능 측면에서는 R의 lme4가 훨씬 강력함. 특히 잔차 분석을 통해 정규성 가정 위반 여부를 확인하는 것이 가능하여, 연구 신뢰도를 높일 수 있음.


③ 표준오차 및 신뢰구간 계산

  • HLM 프로그램

    • 기본적으로 표준오차(SE)와 신뢰구간(CI) 제공.
    • PVs 사용 시 Rubin’s Rule 자동 적용.
  • R의 lme4 패키지

    • confint() 함수로 신뢰구간(CI) 계산 가능.
    • lmerTest 패키지를 추가하면 더 정확한 표준오차 및 p-value 제공 가능.

➡ 두 프로그램 모두 표준오차 및 신뢰구간을 계산할 수 있지만, R의 lme4는 추가 패키지를 활용해야 더욱 신뢰도 높은 결과를 얻을 수 있음.


3. 결론: 어떤 경우에 더 적합할까?

분석 목적 HLM 프로그램 R의 lme4 패키지
GUI 환경에서 쉽게 HLM 분석 ✅ 가능 ❌ 불가능 (코딩 필요)
PVs(확률값) 자동 분석 ✅ 지원 ❌ 직접 반복 분석 후 Rubin’s Rule 적용 필요
HLM 분석 정확도 ✅ 매우 정확함 ✅ 표준오차 보정 시 정확
대규모 데이터 처리 속도 ❌ 다소 느림 ✅ 빠름
GLMM (로지스틱/포아송 등) 분석 ✅ 가능 ✅ 가능
베이지안 분석 ❌ 지원 안 됨 brms 패키지 활용 가능
잔차 분석 및 가정 검토 ❌ 제한적 (기본 제공 안 됨) DHARMa 패키지 활용 가능
랜덤 효과 신뢰도 검토 (ICC 등) ✅ 자동 계산 performance 패키지 활용 가능

📝 최종 추천

HLM 프로그램이 더 적합한 경우

  • PVs(확률값)를 사용해야 하는 연구
  • GUI 환경에서 쉽게 HLM 분석을 수행하고 싶은 경우
  • 교육 및 사회과학 연구에서 학교-반-학생 같은 계층적 데이터를 다루는 경우

R의 lme4 패키지가 더 적합한 경우

  • 오픈소스 및 무료 소프트웨어를 사용하고 싶은 경우
  • 베이지안 HLM 분석이 필요한 경우 (brms 활용)
  • 잔차 분석, 이상치 탐색 등 모델 검토 기능이 필요한 경우
  • 대규모 데이터를 빠르게 분석해야 하는 경우

최종 결론: 연구 목적에 따라 선택해야 한다!

  • PVs(확률값)를 자동으로 처리하고 싶은 경우 → HLM 프로그램 추천
  • 모델 가정 검토(잔차 분석, Q-Q 플롯 등)를 철저히 하고 싶다면 → R의 lme4 패키지 추천
  • 무료 & 확장성 높은 분석 환경이 필요하다면 → R의 lme4 패키지 추천

💡 가장 좋은 방법은 HLM 프로그램과 lme4 패키지를 함께 사용하여 분석의 신뢰도를 높이는 것입니다. 😊