绘制nlme结果并获得不同的截距

时间:2019-03-27 14:25:52

标签: r ggplot2

我正在nlme中运行lme,当我尝试绘制结果(使用来自已回答问题here的代码)时,得到的结果与所得模型系数不同,即截距。这是在绘制随机效果拦截,而不是固定效果拦截吗?

model<-lme(Y~A+ Group + A*Group, random=~1|Subject, data.in2)

    > summary(model)
     Linear mixed-effects model fit by REML
    Data: data.in2 
     AIC      BIC    logLik
  3203.191 3227.229 -1595.596

Random effects:
 Formula: ~1 | Subject
        (Intercept) Residual
StdDev:     17.6086 10.03305

Fixed effects: Y ~ A + Group + A * Group 
               Value Std.Error  DF   t-value p-value
(Intercept) 42.36244  7.122246 360  5.947905  0.0000
A           -1.05472  0.144155 360 -7.316565  0.0000
Group1      -7.49777 12.920964  46 -0.580279  0.5646
A:Group1     0.00180  0.291035 360  0.006195  0.9951
 Correlation: 
         (Intr) A      Group1
A        -0.902              
Group1   -0.551  0.497       
A:Group1  0.447 -0.495 -0.888

Standardized Within-Group Residuals:
        Min          Q1         Med          Q3         Max 
-2.99649773 -0.50936511 -0.01409361  0.55007319  4.11784199 

Number of Observations: 410
Number of Groups: 48

图形代码为:

newdata<-expand.grid(Group=unique(data.in2$Group), A=c(min(data.in2$A), max(data.in2$A)))

[![ggplot(data.in2, aes(x=A, y=Y, colour=Group)) + geom_point(size=1) +
  geom_line(aes(y=predict(model), group=Subject, size="Subjects"))+
  geom_line(data=newdata, aes(y=predict(model, level=0, newdata=newdata), size="Population")) +
  scale_size_manual(name="Predictions", values=c("Subjects"=0.5, "Population"=3), guide="none")][2]][2]

我也在尝试附加图像,但不确定如何。 https://i.stack.imgur.com/rfNwP.png

1 个答案:

答案 0 :(得分:0)

您的模型公式与您的输出符号不匹配。您提供的输出的正确模型公式为:

model<-lme(Y ~ A + Group + A:Group, random=~1|Subject, data.in2)

等同于:

model<-lme(Y ~ A*Group, random=~1|Subject, data.in2)

如果您告诉我们有关A和Group变量的更多信息,我们可以评论您提供的模型输出。

附录:

从您的帖子中不清楚“获得不同的拦截”是什么意思。在您的模型中,假设每组中每个主题的Y和A之间的关系都是线性的(例如,Y的值会随着A的增加而减小);截取该关系的直线的截距允许在组内的各个对象之间不同,但假定该组内的各个对象之间的斜率相同。斜率表示给定组中给定对象的A值每增加1个单位,Y的期望值的变化率。

因为您的模型包括A与组之间的截距,所以进一步假设第一组中的对象的斜率与第二组中的对象的斜率不同。 A和Group之间的交互作用的p值非常大,因此您的数据似乎不支持此假设。这就是为什么在您的绘图中看到两组对象的斜率大致相同的原因。

第一个组(组= 0)中的“典型”主题的截距为42.36244,斜率为-1.05472。第一组中的其他对象具有相同的斜率,但截距在“典型”截距值42.36244上随机变化。您可以使用ranef()命令从此“典型”截距中提取偏差。将这些偏差添加到第一组的“典型”截距中,将为您提供第一组对象的特定于对象的截距。

第二组(组= 1)中的“典型”主题的截距为42.36244 +(-7.49777),斜率为-1.05472 +(0.00180)。第二组中的其他对象具有相同的斜率-1.05472 +(0.00180),但截距在“典型”截距值42.36244 +(-7.49777)上随机变化。您可以使用ranef()命令从此“典型”截距中提取偏差-只需确保将每个偏差与第2组中的相应主题匹配即可。将这些偏差添加到第二组的“典型”截距中将为您提供第二组对象的特定于对象的拦截。

您在摘要模型和ranef()命令中具有足够的信息,可以从头开始实际构建绘图,并查看它是否与您在此处显示的绘图匹配。