如何在R中绘制随机截距和斜率模型

时间:2012-12-14 15:18:29

标签: r

您好我有一个关于如何绘制使用R中的nlme随机拦截和斜率模型的问题。我(在Zuur等人,2009的帮助下)想出了如何绘制模型随机截取,但无法找出绘制具有随机截距和斜率的模型所需的代码。

随机拦截模型的代码:

library(nlme)
#stream order random intercept
df1$fStream.Order <- factor(df1$Stream.Order)

Mlme1.so<-lme(rel.abun ~ WI.ADF.period, random = ~1|fStream.Order, data=df1)

用于绘制随机截距模型的代码

F0.so<-fitted(Mlme1.so, level=0)

F1.so<-fitted(Mlme1.so, level=1)

I.so<-order(df1$WI.ADF.period); WI.ADF.periods<-sort(df1$WI.ADF.period)

plot(WI.ADF.periods, F0.so[I.so], lwd=4, type="l",ylim=c(5,25), xlim=c(-1,10),ylab="Relative Abundance",xlab="WI")
for (i in 1:5){
x1.so <- df1$WI.ADF.period[df1$Stream.Order == i]
y1.so <- F1.so[df1$Stream.Order == i]
K.so <- order(x1.so)
lines(sort(x1.so), y1.so[K.so], type="l")
}

得到的图显示了通过固定分量(粗线)和随机截距回归线(细线)获得的拟合线,参见Zuur等人的第108页的图5.2。 (2009) - “生态学中的混合效应模型和扩展与R”

我想制作一个类似的以下模型图,其中包含随机斜率效应和随机截距。

Mlme2.so<-lme(rel.abun ~ WI.ADF.period, random = ~1 + WI.ADF.period | fStream.Order, data=df1)

我如何使用上面的plot()函数修改代码来创建一个显示具有不同斜率的随机截距的图?

作为参考,我想制作一个类似于Zuur等人的第111页图5.3的图。 (2009) - “生态学中的混合效应模型和扩展与R”

以下是模型中使用的示例数据:

WI.ADF.period   Stream.Order    rel.abun
8.73    1   8.89
8.73    1   61.82
8.73    1   9.49
0.00    1   2.18
0.00    1   57.04
0.00    1   7.52
0.00    2   8.43
0.00    2   0.43
0.00    2   76.7
0.00    2   2.14
0.00    2   1.07
0.00    2   2.92
0.00    2   0.1
0.00    2   90.1
0.00    2   1.04
0.00    2   0.31
7.96    3   37.34
7.96    3   21.75
7.96    3   30.36
7.96    3   8.6
0.00    3   44.25
0.00    3   11.95
0.00    3   16.37
0.00    3   21.68
3.72    3   2.55
3.72    3   22.79
3.72    3   0.17
3.72    3   7.48
3.72    3   21.43
3.72    3   6.46
3.72    3   8.33
3.72    3   3.57
3.72    3   0.17
0.00    3   2.58
0.00    3   16.79
0.00    3   14.35
0.00    3   16.93
0.00    3   3.73
0.00    3   14.49
0.00    3   3.44
0.00    3   0
0.00    3   0

0 个答案:

没有答案