因子分析(factor analysis)可分为探索性因子分析法(Exploratory Factor Analysis,EFA)和验证性因子分析(Confirmatory Factor Analysis,CFA)两类,借助SPSS只能进行探索性因子分析。在R中,通过lavaan包(Latent Variable Analysis Package)可以进行验证性因子分析,本文将以一个简单的分析例子,讲述如何用R进行CFA。
#####################################################################
library(readxl) #####载入可以读取EXCEL文件的包####
data = read_excel("C:/.../data.xlsx") #####读取EXCEL数据文件#####
library(lavaan) #####载入lavaan包#####
#####假设需要验证的模型有4个维度,每个维度分别有五道题,构建CFA模型########
HS.model = ' D1 =~ Q01 + Q02 + Q03 + Q04 + Q05
D2 =~ Q06 + Q07 + Q08 + Q09 + Q10
D3 =~ Q11 + Q12 + Q13 + Q14 + Q15
D4 =~ Q16 + Q17 + Q18 + Q19 + Q20 '
fit = cfa(HS.model, data=data, sample.cov = TRUE) ####进行验证性因子分析##
fitMeasures(fit) #提取各拟合指标#
fitMeasures(fit, c("chisq","df","pvalue","rmr","rmsea","gfi","agfi","nfi","rfi","ifi","tli","cfi")) ##提取特定的分析结果###
summary(fit, standardized = TRUE, fit.measures=TRUE, modindices = TRUE) #提取各项指标#
parameterEstimates(fit) #提取未标准化各因子载荷#
standardizedSolution(fit) #提取标准化各因子载荷#
fitted(fit) #提取协方差矩阵#
inspectSampleCov(HS.model, data=data) #提取样本协方差矩阵#
lavInspect(fit, "cov.all") #提取所有元素的协方差矩阵#
lavInspect(fit, "cor.all") #提取所有元素的相关矩阵#
resid(fit, type="standardized") #提取标准化的残差矩阵#
modindices(fit) #提取修正指数#
###########END#################