如何在混合效应逻辑模型中用 rcs 项预测 ln(odds)?

How to predict ln(odds) with rcs term in mixed effects logistic model?

我正在使用“lme4”包来拟合混合效应非线性逻辑模型来访问 Y 和 X 的关联。由于我的数据的响应变量是二进制的,而 nlmer 函数要求响应变量是连续的,所以我使用glmer 函数和“rms”包函数 rcs 来拟合模型并可视化非线性关联,如下面的 R 代码:

library(lme4)
library(rms)
m <- glmer(r2 ~ rcs(Anger, 5) + Gender + situ + btype + (1 | id), 
           data = VerbAgg, family = binomial("logit"),
           control=glmerControl(optimizer="bobyqa"))
p <- predict(m, newdata = VerbAgg, type = "link")
scatter.smooth(VerbAgg$Anger,p,pch='.',col="blue",lpars=list(type="l",col="red"))

我对使用此代码有一些疑问:

  1. 代码是否正确?
  2. 如何预测r2的ln(Odds)?是“p <- predict(m, newdata = VerbAgg,类型 = "link")" ?
  3. 如何可视化r2和Anger的ln(Odds)样条曲线?是吗 正确使用“scatter.smooth”函数绘制并添加平滑 散点曲线?
  4. 如何获得此模型的 P 非线性?
  1. 看起来很合理。
  2. 是的。只需 predict(m) 就可以为您提供每次观察的预测对数几率(因为 predict 默认使用原始数据,并且 type = "link" 也是默认值)。 (但更明确一点也无妨。)
  3. 您可以构建一个数据框,该数据框具有非焦点预测变量的基线值并且 Anger 跨越适当的值范围,然后将其用作 newdata predict 称呼。或者您可以使用 emmeanseffects 包,它们都试图为您自动执行此过程。

这对我有用(ns 的自然样条似乎与 lme4 的集成比 rcs 更好)

library(lme4)
library(effects)
m <- glmer(r2 ~ splines::ns(Anger, df = 5) + Gender + situ + btype + (1 | id), 
           data = VerbAgg, family = binomial("logit"),
           control=glmerControl(optimizer="bobyqa"))
plot(Effect("Anger", m)

您可以使用 car::Anova() 或通过模型比较(似然比检验)对样条项进行显着性检验:

m0 <- update(m, r2 ~ Gender + situ + btype + (1 | id))
anova(m, m0)