글쓴이 보관물: admin

Chap 17. 구조방정식에서 요인 점수 사용하기

반갑습니다, 여러분. 이번엔 교육통계학의 ‘꽃’이라 불리는 구조방정식 모델링(SEM)을 공부하다 보면 한 번쯤 마주하게 되는 현실적인 고민, 바로 “표본 크기가 작을 때 어떻게 해야 하는가?”“요인 점수(Factor Scores)를 그냥 회귀분석에 써도 되는가?”에 대해 심도 있게 다뤄보겠습니다.

우리는 보통 SEM이 잠재 변수 간의 관계를 파악하는 가장 완벽한 도구라고 배웁니다. 하지만 실제 교육 현장에서 데이터를 수집하다 보면 표본 200~300명을 모으는 것이 하늘의 별 따기처럼 느껴질 때가 많죠. 이럴 때 대안으로 제시되는 요인 점수 회귀분석(FSR)과 그 편향을 획기적으로 해결한 Croon 방법(SAM 접근법)에 대해 자세히 살펴보겠습니다.

1. 구조방정식(SEM)의 명암: 왜 대안이 필요한가?

SEM은 잠재 변수를 다룰 때 측정 오차(Measurement Error)를 통계적으로 고려하기 때문에 비편향된(Unbiased) 추정치를 얻을 수 있다는 강력한 장점이 있습니다. 또한 모델이 데이터에 얼마나 잘 맞는지 다양한 적합도 지수를 통해 확인할 수 있죠.

하지만 현실적인 제약이 따릅니다.

  • 대표본의 필요성: 추정해야 할 파라미터가 많아질수록 아주 큰 표본 크기가 필요합니다. 예산이나 시간 제약이 큰 학교 현장 연구에서는 이를 충족하기 어렵습니다.
  • 오차의 전이: 모델의 어느 한 부분만 잘못 설정(Misspecification)되어도 모델 전체의 파라미터가 왜곡될 위험이 있습니다.

이런 이유로 연구자들은 잠재 변수 대신 요인 점수(Factor Scores)를 계산하여 일반적인 회귀분석을 돌리는 방식을 택하곤 합니다. 이것이 바로 요인 점수 회귀분석(FSR)입니다.

2. 요인 점수 활용의 함정: “나이브(Naive)한 접근의 위험성”

많은 연구자가 단순히 요인 분석으로 점수를 뽑아 회귀분석을 수행하지만, 이는 편향된 결과를 낳을 확률이 매우 높습니다.

왜 편향이 발생하는가?

요인 점수 Fi=AyF_{i} = Ay는 관측 변수들의 선형 결합으로 계산되는데, 이 과정에서 측정 오차가 완전히 제거되지 않고 점수에 포함됩니다. 결과적으로 요인 점수의 분산-공분산 행렬(Var(F)Var(F))은 실제 잠재 변수의 그것(Var(η)Var(\eta))과 달라지게 되며, 이를 바탕으로 계산된 회귀 계수는 대개 과소 추정(Downward bias)되거나 왜곡됩니다.

요인 점수 산출 방식에 따른 차이

방법설명결과의 특성
Regression Predictor (ARA^R)Thomson, Thurstone이 제안독립 변수만 잠재 변수일 때 비편향
Bartlett Predictor (ABA^B)Bartlett이 제안종속 변수만 잠재 변수일 때 비편향
합산 점수 (Sum Scores)단순히 문항 점수를 더함병행 측정 모델(Parallel Model) 가정이 깨지면 큰 편향 발생

3. 해결사: Croon 방법과 SAM (Structural After Measurement)

이런 편향 문제를 해결하기 위해 Croon(2002)은 요인 점수의 분산-공분산 행렬을 수학적으로 보정하는 공식을 제안했습니다.

Croon의 보정 공식

잠재 변수의 실제 분산과 공분산을 추정하기 위해 다음과 같은 행렬 연산을 수행합니다.

Var(ηk)^=(AkΛk)1[Var(Fk)AkΘkAk](ΛkAk)1\widehat{Var(\eta_{k})} = (A_{k}\Lambda_{k})^{-1}[Var(F_{k}) – A_{k}\Theta_{k}A_{k}’](\Lambda_{k}’A_{k}’)^{-1}

Cov(ηk,ηm)^=(AkΛk)1Cov(Fk,Fm)(ΛmAm)1\widehat{Cov(\eta_{k}, \eta_{m})} = (A_{k}\Lambda_{k})^{-1}Cov(F_{k}, F_{m})(\Lambda_{m}’A_{m}’)^{-1}

이 방법은 먼저 측정 모델을 개별적으로 추정한 뒤(Step 1), 그 정보를 바탕으로 구조 모델을 추정하는(Step 2) 2단계 접근법의 일종입니다. 최근에는 이를 SAM(Structural After Measurement)이라는 더 넓은 프레임워크로 부르기도 합니다.


4. 실전 사례: 학교급별 디지털 리터러시와 학습 참여도

이해를 돕기 위해 교육 현장의 가상 시나리오를 만들어 보았습니다.

[가상 시나리오: 디지털 선도학교 연구]

A 교수는 초등학교 50개교의 교장 선생님을 대상으로 ‘학교의 디지털 인프라 수준’이 ‘교사의 디지털 교수 역량’을 매개로 ‘학생의 학습 참여도’에 미치는 영향을 연구하고자 합니다. 하지만 관측 변수는 40개가 넘는데 표본(교장단)은 50명뿐입니다. 일반적인 SEM으로는 추정이 불가능한 상황입니다.

모의 데이터 생성 및 분석 (R 기반)

jamovi의 기본 SEM 모듈은 표준적인 SEM 위주이므로, SAM(Croon 방법)을 정확히 구현하기 위해 jamovi 내부의 Rj Editor를 사용하거나 R을 활용하는 것이 좋습니다.

R

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

# 1. 가상 데이터 생성 (N=50, 소표본 상황)
set.seed(2025)
model_pop <- '
  Infrastructure =~ 0.8*i1 + 0.7*i2 + 0.9*i3
  Competency =~ 0.8*c1 + 0.7*c2 + 0.6*c3
  Engagement =~ 0.9*e1 + 0.8*e2 + 0.7*e3
  Competency ~ 0.5*Infrastructure
  Engagement ~ 0.4*Competency
'
data_school <- simulateData(model_pop, sample.nobs = 50)

# 2. 일반 SEM 시도 (표본이 작아 수렴 실패나 불안정한 결과 가능성)
fit_sem <- sem(model_pop, data = data_school)

# 3. SAM (Croon 방법 적용) 분석
# local SAM은 Croon의 보정법과 수학적으로 동일함 [cite: 409]
fit_sam <- sam(model_pop, data = data_school, sam.method = "local")

# 결과 비교 출력
summary(fit_sam)

분석 결과 해석

  1. 일반 SEM: 표본 크기(N=50N=50)에 비해 파라미터가 너무 많아 적합도 지수가 신뢰하기 어렵거나 추정치가 불안정할 수 있습니다.
  2. SAM(Croon 방법): 측정 모델을 먼저 블록별로 분리해서 추정하므로 소표본에서도 안정적으로 수렴하며, 요인 점수 사용 시 발생하는 편향을 보정하여 비편향된 경로 계수를 산출합니다.

5. 요약 및 결론

연구자로서 우리는 언제나 ‘완벽한’ SEM을 꿈꾸지만, 현장은 늘 우리에게 ‘작은 표본’이라는 과제를 던져줍니다.

  • 나이브한 요인 점수 사용은 금물: 측정 오차로 인해 결과가 왜곡됩니다.
  • 소표본이나 복잡한 모델에는 SAM(Croon)이 대안: 모델을 부분적으로 나누어 추정하므로 강건(Robust)하며, 오차 전이 문제를 방지할 수 있습니다.
  • 도구 활용: R의 lavaan 패키지에 있는 sam() 함수를 활용하면 전문가 수준의 보정된 분석이 가능합니다.

교육학 연구의 가치는 데이터의 양보다 그 해석의 정교함에 있습니다. Croon 방법을 통해 작은 데이터에서도 빛나는 통찰을 얻으시길 바랍니다.

참고문헌

  • Croon, M. A. (2002). Using predicted latent scores in general latent structure models. In G. Marcoulides & I. Moustaki (Eds.), Latent variable and latent structure modeling (pp. 195–223). Erblbaum.
  • Devlieger, I., Mayer, A., & Rosseel, Y. (2016). Hypothesis testing using factor score regression: A comparison of four methods. Educational and Psychological Measurement, 76(5), 741–770.
  • Devlieger, I., & Rosseel, Y. (2017). Factor score path analysis: An alternative for SEM? Methodology, 13, 31–38.
  • Devlieger, I., Talloen, W., & Rosseel, Y. (2019). New developments in factor score regression: Fit indices and a model comparison test. Educational and Psychological Measurement, 79(6), 1017–1037.
  • Rosseel, Y., & Loh, W. W. (in press). A structural-after-measurement (SAM) approach to structural equation modeling. Psychological Methods.

Chap 16. 구조방정식 모델링에서의 문항 꾸러미화: 기회주의적 사용의 위험성과 올바른 지침

안녕하세요.
이번에는 구조방정식 모델링(SEM)에서 자주 사용되지만 동시에 오용되기도 쉬운 ‘문항 꾸러미화(Item Parceling)’에 대해 깊이 있게 다뤄보겠습니다.

