如何使用lme4 / nlme生成对变化变量的估计?

时间:2017-12-28 13:14:50

标签: r lme4 mixed-models nlme longitudinal

我对R和混合模型分析相当新。

我希望根据ln_ahr为每个人生成变量time的变化的单一估算值。我相信这可以被认为是时间变化的斜率。以下是我的数据结构(长格式):

       v001   ln_ahr    time
13404 28337 0.28438718    0
13405 28337         NA    3
13406 28337         NA    6
13407 28337 1.05015991    9
13408 28337         NA   12
13409 28337 1.33345188   15
13410 28337         NA   19
13413 28355 1.14904314    0
13414 28355         NA    3
13415 28355 1.06546008    6
13416 28355         NA    9
13417 28355 1.17865500   12
13418 28355 2.84949593   15
13423 29983 0.07015499    0
13424 29983 0.21056477    3
13426 29983 0.36125306    9
13427 29983 0.66139848   12
13428 29983 0.16962391   16

其中v001是主题标识符。

我尝试使用R中的nlme包计算斜率:

   slope <- lme(ln_ahr~time,random=~1+time|v001,
                data=restructured,na.action="na.omit")

我尝试获取ranef(slope)coef(slope)值。我读到coef(slope)值“计算每个分组因子的每个解释变量的固定和随机效应系数的总和”因此我认为打印出时间系数(省略截距值)会给我估计每个人ln_ahr随时间的变化,我可以将其作为我的“斜率”或ln_ahr的变化估算。

时间计算为time 0表示ln_ahr测量的第一年的年份;每个人每三年测量一次。

我想知道这是否是一个正确的方法,或者我是否正确地做到了;如果不是你的建议是什么?

1 个答案:

答案 0 :(得分:1)

基本答案是“是”; lme4::coef()返回的数字是特定主题的估计参数。

此示例的变体出现在互联网上,但是:

适合lme4

中的一个基本随机斜率示例
library(lme4)
fm1 <- lmer(Reaction~Days+(Days|Subject),sleepstudy)

提取每组的估计截距和斜率(主题):

d1 <- coef(fm1)$Subject
d1$Subject <- rownames(d1)

为了进行比较,为每个组拟合一个单独的模型,并提取特定于主题的斜率和截距:

fm2 <- lmList(Reaction~Days|Subject,sleepstudy)
d2 <- coef(fm2)
d2$Subject <- rownames(d2)

绘图(随机效应估计为实线;固定效应虚线)

library(ggplot2); theme_set(theme_bw())
gg0 <- ggplot(sleepstudy,aes(Days,Reaction,
                      colour=Subject))+
  geom_point()+
  geom_abline(data=d1,
        mapping=aes(intercept=`(Intercept)`,
                    slope=Days,colour=Subject))+
  geom_abline(data=d2,linetype=2,
              mapping=aes(intercept=`(Intercept)`,
                          slope=Days,colour=Subject))  

enter image description here

Doug Bates不喜欢这些“意大利面条”与所有团体在一个小组中,他更喜欢方面:

gg0+facet_wrap(~Subject)+
 theme(panel.spacing=grid::unit(0,"lines"))          

enter image description here

(理想情况下,我们也会以某种非任意的方式对受试者进行排序,例如通过斜率)