在下面的代码中lavaan()
使用了包。样本数据是根据要拟合的问题创建的ML
( maximum likelihood
)。使用likelihood="wishart"
类似于 MPlus 程序。如果需要手动安装cfa()
,可以从这里下载软件包: 。lavaan()
请注意,模型实现可能会因数据和参数而异。文档讨论了设置模型的替代方法。在这个样本模型中,没有使用所有因子,因为它遇到了方差问题。
导入库
library(lavaan)
library(cfa)
创建示例数据框
# Create sample data
Voluntary_Turnover_measure <- floor(runif(100,0,1.5))
IV_customerinjustice <- abs(rnorm(100,sd=.1))*2
Mod1_performance <- abs(rnorm(100,sd=.1))/10
Mod2_exhaustion <- abs(rnorm(100,sd=.1))/100
dem_age <- abs(floor(runif(100)*100))
Demands <- abs(rnorm(100))
DJ <- abs(rnorm(100))*20
PJ <- abs(rnorm(100))*10
IntJ <- runif(100,1,100)
InfJ <- IntJ**2
plot(IntJ, InfJ)
# Create dataframe
df <- data.frame(Voluntary_Turnover_measure, IV_customerinjustice, Mod1_performance, Mod2_exhaustion,
dem_age, Demands, DJ, PJ, IntJ, InfJ)
规范化数据框值
df_scaled <- scale(df)
df_scaled[,'Voluntary_Turnover_measure'] <- df[,'Voluntary_Turnover_measure'] # Response variable kept not normalized
指定型号
model1 <- 'Voluntary_Turnover_measure = ~ DJ + PJ + IntJ + dem_age + Demands'
估计模型参数
model1.fit <- cfa(model1, data=df_scaled)
summary(model1.fit)
MLR 估计器
mlr.fit <- cfa(model1,
data = df_scaled,
likelihood = "wishart",
estimator='MLR'
)
summary(mlr.fit)