이 글은 단순한 이론 요약을 넘어, 실제 교육 현장에서 데이터를 분석하는 연구자들이 마주할 수 있는 고민과 해결책을 담고 있습니다. 특히 구조방정식 전용 툴인 jamovi와 더 정밀한 분석을 위한 R 코드를 병행하여 설명하겠습니다.

1. 문항 꾸러미화(Item Parceling)란 무엇인가?

문항 꾸러미화는 잠재변수를 측정하기 위한 원래의 개별 문항들을 2개 이상의 소그룹으로 묶어, 그 점수의 평균이나 합계를 지표(Indicator)로 사용하는 기법을 말합니다.

교육 연구에서 우리는 종종 다음과 같은 상황에 직면합니다:

  • 표본 크기는 작은데 문항 수는 너무 많을 때 (예: 학생 150명인데 문항은 40개)
  • 개별 문항의 신뢰도가 낮거나 데이터가 정규분포를 따르지 않을 때
  • 모델의 적합도가 낮아 논문 통과가 걱정될 때

이때 연구자들은 ‘쉬운 해결책’으로 꾸러미화를 선택합니다. 꾸러미화를 하면 지표의 수가 줄어들어 추정해야 할 모수가 감소하고, 분포가 더 정규성을 띠며, 모델 적합도가 ‘마법처럼’ 좋아지기 때문입니다. 하지만 이는 ‘양날의 검’입니다.

2. 꾸러미화 전략: 어떻게 묶을 것인가?

문항을 묶는 방법은 크게 세 가지로 나뉩니다.

1) 단순 무작위 전략 (Simple Random Strategy)

문항들을 아무런 규칙 없이 무작위로 할당하는 방법입니다. 이론적으로 문항들이 단일차원(Unidimensional)을 이룰 때 가장 보편적으로 사용됩니다.

2) 내용 중심 전략 (Content-Driven Strategy)

이론적 배경을 바탕으로 문항을 묶는 방법입니다.

  • 분산형(Distributed) 꾸러미화: 각 꾸러미가 전체 요인을 대표하도록 하위 요인 문항들을 골고루 섞습니다.
  • 고립형(Isolated) 꾸러미화: 같은 성격의 문항(예: 역채점 문항들, 동일 소검사 문항들)끼리만 묶습니다.

3) 경험적 전략 (Empirical Strategy)

데이터의 통계적 특성(요인 부하량, 상관관계 등)을 보고 결정합니다. 예를 들어 부하량이 높은 문항과 낮은 문항을 짝지어 꾸러미 간 균형을 맞추는 ‘Balancing’ 방법이 있습니다.

3. 꾸러미화의 위험성: 감춰진 진실

꾸러미화가 적합도를 높여주는 이유는 모델의 오류를 은폐하기 때문입니다.

  1. 오류 탐지 능력 저하: 문항 수준에서 발생하는 교차 부하량(Cross-loading)이나 잔차 간 상관관계를 번들 안에 가두어 버립니다. 즉, “틀린 모델인데도 잘 맞는 것처럼” 보이게 합니다 (제2종 오류 증가).
  2. 구조계수 왜곡: 측정 모델의 오류가 가려진 상태에서 계산된 경로계수(Structural parameters)는 편향될 수 있습니다.
  3. 꾸러미 할당 가변성(Parcel-allocation variability): 같은 데이터를 가지고도 문항을 어떻게 묶느냐에 따라 결과가 달라집니다. 수억 가지의 조합 중 단 하나의 결과만 보고하는 것은 연구자의 기회주의적 선택일 수 있습니다.

4. 실습: 교육 데이터 시뮬레이션 및 분석

이제 가상의 스토리를 통해 문항 꾸러미화의 효과와 위험성을 확인해 보겠습니다.

[시나리오]

A 초등학교 교사인 김 연구원은 학생들의 ‘학업 참여도(Engagement)’‘학업 성취도(Achievement)’에 미치는 영향을 연구하고자 합니다. ‘학업 참여도’, ‘학업 성취도’는 모두 9개 문항으로 구성되어 있으나, 표본 수가 150명으로 적어 모델 수렴이 잘 안 되고 적합도가 낮게 나옵니다. 김 연구원은 이를 3개의 문항씩 3개의 문항 꾸러미로 묶어 분석하기로 했습니다.

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

실제 상황과 유사하게 약간의 측정 오류(일부 문항의 상관성)를 포함한 데이터를 생성합니다.

R

# 1. 필요 라이브러리 로드
if(!require(lavaan)) install.packages("lavaan")
if(!require(semTools)) install.packages("semTools")
library(lavaan)
library(semTools)

# 2. 교육 현장 모의 데이터 생성 (N=150)
# 스토리: 성장 마음가짐(f1)이 수학 흥미(f2)를 예측함.
# 일부러 문항 수준에서 '역채점 문항 효과'와 같은 오류를 심어둠.
set.seed(2025)
sim_model <- '
  f1 =~ 0.7*e1 + 0.6*e2 + 0.5*e3 + 0.7*e4 + 0.6*e5 + 0.5*e6 + 0.7*e7 + 0.6*e8 + 0.5*e9
  f2 =~ 0.8*a1 + 0.7*a2 + 0.6*a3 + 0.8*a4 + 0.7*a5 + 0.6*a6 + 0.8*a7 + 0.7*a8 + 0.6*a9
  f2 ~ 0.4*f1  # 경로계수 설정
  e1 ~~ 0.3*e2  # 문항 수준의 잔차 상관(오류)
'
school_data <- simulateData(sim_model, sample.nobs = 150)

2) jamovi에서의 분석 (일반 SEM)

jamovi의 SEMLj 모듈을 사용합니다.

  1. Engagement 요인에 e1~e9를 모두 넣고 분석합니다.
  2. Achievement 요인에 a1~a9를 모두 넣고 분석합니다.
  3. 아마도 RMSEA나 CFI 값이 권장 기준에 미치지 못할 것입니다. (문항 수준의 오류 때문)

3) R을 이용한 문항 꾸러미화 민감도 분석 (Sensitivity Analysis)

단순히 한 번 묶고 끝내는 것이 아니라, 무작위로 여러 번 묶었을 때 결과가 얼마나 널뛰는지 확인해야 합니다.

R

# 3. 모델 설정
# 원래 문항 수준의 구조 (item.syntax)
item_syntax <- '
  f1 =~ e1 + e2 + e3 + e4 + e5 + e6 + e7 + e8 + e9
  f2 =~ a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9
'

# 번들 수준의 구조 (mod.parcels)
# 각 요인을 3개의 번들로 묶음
parcel_model <- '
  f1 =~ p1 + p2 + p3
  f2 =~ p4 + p5 + p6
  f2 ~ f1
'

# 4. 민감도 분석 실행 (100번의 무작위 할당)
# parcelAllocation 함수를 통해 가변성을 확인합니다.
results <- parcelAllocation(
  model = parcel_model, 
  data = school_data, 
  nAlloc = 100, 
  parcel.names = c("p1","p2","p3","p4","p5","p6"),
  item.syntax = item_syntax
)

# 5. 결과 요약 및 해석
summary(results)

5. 연구자를 위한 최종 권고문

문항 꾸러미화를 사용할 때는 다음의 7가지 원칙을 반드시 지켜야 합니다.

  1. 문항 수준 분석 선행: 꾸러미화 전, 반드시 개별 문항 수준에서의 확인적 요인분석(CFA)을 시도하고 그 결과를 보고하십시오.
  2. 동기 명시: 단순히 ‘적합도를 높이기 위해’가 아니라, 이론적 근거를 제시하십시오.
  3. 꾸러미화 전략 기술: 무작위인지, 내용 중심인지, 왜 그렇게 결정했는지 상세히 적으십시오.
  4. 민감도 분석 실시: 단 하나의 꾸러미 조합만 보고하지 말고, semTools 등을 활용해 여러 조합의 평균적인 결과를 보고하십시오.
  5. 측정 불변성 주의: 다집단 분석 시 꾸러미화는 집단 간 차이를 왜곡할 위험이 큽니다.
  6. 단일차원성 검증: 꾸러미로 묶이는 문항들이 정말 하나의 요인을 측정하는지 사전에 검증하십시오.
  7. 투명한 보고: 꾸러미화를 했다는 사실을 숨기지 마십시오. 이는 재현 가능한 과학을 위한 기본 매너입니다.

참고문헌

  • Bandalos, D. L. (2002). The effects of item parceling on goodness-of-fit and parameter estimate bias in structural equation modeling. Structural Equation Modeling, 9(1), 78-102.
  • Bandalos, D. L., & Finney, S. J. (2001). Item parceling issues in structural equation modeling. In G. A. Marcoulides (Ed.), New developments and techniques in structural equation modeling (pp. 269–297). Lawrence Erlbaum Associates Publishers.
  • Little, T. D., Rhemtulla, M., Gibson, K., & Schoemann, A. M. (2013). Why the items versus parcels controversy needn’t be one. Psychological Methods, 18(3), 285-300.
  • Sterba, S. K. (2011). Implications of parcel-allocation variability for comparing fit of item-solutions and parcel-solutions. Structural Equation Modeling, 18(4), 554-577.
  • Sterba, S. K., & Rights, J. D. (2017). Effects of parceling on model selection: Parcel-allocation variability in model ranking. Psychological Methods, 22(1), 47-68.

Chap 15. 이분형(Dichotomous) 및 서열형(Ordered Polytomous) 문항에 대한 확인적 측정 모델

