首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分段lme回归(sjPlot)的解释与绘制

分段lme回归(sjPlot)的解释与绘制
EN

Stack Overflow用户
提问于 2019-08-03 18:45:46
回答 1查看 1.4K关注 0票数 0

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

代码语言:javascript
复制
lme(function ~ age+sex+timepre*marker+timepost*marker, random=~time|ID, data=data)

因此: timepre是来自t=0的所有东西都是0,在此之前是0时间,而timepost是诊断前的所有东西都是0,而在诊断之后是0+time。时间是timepre和timepost的结合。

现在,我想使用sjPlot库来绘制这些效果,因为它很好地给出了预测值(修正为协变量),并将其作为一个可以在t=0上看到结的图。

代码语言:javascript
复制
plot_model(model, type="int")

相反,它正在绘制两个不同的情节,一个为每个互动。有没有办法将这些地块组合起来,使前后的坡度结合起来(现在截取的坡度也不同了)?或者我该怎么做?

更新:

在搜索了更多之后,我发现了一个建议,即使用样条来代替两个单独的时间框架。所以,我现在尝试的是:

代码语言:javascript
复制
lme(function ~ age+sex+bs(time, knots=0, degree=1)*marker, random=~time|ID, data=data)

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

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

代码语言:javascript
复制
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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-06 19:40:16

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

代码语言:javascript
复制
lme(function ~ age + sex + time * marker, random=~time|ID, data=data)

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

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

对于上面的例子:

代码语言:javascript
复制
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)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57346055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档