【问题标题】:Interpreting and plotting piecewise lme regression (sjPlot)解释和绘制分段 lme 回归 (sjPlot)
【发布时间】:2019-12-12 05:41:28
【问题描述】:

我在 R 中运行 LME(线性混合效应回归),其中节点由诊断时间 (t=0) 确定。所以模型现在是:

lme(function ~ age+sex+timepre*marker+timepost*marker, random=~time|ID, data=data)

因此:timepre 是从 t=0 开始的所有内容为 0 且在此之前为 0-time 的地方,而 timepost 是在诊断之前为 0 且之后为 0+time 的所有内容。 时间是 timepre 和 timepost 的组合。

我现在想使用 sjPlot 库绘制这些影响,因为它很好地给出了预测值(已针对协变量进行了校正),并将其作为可以在 t=0 处看到结的图。

plot_model(model, type="int")

相反,它绘制了两个不同的图,一个用于每个交互。有没有办法将这些图组合起来,使之前和之后的斜率结合在一起(现在截距也不同了)?或者我应该怎么做?

更新:

在谷歌搜索更多之后,我发现了使用样条线而不是两个单独的时间框架的建议。 所以,我现在尝试的是:

lme(function ~ age+sex+bs(time, knots=0, degree=1)*marker, random=~time|ID, data=data)

我可以用 visreg 库来绘制这个图,而且我似乎确实在零处得到了结:

这是正确的吗? 我是否正确认为系数应解释如下:

bs(time, knots = 0, degree = 1)1:marker  12.055090  p= 0.0004
bs(time, knots = 0, degree = 1)2:marker  13.750058  p= 0.0133

第一个系数(12.055 和 p 值 0.0004)表示第一个斜率(在结之前)随标记水平的变化? 第二个系数(13.75,p 值为 0.013)表示第一个和第二个斜率之间的差异作为标记的函数? 那么如何知道第二个斜率的变化作为标记的函数是否显着?

【问题讨论】:

  • 这看起来有一些很好的解释信息:stackoverflow.com/questions/37362738/…
  • 谢谢,但我认为在交互的情况下更难?关于通过交互解释这些系数有什么建议吗?
  • 你不是真的在寻找一个前后虚拟变量与标记的单一交互,然后绘制随机斜率(例如,stackoverflow.com/questions/53855738/…)吗?
  • 嗨,Dominix,这是我最初的目标,因为这就是我学习分段线性回归的方式,但是在绘制它时,前后的线不连接(截取的帖子不正确我想想),我不知道如何得到绘图。对此有什么想法吗?

标签: r data-visualization spline


【解决方案1】:

你不需要为你的时间变量使用样条曲线,特别是如果你只有两个时间点,你不能在这两个点之间拟合任何曲线。因此,您的模型将是:

lme(function ~ age + sex + time * marker, random=~time|ID, data=data)

然后您可以使用plot_model(model, type = "int") 查看两个时间点之间的交互和差异。或者你可以使用 ggeffects 包,它更加灵活。

如果time 变量有两个以上的时间点,那么使用poly() 或样条线可能是有意义的。对于ggeffects,有一个包含多项式项的实际示例here(以及一般介绍here)。

对于你上面的例子:

library(ggeffects)
m <- lme(function ~ age+sex+bs(time, knots=0, degree=1)*marker, random=~time|ID, data=data)
pred <- ggpredict(m, c("time", "marker"))
plot(pred)

【讨论】:

  • 嗨丹尼尔,谢谢,这个可视化效果很好。我确实有两个以上的时间点(时间点之前的 6 个和标记之后的 3 个)。你对如何用样条交互解释系数有什么建议吗?我仍在苦苦挣扎,两条样条曲线(1 和 2)都很重要: bs(时间,结 = 0,度 = 1)1 -15.951946 p=0.0004 bs(时间,结 = 0,度 = 1)2 -18.440233 p= 0.0124 标记 -7.794002 p=0.0061 bs(时间,节 = 0,度 = 1)1:标记 12.055090 p=0.0004 bs(时间,节 = 0,度 = 1)2:标记 13.750058 p=0.0133
  • 样条曲线的系数很难解释,这就是为什么我总是使用效果图来可视化模型结果。
  • 根据您的绘图,您可能已经从置信区间中看到它们是否重叠。如果他们不这样做,这可能表明存在显着差异 - 但不一定。您还可以使用 pairwise() 使用 emmeans 包来调整多重比较。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
  • 2021-12-23
  • 1970-01-01
  • 2012-11-28
  • 2015-03-19
  • 2013-06-05
  • 1970-01-01
相关资源
最近更新 更多