안녕하십니까,
우리가 교육 현장에서 흔히 마주하는 범주형 데이터(Categorical Data)를 어떻게 과학적으로 측정하고 분석할 것인지에 대해 심도 있게 다뤄보겠습니다.

우리가 흔히 사용하는 ‘기초학력 진단평가(정답/오답)’나 ‘학교생활 만족도(리커트 척도)’는 일반적인 확인적 요인분석(CFA)이 가정하는 ‘연속성’과 ‘정규성’을 충족하지 못하는 경우가 많습니다. 이를 무시하고 분석할 경우, 결과가 왜곡될 수 있죠. 이 장에서는 이러한 한계를 극복하기 위한 이분형 및 서열형 문항에 대한 확인적 측정 모델을 살펴보겠습니다.

1. 전통적 확인적 요인분석(CFA)의 한계와 도전

전통적인 CFA 모델은 요인 지표가 연속적이며 기저 요인과 선형 관계를 맺고 있다고 가정합니다. 하지만 교육 현장의 데이터는 다음과 같은 특성을 보입니다.

  • 이분형 지표: 수학 문제의 정답(1)과 오답(0)
  • 서열형 지표: “전혀 그렇지 않다”에서 “매우 그렇다”까지의 리커트형 설문

이러한 데이터를 연속형으로 간주하고 최대우도법(ML)을 적용하면, 문항 간의 연관성이 저평가되거나 부적절한 표준오차가 산출될 위험이 있습니다. 특히 응답 범주가 5개 미만인 경우 이러한 문제는 더욱 심각해집니다.

2. 가상의 시나리오: “김 교사의 수학 학습 태도 및 성취도 연구”

이론적 이해를 돕기 위해, 고등학교 수학교사인 ‘김 교사’의 데이터를 가정해 봅시다.

시나리오: 김 교사는 학생들의 ‘수학적 자신감(정의적 영역)’과 ‘기초 대수 능력(인지적 영역)’을 측정하고자 합니다.

  • 기초 대수 능력 (MATH_SKILL): 5개의 이분항 문항 (정답 1, 오답 0).
  • 수학적 자신감 (MATH_CONF): 5개의 리커트 4점 척도 문항 (1=전혀 그렇지 않다 ~ 4=매우 그렇다).

3. 범주형 지표를 위한 두 가지 틀 (Frameworks)

범주형 지표를 모델링하는 데는 두 가지 주요 접근 방식이 있습니다.

3.1 잠재 응답 공식화 (Latent Response Formulation)

이 방식은 관찰된 범주형 변수 YY 이면에는 정규분포를 따르는 연속적인 잠재 변수 YY^*가 존재한다고 가정합니다.

Yi=νi+λif+ϵiY_{i}^{*} = \nu_{i} + \lambda_{i}f + \epsilon_{i}

여기서YY^*가 특정 임계치(Threshold, τ\tau)를 넘을 때 응답 범주가 바뀐다고 봅니다. 이 방식은 주로 범주형 CFA(CCFA)에서 사용됩니다.

3.2 일반화 선형 혼합 모델 (GLMM)

문항 반응 이론(IRT)에서 주로 사용하는 방식으로, 비선형 관계를 직접 모델링합니다. 예를 들어, 이분형 데이터에서는 로짓(Logit) 혹은 프로빗(Probit) 링크 함수를 사용하여 성공 확률을 예측합니다.

4. 추정 방법: 제한 정보 vs. 전체 정보

어떤 추정치를 사용할지는 분석의 정확도와 복잡도에 큰 영향을 미칩니다.

구분제한 정보 추정 (Limited-Information)전체 정보 추정 (Full-Information)
대표 추정치WLSMV (Weighted Least Squares Mean and Variance adjusted)MML (Marginal Maximum Likelihood) / FIML
입력 데이터요약 통계량 (Polychoric correlation matrix 등)원시 응답 데이터
장점표본 크기가 클 때 빠르고 적합도 지수(CFI, RMSEA) 제공더 정밀한 파라미터 추정 가능, 결측치 처리(MAR)에 강함
단점결측치 처리에 취약(MCAR 가정)잠재 요인이 많아질수록 계산 복잡도 급증

5. 이분형 문항 모델 (Dichotomous Indicators)

수학 문제 정답 여부를 분석할 때 사용되는 모델들입니다.

5.1 1모수 모델 (1PL / Rasch)

모든 문항의 변별도(aa)가 동일하다고 가정하고 난이도(bb)만 추정합니다.

Pi(Yi=1|θ)=11+exp(a(θbi))P_{i}(Y_{i}=1|\theta) = \frac{1}{1+\exp(-a(\theta-b_{i}))}

5.2 2모수 모델 (2PL)

문항마다 변별도(aia_i)와 난이도(bib_i)를 모두 다르게 추정합니다. 김 교사의 데이터에서 특정 수학 문제가 우등생과 열등생을 더 잘 구분한다면 이 모델이 적합합니다.

5.3 3모수 및 4모수 모델 (3PL, 4PL)

  • 3PL: ‘추측 파라미터(cic_i)’를 추가하여, 능력이 낮아도 맞출 확률을 고려합니다.
  • 4PL: ‘실수 파라미터(did_i)’를 추가하여, 능력이 높아도 틀릴 확률(상한 점근선)을 모델링합니다.

6. 서열형(리커트) 문항 모델 (Ordinal Indicators)

‘수학 자신감’ 설문과 같은 데이터에 적합한 모델입니다.

6.1 등급 반응 모델 (Graded Response Model, GRM)

응답 범주가 순서대로 나열되어 있을 때, “k 범주 이상에 응답할 확률”을 모델링합니다.

Pi(Yik|θ)=11+exp(ai(θbij))P_{i}(Y_{i} \ge k|\theta) = \frac{1}{1+\exp(-a_{i}(\theta-b_{ij}))}

여기서 bijb_{ij}는 범주 간의 경계 지점을 의미합니다.

6.2 일반화 부분 점수 모델 (Generalized Partial Credit Model, GPCM)

각 범주 간의 전이(transition)를 일련의 2PL 모델처럼 다룹니다. 문항마다 부분 점수의 부여 방식이 다를 때 유용합니다.

7. jamovi 및 R을 활용한 실무 가이드

jamovi에서의 분석 (기본)

  1. IRT 모듈 설치: ‘Library’에서 ‘snowIRT’ 모듈을 설치합니다.
  2. 분석 수행:
    • 이분형: ‘IRT’ -> ‘Dichotomous’ -> 문항 선택.
    • 서열형: ‘IRT’ -> ‘Polytomous’ -> ‘Rating Scale Model’ 또는 ‘Partial Credit Model’ 선택.
  3. 결과 확인: 난이도, 문항 특성 곡선(ICC)을 확인합니다.

R을 활용한 정밀 분석 (mirt 패키지 활용)

jamovi에서 제공하지 않는 세부 모델(4PL 등)이나 복잡한 CCFA는 R의 mirt 또는 lavaan 패키지를 사용합니다.

R

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

# 2. 가상 데이터 생성 (N=500)
set.seed(123)
N <- 500
theta <- rnorm(N) # 잠재 능력 (평균 0, 표준편차 1) [cite: 154, 176]

# 기초 대수 능력 (이분형: 2PL 모델 기반 생성)
# a: 변별도, b: 난이도
a_skill <- c(1.5, 2.0, 1.2, 1.8, 2.5)
b_skill <- c(-1.0, -0.5, 0, 0.5, 1.0)
data_skill <- matrix(NA, N, 5)
for(i in 1:5) {
  prob <- 1 / (1 + exp(-a_skill[i] * (theta - b_skill[i])))
  data_skill[,i] <- rbinom(N, 1, prob)
}
colnames(data_skill) <- paste0("SKILL_", 1:5)

# 수학적 자신감 (서열형: GRM 모델 기반 생성)
# data_conf 객체 생성
data_conf <- simdata(a = rep(1.5, 5), d = matrix(c(2, 0, -2), 5, 3, byrow=TRUE), 
                     N = N, itemtype = 'graded', Theta = as.matrix(theta))
colnames(data_conf) <- paste0("CONF_", 1:5)

# 3. 분석 수행 (2PL 및 GRM)
# 이분형 분석
fit_skill <- mirt(as.data.frame(data_skill), 1, itemtype = '2PL')
coef(fit_skill, IRTpars = TRUE, simplify = TRUE)

# 서열형 분석 (GRM)
fit_conf <- mirt(as.data.frame(data_conf), 1, itemtype = 'graded')
plot(fit_conf, type = 'trace') # 카테고리 반응 곡선 (CRC) 확인

8. 결론 및 제언

범주형 지표를 활용한 측정 모델링은 단순히 통계 기법의 선택을 넘어, 우리가 측정하고자 하는 교육적 구인(Construct)의 본질을 얼마나 정확하게 반영하느냐의 문제입니다.

  • 연속성 가정이 깨진다면: 지체 없이 범주형 CFA나 IRT 모델을 고려하십시오.
  • 적합도 확인: WLSMV를 통해 CFI, TLI, RMSEA 등 익숙한 지표를 확인할 수 있지만, 범주형 데이터에서의 컷오프 기준은 주의해서 해석해야 합니다.

