【问题标题】:logistic 3 way interaction with MLR estimator in R与 R 中的 MLR 估计器进行逻辑 3 路交互
【发布时间】:2018-07-14 19:28:08
【问题描述】:

我正在尝试重新创建最初在 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 中做到这一点?

非常感谢您的帮助!

【问题讨论】:

  • 样本数据集有助于了解变量的类型,例如二进制、多类、数字等。 (1) 响应变量 Voluntary_Turnover_measure 的类型是什么? (2) 这里的 MLR 是什么意思?谢谢。
  • 您好!虽然我无法提供数据集,但 DV(自愿营业额)是二进制的,而方程中的所有其他变量都是数字的。在 MPlus(Yuan-Bentler 校正)中使用 MLR 估计量而不是最大似然估计量,因为一些变量(DJ、PJ、IntJ 和 InfJ)彼此高度相关,打破了独立性假设。我不确定如何在 R 中使用带有逻辑回归的 MLR 估计器。

标签: r logistic-regression robust


【解决方案1】:

在下面的代码中使用了lavaan() 包。样本数据是根据问题创建的以适合ML (maximum likelihood)。 likelihood="wishart" 的使用与 MPlus 程序类似。如果需要手动安装,可以从这里下载软件包:cfa()lavaan()。请注意,模型实现可能会因数据和参数而异。Documentation 讨论了设置模型的替代方法。在这个样本模型中,所有因素都没有被使用,因为它遇到了方差问题。

导入库

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)

【讨论】:

  • 非常感谢!只是为了确认一下,我不需要在 lavaan 模型中指定它是逻辑回归而不是 OLS?
  • 谢谢。我不能确定。文档说如果estimator=MMLlogit 可以在link 中指定(默认为probit)。但是在上面的代码中使用了estimator=MLR。我会更详细地参考文档以根据数据类型设置模型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-18
  • 1970-01-01
  • 2017-08-09
  • 1970-01-01
  • 2018-08-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多