안녕하세요.
여러분과 함께 확인적 요인분석(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를 하는가?
- 척도 개발 및 타당화: 설문지가 의도한 구조대로 작동하는지 확인합니다.
- 방법 효과(Method Effects) 검출: 문항의 표현 방식(역채점 문항 등) 때문에 발생하는 오차의 상관을 모델링할 수 있습니다.
- 수렴 및 판별 타당도 검증: 비슷한 개념의 지표끼리 강하게 묶이는지(수렴), 서로 다른 개념이 충분히 구분되는지(판별) 확인합니다.
- 측정 동일성(Measurement Invariance) 평가: 성별이나 문화권에 따라 척도가 동일하게 기능하는지 분석합니다.
2.2 모델의 주요 파라미터
- 요인 부하량(Factor Loadings, ): 요인이 지표를 예측하는 회귀 계수입니다.
- 고유 변량(Unique Variances, ): 요인에 의해 설명되지 않는 나머지 오차 부분입니다.
- 요인 분산 및 공분산(): 잠재 변수 자체의 변동성과 변수 간의 관계를 나타냅니다.
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를 수행하려면 잠재 변수의 척도를 정해야 합니다.
- 지표 고정법(Marker Indicator): 한 문항의 부하량을 1.0으로 고정하여 해당 문항의 단위를 잠재 변수에 부여합니다. (Jamovi/Mplus 기본값)
- 분산 고정법(Fixed Factor Variance): 요인의 분산을 1.0으로 고정합니다.
또한, 알고 있는 정보(데이터의 분산/공분산)가 추정할 파라미터 수보다 많아야 합니다(과잉 식별, df > 0).
4.2 적합도 지수 (Goodness-of-Fit)
모델이 실제 데이터를 얼마나 잘 모사하는지 평가합니다.
- (Chi-square): 이면 완벽한 적합을 의미하지만, 표본 크기에 민감하여 보통 참고용으로만 봅니다.
- CFI / TLI: .95 이상이면 우수한 적합도로 봅니다.
- RMSEA: .06 이하(또는 .08 이하)를 양호한 수준으로 봅니다.
- SRMR: .08 이하일 때 모델이 데이터를 잘 설명한다고 봅니다.
5. 모델 수정 (Respecification)
만약 적합도가 낮다면 어떻게 해야 할까요?
- 수정 지표(Modification Indices, MI): “특정 오차끼리 상관을 맺어주면 가 이만큼 줄어들 것이다”라고 알려주는 지표입니다.
- 차이 검증: 원래 모델(경직된 모델)과 파라미터를 추가한 모델(유연한 모델)을 비교하여 통계적으로 유의한 개선이 있는지 확인합니다.
⚠️ 주의: 수정 지표에만 의존해 모델을 고치는 것은 ‘데이터 끼워맞추기(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.