참고문헌

  • Asparouhov, T., & Muthén, B. (2020). IRT in Mplus (Version 4). Mplus webnote. https://www.statmodel.com/download/mplusirt.pdf
  • Brown, T. A. (2006). Confirmatory factor analysis for applied research. Guilford Press.
  • de Ayala, R. J. (2009). The theory and practice of item response theory. Guilford Press.
  • Embretson, S. E., & Reise, S. P. (2000). Item response theory for psychologists. Erlbaum.
  • Koziol, N. A. (2025). Confirmatory measurement models for dichotomous and ordered polytomous indicators. In Handbook of Structural Equation Modeling (Chapter 15).
  • Muthén, L. K., & Muthén, B. O. (1998-2020). Mplus user’s guide (8th ed.). Authors.
  • Skrondal, A., & Rabe-Hesketh, S. (2004). Generalized latent variable modeling: Multilevel, longitudinal, and structural equation models. CRC Press.

Chap 14. 확인적 요인분석(CFA)

안녕하세요.
여러분과 함께 확인적 요인분석(Confirmatory Factor Analysis, CFA)의 세계를 탐구하게 되어 기쁩니다.

오늘 우리가 살펴볼 내용은 Timothy A. Brown의 핵심 이론을 바탕으로 하며, 실제 학교 현장에서 마주할 수 있는 ‘학업 자기효능감’과 **‘교사 지지’라는 두 가지 개념을 통해 CFA의 전 과정을 상세히 학습해 보겠습니다.

1. 확인적 요인분석(CFA)의 본질

확인적 요인분석은 구조방정식 모델링(SEM)의 핵심적인 부분으로, 측정 모델(Measurement Model)을 다룹니다. 즉, 우리가 직접 관찰한 지표들(시험 점수, 설문 문항 등)과 우리가 직접 볼 수 없는 잠재 변수(지능, 성격, 효능감 등) 사이의 관계를 규명하는 작업입니다.

1.1 공통 요인 모델 (Common Factor Model)

CFA의 기초는 모든 관찰 지표가 하나 이상의 공통 요인(Common Factor)과 하나의 고유 요인(Unique Factor)의 선형 결합이라는 가정에서 출발합니다.

  • 공통 변량(Common Variance): 잠재 변수에 의해 설명되는 부분으로, 여러 지표가 공유하는 변량입니다.
  • 고유 변량(Unique Variance): 해당 지표만이 가진 신뢰로운 특성과 측정 오차(Measurement Error)가 결합된 부분입니다.

1.2 탐색적 요인분석(EFA) vs. 확인적 요인분석(CFA)

가장 큰 차이는 ‘사전 제약(A priori specification)’에 있습니다.

  • EFA: 데이터가 스스로 구조를 드러내도록 두는 데이터 중심 접근법입니다. 어떤 문항이 어떤 요인에 묶일지 사전에 정하지 않습니다.
  • CFA: 연구자가 이론적 근거를 바탕으로 요인의 수, 문항과의 관계(요인 부하량) 등을 미리 지정하고, 이 모델이 실제 데이터와 얼마나 잘 맞는지 평가합니다.

2. CFA의 주요 목적과 파라미터

2.1 왜 CFA를 하는가?

  1. 척도 개발 및 타당화: 설문지가 의도한 구조대로 작동하는지 확인합니다.
  2. 방법 효과(Method Effects) 검출: 문항의 표현 방식(역채점 문항 등) 때문에 발생하는 오차의 상관을 모델링할 수 있습니다.
  3. 수렴 및 판별 타당도 검증: 비슷한 개념의 지표끼리 강하게 묶이는지(수렴), 서로 다른 개념이 충분히 구분되는지(판별) 확인합니다.
  4. 측정 동일성(Measurement Invariance) 평가: 성별이나 문화권에 따라 척도가 동일하게 기능하는지 분석합니다.

2.2 모델의 주요 파라미터

  • 요인 부하량(Factor Loadings, λ\lambda): 요인이 지표를 예측하는 회귀 계수입니다.
  • 고유 변량(Unique Variances, δ\delta): 요인에 의해 설명되지 않는 나머지 오차 부분입니다.
  • 요인 분산 및 공분산(ϕ\phi): 잠재 변수 자체의 변동성과 변수 간의 관계를 나타냅니다.

3. 실습을 위한 시나리오 및 모의 데이터 생성

🏫 연구 시나리오: “중학생의 학습 동기 구조 분석”

A 중학교 상담 교사인 당신은 학생들이 느끼는 ‘학업 자기효능감(Self-Efficacy, SE)’‘교사 지지(Teacher Support, TS)’가 서로 다른 개념인지, 그리고 각 문항이 적절한지 검증하고자 합니다.

  • 학업 자기효능감(SE): 문항 X1~X4 (예: “나는 어려운 문제도 풀 수 있다”)
  • 교사 지지(TS): 문항 X5~X8 (예: “선생님은 내가 힘들 때 도와주신다”)
  • 특이 사항: X7과 X8은 부정적인 뉘앙스의 역채점 문항으로 설계되어 문항 간 오차 상관이 예상됩니다.

Jamovi 및 R 실습 코드

Jamovi는 내부적으로 R의 lavaan 패키지를 사용합니다. 먼저 분석에 사용할 모의 데이터를 생성하고 분석하는 R 코드를 제시합니다.

R

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

# 1. 모의 데이터 생성 (N=300)
set.seed(2025)
model_sim <- '
  SE =~ 0.8*x1 + 0.7*x2 + 0.75*x3 + 0.6*x4
  TS =~ 0.85*x5 + 0.8*x6 + 0.75*x7 + 0.7*x8
  SE ~~ 0.4*TS  # 두 요인 간 상관
  x7 ~~ 0.3*x8  # 방법 효과 (오차 상관)
'
dat <- simulateData(model_sim, sample.nobs = 300)

# 2. CFA 모델 설정
cfa_model <- '
  Academic_SE =~ x1 + x2 + x3 + x4
  Teacher_TS  =~ x5 + x6 + x7 + x8
  
  # 오차 공분산 지정 (역채점 문항의 방법 효과 반영)
  x7 ~~ x8
'

# 3. 모델 추정
fit <- cfa(cfa_model, data = dat, std.lv = TRUE)

# 4. 결과 요약
summary(fit, fit.measures = TRUE, standardized = TRUE, rsquare = TRUE)

4. 모델 식별과 평가

4.1 모델 식별 (Identification)

CFA를 수행하려면 잠재 변수의 척도를 정해야 합니다.

  1. 지표 고정법(Marker Indicator): 한 문항의 부하량을 1.0으로 고정하여 해당 문항의 단위를 잠재 변수에 부여합니다. (Jamovi/Mplus 기본값)
  2. 분산 고정법(Fixed Factor Variance): 요인의 분산을 1.0으로 고정합니다.

또한, 알고 있는 정보(데이터의 분산/공분산)가 추정할 파라미터 수보다 많아야 합니다(과잉 식별, df > 0).

4.2 적합도 지수 (Goodness-of-Fit)

모델이 실제 데이터를 얼마나 잘 모사하는지 평가합니다.

  • χ2\chi^2 (Chi-square): p>.05p > .05이면 완벽한 적합을 의미하지만, 표본 크기에 민감하여 보통 참고용으로만 봅니다.
  • CFI / TLI: .95 이상이면 우수한 적합도로 봅니다.
  • RMSEA: .06 이하(또는 .08 이하)를 양호한 수준으로 봅니다.
  • SRMR: .08 이하일 때 모델이 데이터를 잘 설명한다고 봅니다.

5. 모델 수정 (Respecification)

만약 적합도가 낮다면 어떻게 해야 할까요?

  1. 수정 지표(Modification Indices, MI): “특정 오차끼리 상관을 맺어주면 χ2\chi^2가 이만큼 줄어들 것이다”라고 알려주는 지표입니다.
  2. χ2\chi^2 차이 검증: 원래 모델(경직된 모델)과 파라미터를 추가한 모델(유연한 모델)을 비교하여 통계적으로 유의한 개선이 있는지 확인합니다.

⚠️ 주의: 수정 지표에만 의존해 모델을 고치는 것은 ‘데이터 끼워맞추기(Overfitting)’가 될 수 있습니다. 반드시 이론적 근거가 있어야 합니다.

6. 결론 및 요약

확인적 요인분석은 우리가 측정하고자 하는 심리적 가설을 엄격하게 테스트하는 도구입니다. 단순히 통계치를 얻는 것을 넘어, 연구자가 가진 이론이 실제 교육 현장의 데이터와 부합하는지 증명하는 과정입니다.

참고문헌

  • Brown, T. A. (2015). Confirmatory factor analysis for applied research (2nd ed.). Guilford Press.
  • Hu, L., & Bentler, P. M. (1999). Cutoff criteria for fit indexes in covariance structure analysis: Conventional criteria versus new alternatives. Structural Equation Modeling, 6(1), 1-55. https://doi.org/10.1080/10705519909540118
  • Muthén, L. K., & Muthén, B. O. (1998-2021). Mplus user’s guide. Author.

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.

Chap 12. 결측치가 있는 구조방정식 처리

안녕하세요?
오늘은 연구자들이 데이터를 분석할 때 가장 빈번하게 마주하지만, 동시에 가장 골치 아픈 문제인 ‘결측치(Missing Data)’를 구조방정식 모델(SEM)에서 어떻게 처리해야 하는지 깊이 있게 다뤄보겠습니다.

