확인적 요인 분석(CFA)은 척도 또는 설문지의 측정 구조를 테스트하는 데 사용되는 통계적 방법입니다. 척도 또는 설문지가 단일 구성 또는 다중 구성을 측정하는지 여부를 결정하기 위해 심리학, 경영학, 교육학 등 다양한 전공에서 자주 사용됩니다.
오늘은 R에서 Lavaan패키지를 활용해서 CFA를 수행하는 방법에 대해 설명합니다.
필요한 라이브러리 설치
R에서 CFA를 수행하는 첫 번째 단계는 필요한 라이브러리를 설치하고 로드하는 것입니다. R에서 CFA를 위해 가장 일반적으로 사용되는 라이브러리는 lavaan 입니다. 이 라이브러리를 설치하려면 다음 명령을 입력하십시오.
install.packages("라반")
라이브러리가 설치되면 다음 명령을 사용하여 R 환경에 로드할 수 있습니다.
library(lavaan)
데이터 준비
CFA를 수행하기 전에 데이터 형식이 올바른지 확인하는 것이 중요합니다. 데이터는 매트릭스 또는 데이터 프레임 형식이어야 하며 각 행은 주제를 나타내고 각 열은 척도 또는 설문 항목을 나타냅니다. 진행하기 전에 누락된 데이터를 확인하고 누락된 값을 제거하거나 대치하는 것도 중요합니다.
모델 지정
데이터가 준비되면 다음 단계는 모델을 지정하는 것입니다. 이는 CFA 개체를 생성하고 측정 모델을 정의하여 수행됩니다. 측정 모델은 SEM 표기법과 유사한 lavaan 구문을 사용하여 정의됩니다.
예를 들어 두 개의 잠재 변수 x1 및 x2와 세 개의 관측 변수 y1, y2 및 y3이 있는 모델을 지정하려면
AMOS에서는 이렇게 그리면 되지만
R코드로는 이렇게 작성해야합니다
model <- ' x1 =~ y1 + y2 + y3
x2 =~ y4 + y5 + y6'
모델 추정
모델이 지정되면 다음 단계는 lavaan 라이브러리의 cfa 함수를 사용하여 모델을 추정하는 것입니다. cfa 함수는 CFA 개체와 데이터를 입력으로 사용합니다. 이 과정을 흔히 피팅한다고 합니다
fit <- cfa(model, data = data)
모델 평가
모델이 추정되면 모델 적합도를 평가하는 것이 중요합니다. CFI(Comparative Fit Index), TLI(Tucker-Lewis Index) 및 RMSEA(Root Mean Square Error of Approximation)와 같이 일반적으로 사용되는 몇 가지 적합 지수가 있습니다. 0.95보다 큰 CFI 및 TLI와 0.06 미만의 RMSEA는 일반적으로 좋은 모델 적합성을 나타내는 것으로 간주됩니다.
적합 지수를 얻으려면 lavaan 라이브러리의 fitMeasures 함수를 사용할 수 있습니다.
fit_indices <- fitMeasures(fit)
만약 특정 수치들만 보고 싶은 경우에는 이러한 방식으로 적합도 값만확인하는 방법도 있습니다.
# Example
cfi(fit)
tli(fit)
rmsea(fit)
chisq(fit)
수렴타당도
모델을 지정한 후 sem() 함수를 사용하여 모델을 피팅한 다음 loadings() 함수를 사용하여 요인 적재량을 추출할 수 있습니다.
# Example
loadings(fit)
또한 ave() 함수를 사용하여 AVE(Average Variance Extracted)를 확인할 수 있으며 AVE를 확인하려는 모델과 잠재 변수를 지정해야 합니다.
# Example
ave(fit, latent = "x1")
판별 타당도
R에서 lavaan 패키지를 사용하여 CFA에서 판별 유효성을 확인하려면 다음 단계를 사용할 수 있습니다.
모델을 지정한 후 sem() 함수를 사용하여 모델을 적합시킨 다음 cor() 함수를 사용하여 잠재 변수 간의 상관 관계를 추출할 수 있습니다.
# Example
cor(fit, latent = "x1")
sqrt() 함수와 ave() 함수를 함께 사용하여 AVE(SQRT AVE)의 제곱근을 확인할 수도 있습니다. AVE의 제곱근보다 작은 잠재 변수 간의 상관관계는 좋은 판별 타당성을 나타냅니다.
# Example
sqrt(ave(fit, latent = "x1"))
마치며
확인적 요인 분석은 구조방정식 2단계 방법중에 첫단계입니다. 분석의 난이도에 비해 실제 논문에서 적을 내용은 많지 않습니다(타당도가 확보되었다는 이야기만 하기 때문에).
긴글읽어주셔서 감사합니다
'통계 > R' 카테고리의 다른 글
R에서 컴퓨터를 끄는 방법 (0) | 2023.03.22 |
---|---|
R에서 t-test하는 방법 (0) | 2023.02.20 |
사회과학 전공자를 위한 R패키지 추천 (1) | 2023.01.28 |
[R]데이터전처리 할때 필요한 10가지 코드 (0) | 2023.01.27 |
R에서 SPSS파일 다루기 기초 (0) | 2023.01.27 |
최근댓글