r - 与 R 中的 MLR 估计器进行逻辑 3 路交互
问题描述
我正在尝试重新创建最初在 MPlus 中完成的特定数据集的分析,而不是使用 R。但是,我不知道如何在 R 中使用逻辑回归指定 MLR 估计器。
我的原始模型如下所示:
Model1_logit <- glm(formula = Voluntary_Turnover_measure ~ IV_customerinjustice * Mod1_performance * Mod2_exhaustion
+ dem_age + Demands + DJ + PJ + IntJ + InfJ,
family = binomial(link = "logit"), data = SIOP_REDUCED_DATA, na.rm=TRUE)
summary(Model1_logit)
由于某些术语彼此高度相关,因此完成此分析的研究人员使用 MLR 估计器进行更稳健的回归。我怎样才能在 R 中做到这一点?
非常感谢你的帮助!
解决方案
在下面的代码中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)
推荐阅读
- machine-learning - 如何为神经网络训练(keras)准备不同输入大小的输入?
- visual-studio - 如何使用 Google API 版本 3 通过 VS 2019 部署到 Google 商店
- git - 在合并之前运行 GitHub 状态检查,但不是在每次提交时
- rust - 如何更改函数以与 Rayon 并行运行?
- python - 使用 globals 参数了解 exec 语句
- nvidia - 使用 Chapel 使用两个 Nvidia Jetson nano 开发人员套件时遇到问题
- android - 从云 Firestore 检索数据后如何删除时区值?
- python - 如何编写一个函数,该函数将返回包含从文本文件加载的数据的字典
- git - git pull 请求和 git push 命令有什么区别
- python-3.x - Hyperledger 锯齿块始终挂起