단순히 결측치를 삭제하는 과거의 방식에서 벗어나, 현대 통계학의 표준인 완전 정보 최대 우도법(FIML)다중 대치법(MI)을 중심으로 학습해 봅시다. 여러분의 이해를 돕기 위해 교육 현장의 가상 데이터를 활용하여 설명하겠습니다.

1. 결측치 처리의 필요성과 이론적 배경

교육 연구에서 학생들의 설문 데이터나 성적 데이터를 수집하다 보면, 특정 문항에 응답하지 않거나 전학 등으로 인해 데이터가 누락되는 경우가 많습니다. 과거에는 결측치가 있는 사례를 통째로 삭제(Listwise Deletion)하곤 했으나, 이는 표본 크기를 줄여 통계적 검증력을 약화시킬 뿐만 아니라, 특정 집단이 조직적으로 응답을 누락했을 경우 심각한 편향(Bias)을 초래합니다1.

결측치 발생 기제 (Missing Data Processes)

결측치를 처리하기 전, 루빈(Rubin, 1976)이 제안한 세 가지 발생 기제를 이해해야 합니다.

  1. 완전 무작위 결측 (MCAR): 결측이 관찰된 데이터나 관찰되지 않은 데이터와 전혀 상관없이 발생한 경우입니다. (예: 설문지가 단순히 배달 사고로 분실됨)
  2. 무작위 결측 (MAR): 결측이 다른 관찰된 변수와는 상관이 있지만, 결측된 값 자체와는 상관이 없는 경우입니다. 현대적 결측치 처리법의 기본 가정입니다. (예: 기초 학력이 낮은 학생이 학업 중단으로 인해 기말고사 점수가 누락됨)
  3. 비무작위 결측 (MNAR): 결측이 누락된 값 자체와 관련이 있는 경우입니다. (예: 성적이 매우 낮은 학생이 부끄러워서 일부러 성적을 기입하지 않음)

2. 가상 시나리오 및 모의 데이터 생성

강의를 위해 다음과 같은 교육 연구 시나리오를 설정하겠습니다.

연구 주제: 교사의 지지가 학생의 학업 자기효능감을 매개로 학교 행복감에 미치는 영향

  • 독립변수: 교사의 지지 (Teacher Support)
  • 매개변수: 학업 자기효능감 (Self-Efficacy, 3개 문항)
  • 종속변수: 학교 행복감 (School Happiness, 3개 문항)
  • 보조변수(Auxiliary Variable): 부모의 학업 관여도 (Parental Involvement) – 모델에는 없으나 결측치 추정을 돕기 위해 활용

R을 이용한 모의 데이터 생성 스크립트

jamovi에서 불러올 수 있도록 결측치가 포함된 500명의 가상 데이터를 생성합니다.

R

# 필요한 라이브러리
library(MASS)

set.seed(2025)
N <- 500

# 변수 간 상관관계 설정 (교사지지, 효능감1-3, 행복감1-3, 부모관여)
mu <- rep(0, 8)
sigma <- matrix(0.5, 8, 8); diag(sigma) <- 1
data <- mvrnorm(N, mu, sigma)
colnames(data) <- c("T_Sup", "Eff1", "Eff2", "Eff3", "Hap1", "Hap2", "Hap3", "P_Inv")
df <- as.data.frame(data)

# MAR 기제에 의한 결측치 생성: 교사 지지가 낮은 학생일수록 효능감 응답 누락 확률 높음
missing_idx <- which(df$T_Sup < quantile(df$T_Sup, 0.3))
df$Eff1[sample(missing_idx, 50)] <- NA
df$Hap1[sample(1:N, 30)] <- NA # 일부는 MCAR

write.csv(df, "School_Missing_Data.csv", row.names = FALSE)

3. 완전 정보 최대 우도법 (FIML)

완전 정보 최대 우도법(Full-Information Maximum Likelihood)은 관찰된 데이터를 모두 사용하여 로그 우도(Log-likelihood) 함수를 계산하는 방식입니다. 결측치가 있는 사례를 버리지 않고, 관찰된 데이터만을 사용하여 해당 사례의 우도 값을 계산합니다.

jamovi에서의 분석 방법

  1. SEMLj 라이브러리를 설치합니다.
  2. SEMLj 모듈을 실행하고 모델을 설정합니다.
  3. Options 탭에서 Missing values 설정을 FIML로 선택합니다.
    • 참고: jamovi의 기본 SEMLj 엔진인 lavaan은 FIML을 통해 결측치를 효율적으로 처리합니다.

보조 변수(Auxiliary Variables)의 활용

결측치가 MAR 가정에 더 가깝게 부합하도록 하기 위해, 모델에 직접 포함되지 않지만 결측과 관련이 있는 변수(부모 관여도)를 활용할 수 있습니다.

  • 포화 상관 모델 (Saturated Correlates Model): 보조 변수를 모델 내 모든 외생 변수와 상관시키고, 내생 변수의 잔차와 상관시키는 방식입니다.

4. 다중 대체법 (Multiple Imputation, MI)

다중 대체법은 결측치를 단일 값이 아닌 여러 번 추정하여 여러 개의 ‘완성된’ 데이터셋을 만드는 방식입니다.

분석의 3단계

  1. 대체 단계 (Imputation): MCMC 알고리즘 등을 활용하여 결측치가 채워진 MM개(보통 20~100개)의 데이터셋 생성.
  2. 분석 단계 (Analysis): 각 데이터셋에 대해 구조방정식 모델을 독립적으로 분석.
  3. 결합 단계 (Pooling): 루빈의 규칙(Rubin’s Rules)을 적용하여 결과를 하나로 통합.

jamovi/R 구현 (R 기반 설명)

jamovi의 일부 플러그인에서도 MI를 지원하지만, 구조방정식의 경우 R의 mice 패키지와 lavaan을 병행하는 것이 가장 정교합니다.

R

library(mice)
library(lavaan)

# 1. 대치 단계 (20개의 데이터셋 생성)
imp <- mice(df, m = 20, method = 'pmm', seed = 2025)

# 2. 분석 및 결합 단계
model <- '
  Efficacy =~ Eff1 + Eff2 + Eff3
  Happiness =~ Hap1 + Hap2 + Hap3
  Efficacy ~ T_Sup
  Happiness ~ Efficacy + T_Sup
'
fit_mi <- with(imp, sem(model, data = subset(df)))
# pool 결과를 사용하여 최종 추정치 산출

5. 분석 결과의 비교 및 해석

FIML과 MI는 동일한 가정(MAR) 하에서 보통 거의 일치하는 결과를 보여줍니다.

구분FIML (완전 정보 최대 우도)MI (다중 대치법)
장점한 번의 분석으로 완료, 효율적임범주형 데이터 처리에 유연함
단점보조 변수 추가 시 모델이 복잡해짐분석 과정이 번거롭고 시간이 소요됨
적합도모델 적합도 지수 즉시 제공각 세트의 지수를 평균하여 산출

6. 결론 및 제언

교육 연구에서 결측치는 피할 수 없는 현상입니다. 하지만 FIML이나 MI와 같은 현대적인 기법을 사용한다면, 결측치로 인한 편향을 최소화하고 연구의 타당성을 높일 수 있습니다.

  • 데이터가 연속형이고 분석 모델이 명확하다면 FIML을 우선 권장합니다.
  • 변수 중에 범주형 변수가 많거나 비선형 효과를 분석해야 한다면 MI가 더 유리합니다.

구조방정식 모델링 시 “결측치가 있으니 해당 학생을 삭제하겠다”는 생각은 이제 접어두시고, 데이터를 최대한 활용하는 통계적 지혜를 발휘해 보시기 바랍니다.

참고문헌 (APA Style)

  • Arbuckle, J. L. (1996). Full information estimation in the presence of incomplete data. In G. A. Marcoulides & R. E. Schumacker (Eds.), Advanced structural equation modeling (pp. 243–277). Erlbaum.
  • Enders, C. K. (2022). Applied missing data analysis (2nd ed.). Guilford Press.
  • Graham, J. W. (2003). Adding missing-data-relevant variables to FIML-based structural equation models. Structural Equation Modeling: A Multidisciplinary Journal, 10(1), 80–100.
  • Little, R. J. A., & Rubin, D. B. (2020). Statistical analysis with missing data (3rd ed.). Wiley.
  • Rubin, D. B. (1987). Multiple imputation for nonresponse in surveys. Wiley.
  • Schafer, J. L. (1997). Analysis of incomplete multivariate data. Chapman & Hall.

Chap 11. 구조방정식 모델 선택

안녕하세요? 여러분.
오늘 우리는 구조방정식 모델링(SEM)에서 가장 중요하면서도 많은 연구자가 간과하기 쉬운 주제인 ‘모델 선택(Model Selection)‘에 대해 깊이 있게 다루어 보겠습니다.

우리는 보통 하나의 모델을 세우고 그 모델의 적합도 지수(CFI, TLI, RMSEA 등)가 기준치를 넘으면 “내 모델이 옳다”라고 결론짓곤 합니다. 하지만 그것은 위험한 생각일 수 있습니다. 오늘은 왜 단일 모델의 적합도만 봐서는 안 되는지, 그리고 여러 경쟁 모델 중 어떤 것이 가장 ‘좋은’ 모델인지 어떻게 결정하는지를 교육학적 사례와 함께 살펴보겠습니다.


1. 단일 모델 적합도의 한계: 왜 모델 선택인가?

우리가 연구에서 세우는 모델은 실제 현실을 완벽하게 반영할 수 없습니다. 모델은 단지 ‘현실에 대한 근사치’일 뿐입니다. 따라서 특정 모델의 적합도가 좋게 나왔다고 해서 그것이 반드시 객관적 진리인 것은 아닙니다.

모델 적합도의 함정

  1. 포화 모델(Saturated Model)의 문제: 모델이 복잡해져서 자유도(dfdf)가 0이 되면, 이론적 타당성과 상관없이 적합도는 항상 완벽하게 나옵니다.
  2. 외생적 요인의 영향: 표본 크기(NN), 데이터의 비정규성, 측정 오차 등 모델의 진실성과 상관없는 요인들이 적합도 지수를 왜곡할 수 있습니다.
  3. 연구자의 자유도(Researcher Degrees of Freedom): 누락된 데이터 처리 방식이나 모델 수정 과정에서 연구자의 주관적 결정이 개입되어 적합도가 ‘조작’될 위험이 있습니다.

이러한 한계를 극복하기 위해 제안된 것이 모델 선택(Model Selection)입니다. 이는 사전에 이론적으로 타당한 여러 경쟁 모델들을 설정하고, 이 모델들을 동일한 데이터에 적용하여 어떤 모델이 가장 우수한지 순위를 매기는 과정입니다.

2. 이론적 배경: 오차의 프레임워크 (Cudeck & Henly)

모델을 선택할 때 우리가 고려해야 할 오차는 여러 종류가 있습니다. Cudeck과 Henly(1991)는 이를 이해하기 쉬운 프레임워크로 제시했습니다.

  • 근사 오차(Approximation Discrepancy): 모집단에서 모델과 실제 데이터 구조 사이의 차이로, 모델의 ‘진실성(Verisimilitude)’을 나타냅니다.
  • 추정 오차(Estimation Discrepancy): 표본 크기에 따른 샘플링 변동성 때문에 발생하는 오차입니다.
  • 전체 오차(Overall Discrepancy): 근사 오차와 추정 오차를 합친 개념으로, 모델이 새로운 데이터에 얼마나 잘 적용될지를 나타내는 일반화 가능성(Generalizability)과 직결됩니다.

우리는 단순히 현재 데이터에만 잘 맞는 모델이 아니라, 새로운 데이터에도 잘 맞을 모델(일반화 가능성이 높은 모델)을 선택해야 합니다.

3. 모델 선택의 핵심 기준

모델을 선택할 때 가장 중요한 원칙은 적합도와 복잡성 사이의 균형(Bias-Variance Trade-off)입니다. 너무 복잡한 모델은 현재 데이터에는 완벽해 보일지 몰라도(과적합, Overfitting), 새로운 데이터에서는 성능이 뚝 떨어집니다.

주요 정보 지수 (Information Criteria)

대부분의 모델 선택 기준은 다음과 같은 일반적인 형태를 띱니다.

D+f(q,N)D + f(q, N)

여기서 DD는 부적합도(로그 가능도 기반), ff는 복잡성(qq는 자유 파라미터 수)과 표본 크기(NN)에 따른 벌칙(Penalty) 항입니다.

지표특징강조점
AIC (Akaike Information Criterion)AIC=2lnL+2qAIC = -2 \ln L + 2q예측 효율성: 어떤 모델이 미래의 데이터를 가장 잘 예측(교차 타당화)할 것인가?
BIC (Bayesian Information Criterion)BIC=2lnL+qlnNBIC = -2 \ln L + q \ln N일관성: 표본이 커질 때 진짜 모델(True DGP)을 찾아낼 확률이 높은가?
MDL (Minimum Description Length)복잡성을 파라미터 수뿐만 아니라 모델의 구조적 형태까지 고려함압축 효율성: 데이터를 가장 경제적으로 설명하는 모델은 무엇인가?

4. 교육 현장 사례를 통한 실전 분석

이제 실제 교육학 연구 상황을 가정하여 모델 선택을 진행해 보겠습니다.

연구 시나리오: 고등학생의 학업 회복탄력성 구조 분석

김 교수는 고등학생 500명을 대상으로 ‘자기효능감’과 ‘교사 지지’가 ‘학업 회복탄력성’에 미치는 영향을 연구하고 있습니다. 그는 세 가지 경쟁 모델을 세웠습니다.

  • 모델 1 (단순 모델): 자기효능감 -> 학업 회복탄력성
  • 모델 2 (매개 모델): 자기효능감 -> 교사 지지 -> 학업 회복탄력성
  • 모델 3 (복합 모델): 모델 2에 ‘부모 지지’와 ‘또래 지지’ 경로를 모두 추가한 복잡한 모델

jamovi를 활용한 분석 방법

jamovi의 SEMed 모듈(또는 jmv)을 사용하면 분석 결과 하단에서 정보 지수를 확인할 수 있습니다.

  1. 데이터 불러오기: Academic_Resilience.csv
  2. 분석 메뉴: Factor -> Structural Equation Modeling
  3. 모델 설정: 각 경쟁 모델의 경로를 설정합니다.
  4. 지수 확인: 결과 창의 Fit Measures 탭에서 AIC와 BIC 값을 확인합니다. 값이 작을수록 우수한 모델입니다.

R 코드를 활용한 심화 분석 (SIC 포함)

jamovi에서 기본으로 제공하지 않는 SIC(Stochastic Information Complexity) 등은 R의 lavaan 패키지를 사용하여 계산할 수 있습니다.

R

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

# 1. 가상 데이터 생성 (N=500)
set.seed(2025)
N <- 500
self_eff <- rnorm(N)
teacher_sup <- 0.4 * self_eff + rnorm(N, sd = 0.8)
resilience <- 0.3 * self_eff + 0.5 * teacher_sup + rnorm(N, sd = 0.7)
edu_data <- data.frame(self_eff, teacher_sup, resilience)

# 2. 경쟁 모델 설정
model_1 <- 'resilience ~ self_eff'
model_2 <- 'teacher_sup ~ self_eff; resilience ~ teacher_sup + self_eff'

# 3. 모델 적합
fit1 <- sem(model_1, data = edu_data)
fit2 <- sem(model_2, data = edu_data)

# 4. AIC, BIC 비교
cat("Model 1 AIC:", AIC(fit1), " BIC:", BIC(fit1), "\n")
cat("Model 2 AIC:", AIC(fit2), " BIC:", BIC(fit2), "\n")

# 5. SIC 계산 (구조적 복잡성 반영)
# SIC = -ln L + 0.5 * ln|I(theta)| [cite: 321]
# 실제 연구에서는 semTools 등을 활용하여 더 편리하게 계산 가능합니다. [cite: 455]

분석 결과 예시 표

모델AICBIC순위해석
모델 12450.22465.53너무 단순하여 데이터 설명력 부족
모델 22310.82332.11적절한 복잡성과 높은 일반화 가능성
모델 32315.42355.82적합도는 모델 2와 비슷하나 너무 복잡함 (벌칙 부여)

5. WaurimaL의 실무 제언 (Take-home Points)

모델 선택은 단순히 숫자를 비교하는 기계적인 과정이 아닙니다. 다음 원칙을 반드시 기억하세요.

  1. 사전 이론의 중요성: 모델 선택 지수는 보조 도구일 뿐, 가장 먼저 고려해야 할 것은 교육학적 이론과 논리입니다.
  2. 삼각측량(Triangulation): AIC와 BIC가 다른 모델을 선택할 수 있습니다. AIC는 예측에, BIC는 진리 탐색에 유리하므로 두 종류를 모두 보고 종합적으로 판단하세요.
  3. 모델 평균화(Model Averaging): 하나의 모델만 딱 고르기 어렵다면, 우수한 여러 모델의 결과를 가중 평균하여 보고하는 방식도 고려해 보세요.
  4. 표본 크기의 영향: 표본이 작을 때는 구조적 복잡성을 잘 반영하는 MDL 계열 지수(SIC 등)를 활용하는 것이 더 정확할 수 있습니다.

구조방정식은 모델을 ‘확정’ 짓는 도구가 아니라, 이론을 ‘검증’하고 ‘발전’시키는 과정임을 잊지 마시기 바랍니다.

참고문헌 (APA Style)

  • Akaike, H. (1973). Information theory and an extension of the maximum likelihood principle. In B. N. Petrov & F. Csáki (Eds.), Second International Symposium on Information Theory (pp. 267–281). Akadémiai Kiadó.
  • Burnham, K. P., & Anderson, D. R. (2002). Model selection and multimodel inference: A practical information-theoretic approach (2nd ed.). Springer.
  • Cudeck, R., & Henly, S. J. (1991). Model selection in covariance structures analysis and the “problem” of sample size: A clarification. Psychological Bulletin, 109(3), 512–519.
  • Preacher, K. J., & Yaremych, H. E. (2025). Model selection in structural equation modeling. In Handbook of Structural Equation Modeling. [Note: Based on the provided chapter content]
  • Schwarz, G. (1978). Estimating the dimension of a model. Annals of Statistics, 6(2), 461–464.
  • Wasserman, L. (2000). Bayesian model selection and model averaging. Journal of Mathematical Psychology, 44(1), 92–107.

사람과 고기

이 영화는 노인 빈곤과 고독을 ‘공짜 고기’라는 엉뚱하면서도 씁쓸한 설정으로 풀어낸, 웃기지만 보고 나면 마음이 오래 남는 작품이다. 장용, 박근형, 예수정이라는 연기파 베테랑 배우가 풀어내는 이 영화는 가볍게 시작하지만, 결국 “먹고사는 문제”와 인간의 존엄, 그리고 사회가 밀어낸 노인들의 현실을 정면으로 마주하게 만드는 영화이다.

Chap 10. 구조방정식 모델 적합도 탐구

안녕하세요!
오늘은 구조방정식 모델링(SEM)의 핵심인 ‘모델 적합도(Model Fit)’에 대해 함께 탐구해 보겠습니다.

구조방정식은 복잡한 교육 현상을 정교하게 분석할 수 있는 강력한 도구이지만, 우리가 세운 가설 모델이 실제 데이터와 얼마나 잘 맞는지를 확인하는 ‘적합도 평가’ 과정을 제대로 이해하지 못하면 잘못된 결론에 도달하기 쉽습니다.

이번 시간에는 교육심리 연구 사례를 바탕으로 모델 적합도의 기초부터 최신 동향까지 상세히 살펴보겠습니다.


1. 모델 적합도란 무엇인가?

우리가 중학생들의 ‘교사 지지’‘학습 참여’를 매개로 ‘학업 성취’에 미치는 영향을 연구한다고 가정해 봅시다. 우리는 다음과 같은 모델 구성 요소를 설정하게 됩니다.

  1. 측정 성분(Measurement Component): 설문 문항(관측 변수)들이 ‘교사 지지’나 ‘학습 참여’라는 잠재 개념을 잘 측정하고 있는가?
  2. 구조 성분(Structural Component): ‘교사 지지’가 ‘학습 참여’를 통해 ‘학업 성취’로 이어지는 가설 경로가 타당한가?
  3. 평균 성분(Mean Component): 집단 간(예: 남학생 vs 여학생) 잠재 변수의 평균 수준에 차이가 있는가?

모델 적합도 평가는 “우리가 가설로 세운 이 모델이 실제 관찰된 데이터(분산-공분산 행렬)를 얼마나 잘 재현해내는가?”라는 질문에 답하는 과정입니다.

2. 기초 이론: 카이제곱(χ2\chi^2) 테스트와 불일치 함수

모델 추정(주로 최대우도법, ML)은 관찰된 공분산 행렬(SS)과 모델에 의해 예측된 공분산 행렬(Σ^\hat{\Sigma}) 사이의 차이를 최소화하는 방향으로 진행됩니다.

카이제곱(χ2\chi^2) 통계치

전통적인 적합도 검정은 카이제곱 테스트를 사용합니다. 이 테스트의 영가설(H0H_0)은 “모델이 인구 집단의 데이터를 완벽하게 적합한다”는 것입니다.

  • 판단 기준: p>.05p > .05이면 영가설을 기각하지 못하므로 모델이 데이터를 잘 설명한다고 봅니다.
  • 한계: 샘플 사이즈(NN)에 매우 민감합니다. 표본이 크면 아주 미세한 차이도 통계적으로 유의미한 것으로 나타나 영가설이 기각(부적합 판정)될 가능성이 큽니다.

WaurimaL의 한마디: “모든 모델은 실제의 근사치일 뿐 완벽할 수 없습니다. 따라서 p<.05p < .05가 나왔다고 해서 실망할 필요는 없습니다. 이를 보완하기 위해 ‘실무적 적합도 지수’를 함께 살펴봐야 합니다.”

3. 주요 실무적 적합도 지수 (Global Fit Indices)

연구자들이 논문에서 가장 흔히 보고하는 지수들을 중심으로 정리해 보겠습니다.

구분지수 명칭약어성격이상적 기준
절대 적합도표준화 잔차 제곱평균제곱근SRMRBadness
(낮을수록 좋음)
<.08< .08
오차 근사치근사 오차 제곱평균제곱근RMSEABadness
(낮을수록 좋음)
<.06< .06
비교 적합도비교 적합도 지수CFIGoodness
(높을수록 좋음)
>.95> .95
비교 적합도터커-루이스 지수TLIGoodness
(높을수록 좋음)
>.95> .95

지수별 핵심 포인트

  • SRMR: 관찰된 상관관계와 예측된 상관관계 사이의 평균적인 차이를 나타냅니다. 0에 가까울수록 좋습니다.
  • RMSEA: 모델의 복잡성을 고려(페널티 부여)하는 지수입니다. 90% 신뢰구간을 함께 보고하는 것이 권장됩니다.
  • CFI & TLI: 아무런 관계가 없는 ‘독립 모델’에 비해 우리 모델이 얼마나 개선되었는지를 나타냅니다.

4. 적합도 평가의 함정: ‘신뢰도 역설’과 데이터 품질

연구자들을 가장 당혹스럽게 만드는 것 중 하나가 ‘신뢰도 역설(Reliability Paradox)’입니다.

  • 현상: 측정 도구의 신뢰도가 높고 요인 부하량(Factor Loadings)이 클수록(즉, 좋은 데이터일수록), 오히려 모델 적합도 지수는 나빠지는 경향이 있습니다.
  • 이유: 데이터의 질이 좋을수록 모델의 미세한 결함이 더 엄격하게 드러나기 때문입니다.

실제 예시: “선생님, 제가 설문 문항을 정말 정교하게 만들어서 요인 부하량이 전부 0.9가 넘는데, 왜 CFI가 0.90밖에 안 나올까요?” -> 이것이 바로 신뢰도 역설의 전형적인 사례입니다. 데이터가 너무 좋아서 모델의 미세한 오차가 부각된 것이죠.

5. 최신 전략: 동적 적합도 기준 (Dynamic Fit Index)

Hu & Bentler(1999)가 제시한 기준(CFI>.95CFI > .95 등)은 특정 조건의 시뮬레이션 결과일 뿐, 모든 모델에 적용되는 절대 법칙은 아닙니다. 최근에는 자신의 모델과 데이터 특성에 맞는 맞춤형 기준을 생성하는 방법이 주목받고 있습니다.

R을 이용한 모의 자료 생성 및 적합도 분석 예시

학교 교육 환경을 가정한 시나리오로 R 코드를 작성해 보겠습니다.

  • 시나리오: 학생 300명을 대상으로 ‘교사 지지(TS)’, ‘학습 참여(SE)’, ‘학업 성취(AA)’를 측정. 각 잠재변수는 3개의 문항으로 구성됨.

R

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

# 1. 모의 데이터 생성 (Story-based Data Generation)
set.seed(2025)
n <- 300
# 잠재변수 생성
TS <- rnorm(n)
SE <- 0.6 * TS + rnorm(n, sd = 0.5)
AA <- 0.7 * SE + rnorm(n, sd = 0.4)

# 관측변수(설문문항) 생성
data <- data.frame(
  ts1 = 0.8*TS + rnorm(n), ts2 = 0.7*TS + rnorm(n), ts3 = 0.9*TS + rnorm(n),
  se1 = 0.8*SE + rnorm(n), se2 = 0.7*SE + rnorm(n), se3 = 0.8*SE + rnorm(n),
  aa1 = 0.9*AA + rnorm(n), aa2 = 0.8*AA + rnorm(n), aa3 = 0.7*AA + rnorm(n)
)

# 2. 모델 설정
model <- '
  # 측정 모델
  TeacherSupport =~ ts1 + ts2 + ts3
  Engagement     =~ se1 + se2 + se3
  Achievement    =~ aa1 + aa2 + aa3
  
  # 구조 모델
  Engagement ~ TeacherSupport
  Achievement ~ Engagement
'

# 3. 모델 추정
fit <- sem(model, data = data)

# 4. 적합도 지수 확인
summary(fit, fit.measures = TRUE, standardized = TRUE)

맞춤형 기준 생성 (Wolf & McNeish 방식)

McNeish와 Wolf(2022)는 dynamicfit 앱이나 R 패키지를 통해 연구자의 모델 구조, 샘플 사이즈에 최적화된 컷오프(Cut-off) 값을 찾을 것을 권장합니다.

6. 결론 및 제언

모델 적합도는 단순히 0.950.95라는 숫자를 넘기기 위한 게임이 아닙니다.

  1. 전체적 관점: 글로벌 지수(CFI, RMSEA 등)뿐만 아니라 개별 잔차(Residuals)를 살펴 어디서 문제가 생겼는지 파악해야 합니다.
  2. 이론 우선: 적합도를 높이기 위해 이론적 근거 없이 수정 지수(Modification Indices)에 의존해 경로를 추가하는 것은 지양해야 합니다.
  3. 복합적 해석: 데이터의 품질(신뢰도), 표본 크기, 모델의 복잡성을 모두 고려하여 ‘전문가적 판단’을 내려야 합니다.

참고문헌 (APA Style)

  • Anderson, J. C., & Gerbing, D. W. (1988). Structural equation modeling in practice: A review and recommended two-step approach. Psychological Bulletin, 103(3), 411–423.
  • Bentler, P. M., & Bonett, D. G. (1980). Significance tests and goodness of fit in the analysis of covariance structures. Psychological Bulletin, 88, 588–606.
  • Hu, L.-T., & Bentler, P. M. (1999). Cutoff criteria for fit indexes in covariance structure analysis: Conventional criteria versus new alternatives. Structural Equation Modeling, 6, 1–55.
  • McNeish, D., & Wolf, M. G. (2022). Dynamic fit index cutoffs for confirmatory factor analysis models. Psychological Methods.
  • West, S. G., Wu, W., McNeish, D., & Savord, A. (2025). Model fit in structural equation modeling. In Handbook of Structural Equation Modeling.

Chap 09. 구조방정식 모델링(SEM)에서의 검증력 분석

안녕하세요, 여러분.
이번에는 구조방정식 모델링(SEM) 연구를 설계할 때 가장 많이 받는 질문 중 하나인 “샘플 사이즈를 얼마나 잡아야 하나요?”에 대해 심도 있게 다루어 보겠습니다. 단순히 “사람이 많을수록 좋다”는 식의 접근이 아니라, 우리가 세운 가설이 실제 효과가 있을 때 이를 통계적으로 유의하게 찾아낼 확률인 ‘통계적 검증력(Statistical Power)’ 관점에서 접근해 봅시다.

1. 검증력 분석의 기초: 왜 필요한가?

1.1. 사전 검증력 분석 (A priori Power Analysis)

연구를 시작하기 전, 즉 데이터를 수집하기 전에 필요한 표본 크기를 결정하는 과정을 말합니다. 이는 연구자의 소중한 자원과 시간을 낭비하지 않게 해주며, 특히 연구 재단에 연구비를 신청할 때 표본 크기의 타당성을 입증하는 근거로 필수적입니다.

1.2. 사후 검증력 분석 (Post hoc Power Analysis)의 함정

데이터 수집 후 결과가 유의하지 않게 나왔을 때 “혹시 검증력이 부족해서인가?”를 확인하는 과정입니다. 하지만 많은 학자들은 사후 검증력 분석이 이미 나온 p-값의 다른 표현일 뿐이며, 큰 의미를 갖기 어렵다고 비판합니다. 따라서 우리는 오직 사전 검증력 분석에 집중할 것입니다.

2. SEM 검증력의 결정 요인

전통적인 통계(ANOVA 등)보다 SEM에서의 검증력 분석은 훨씬 복잡합니다. 다음과 같은 수많은 ‘움직이는 과녁’들이 검증력에 영향을 미치기 때문입니다.

  • 표본 크기 (Sample Size): 가장 핵심적인 요인입니다.
  • 모델의 복잡성: 측정 변수와 잠재 변수의 개수.
  • 데이터의 분포: 정규성 위반 여부.
  • 결측치 패턴: 데이터가 얼마나 빠져 있는가.
  • 모델 오지정(Misspecification)의 정도: 실제 모델과 가설 모델의 차이.

3. 분석 전략 (1): 전체 모델 적합도 중심 (RMSEA 방식)

SEM은 모델이 데이터에 얼마나 잘 맞는지를 평가하는 ‘전체 적합도’가 중요합니다. MacCallum 등(1996)은 RMSEA 지수를 활용한 검증력 분석법을 제안했습니다.

3.1. 영가설과 대립가설의 설정

보통 SEM에서는 “모델이 완벽하게 맞는다(Exact fit, RMSEA=0RMSEA=0)”를 영가설로 두지만, 현실적으로 모델은 복잡한 현실의 단순화이기에 어느 정도의 오차는 존재합니다. 따라서 우리는 다음과 같이 설정합니다.

  • 영가설(H0H_0): 모델 적합도가 좋지 않다 (RMSEA.05RMSEA \ge .05).
  • 대립가설(H1H_1): 모델 적합도가 우수하다 (RMSEA<.05RMSEA < .05).

이때, 우리가 실제로 기대하는 모델의 적합도(ϵ1\epsilon_1)를 설정(예: .02)하여 분석을 수행합니다.

위 그림처럼, 표본 크기가 커질수록 영가설 분포와 대립가설 분포 사이의 거리가 멀어지며 검증력이 높아집니다.

4. 분석 전략 (2): 개별 파라미터 중심 (Satorra-Saris 방식)

모델 전체가 잘 맞는 것보다 특정 경로(예: 교사 지지가 학업 성취에 미치는 영향)의 유의성을 검증하는 것이 주 목적인 경우입니다.

4.1. 분석 단계

  1. 유의수준(α\alpha)과 목표 검증력(π\pi) 설정: 보통 α=.05\alpha=.05, π=.80\pi=.80으로 설정합니다.
  2. 모수치 설정 (Population Values): 선행 연구를 바탕으로 기대되는 경로 계수값들을 정합니다.
  3. 모델 비교: 특정 경로가 ‘있는’ 모델(Full Model)과 ‘없는’ 모델(Reduced Model)의 카이스퀘어(χ2\chi^2) 차이를 이용해 필요한 표본 크기를 계산합니다.

5. 교육 연구 사례를 통한 실습

5.1. 가상 시나리오: “중학생의 학업 성취 모델”

중학교 상담 교사인 김 박사는 다음과 같은 가설을 세웠습니다.

  • 잠재변수: 수학 자기효능감(F1), 수학 불안(F2), 교사 지지(F3) \rightarrow 수학 성취도(F4)에 영향.
  • 각 잠재변수는 여러 개의 설문 문항(관측변수)으로 측정됩니다.

5.2. 모의 자료 생성 (Story-based Simulation)

김 박사가 238명의 학생을 대상으로 설문했다고 가정하고, R을 이용해 실제와 유사한 데이터를 생성해 보겠습니다.

R

# R을 이용한 모의 데이터 생성 코드
library(lavaan)

# 1. 인구 모델 정의 (Population Parameter Values 기준) [cite: 421, 492]
pop_model <- '
  F1 =~ 0.9*v1 + 0.8*v2 + 0.7*v3
  F2 =~ 0.8*v4 + 0.7*v5 + 0.8*v6
  F3 =~ 0.9*v7 + 0.8*v8 + 0.8*v9 + 0.7*v10
  F4 =~ 0.95*v11 + 0.9*v12
  
  # 경로 계수 설정 [cite: 492]
  F4 ~ 0.2*F1 + (-0.25)*F2 + 0.3*F3
  
  # 요인 간 상관 및 잔차 [cite: 492]
  F1 ~~ -0.3*F2
  F1 ~~ 0.4*F3
  F2 ~~ -0.3*F3
'

# 2. 데이터 생성 (N=238) 
set.seed(123)
sim_data <- simulateData(pop_model, sample.nobs = 238)
write.csv(sim_data, "school_achievement_data.csv", row.names = FALSE)

5.3. jamovi에서의 구현

현재 jamovi의 기본 SEM 모듈(jSEM)은 사후 적합도 평가는 우수하지만, ‘사전 검증력 분석’ 기능을 내장하고 있지는 않습니다. 따라서 jamovi에서 모델을 돌리기 전, WebPower 사이트나 R의 simsem 패키지를 활용해 계산해야 합니다.

실무 지침:

  1. WebPower(webpower.psychstat.org)에 접속합니다.
  2. ‘Statistical Power Analysis for Structural Equation Modeling’ 메뉴를 선택합니다.
  3. 앞서 설정한 자유도(df)와 기대하는 RMSEA 값을 입력하여 필요 샘플 수를 확인합니다.
  4. 확인된 샘플 수만큼 데이터를 수집한 후, jamovi의 jSEM 모듈에서 분석을 수행합니다.

6. 몬테카를로(Monte Carlo) 접근법의 활용

데이터가 정규분포를 따르지 않거나 결측치가 많을 것으로 예상될 때는 수식에 의존하는 분석보다 몬테카를로 시뮬레이션이 훨씬 정확합니다. 이는 컴퓨터가 가상의 데이터를 수천 번 생성하여 실제로 가설이 기각되는 비율을 직접 계산하는 방식입니다.

  • 장점: 결측치 처리 방식(MAR, MNAR 등)을 미리 반영하여 검증력을 예측할 수 있습니다.
  • 도구: R의 simsem 패키지가 대표적입니다.

7. 결론 및 제언

구조방정식 연구에서 검증력 분석은 단순히 통과해야 할 관문이 아니라, 연구 결과의 재현성(Reproducibility)을 보장하는 장치입니다.

  1. 모델이 복잡할수록 더 많은 표본이 필요합니다.
  2. 표준적인 ‘경험 법칙'(n=200n=200 등)에 의존하기보다 자신의 모델에 맞춘 맞춤형 검증력 분석을 실시하십시오.
  3. 예산이 부족하다면 계획된 결측 설계(Planned Missing Design)를 통해 효율적으로 검증력을 확보하는 방법도 고려해 볼 수 있습니다.

참고문헌

  • Bentler, P. M., & Chou, C.-P. (1987). Practical issues in structural modeling. Sociological Methods & Research, 16(1), 78–117.
  • Browne, M. W., & Cudeck, R. (1992). Alternative ways of assessing model fit. Sociological Methods & Research, 21(2), 230–258.
  • Feng, Y., & Hancock, G. R. (2025). Power analysis within a structural equation modeling framework. In Handbook of Structural Equation Modeling.
  • Hancock, G. R., & French, B. F. (2013). Power analysis in structural equation modeling. In G. R. Hancock & R. O. Mueller (Eds.), Structural equation modeling: A second course (2nd ed., pp. 117–159). Information Age.
  • MacCallum, R. C., Browne, M. W., & Sugawara, H. M. (1996). Power analysis and determination of sample size for covariance structure modeling. Psychological Methods, 1(2), 130–149.
  • Muthén, L. K., & Muthén, B. O. (2002). How to use a Monte Carlo study to decide on sample size and determine power. Structural Equation Modeling, 9(4), 599–620.
  • Satorra, A., & Saris, W. E. (1985). Power of the likelihood ratio test in covariance structure analysis. Psychometrika, 50(1), 83–90.