如何用lmer模型结果的标准误差绘制预测值?

如何用lmer模型结果的标准误差绘制预测值?,r,lme4,mixed-models,R,Lme4,Mixed Models,我对四个部位和四种基质(取自每个部位)进行了移植实验。我已经确定了每个地点和基质组合中每个种群的存活率。这个实验重复了三次 我创建了一个lmm,如下所示: Survival.model <- lmer(Survival ~ Location + Substrate + Location:Substrate + (1|Replicate), data=Transplant.Survival,, REML = TRUE) Survival.model编辑:修复了函数/图形中的错误 如果希望使

我对四个部位和四种基质(取自每个部位)进行了移植实验。我已经确定了每个地点和基质组合中每个种群的存活率。这个实验重复了三次

我创建了一个lmm,如下所示:

Survival.model <- lmer(Survival ~ Location + Substrate + Location:Substrate + (1|Replicate), data=Transplant.Survival,, REML = TRUE)
Survival.model编辑:修复了函数/图形中的错误

如果希望使用CI绘制估算值,您可能需要查看
sjPlot
包中的
sjp.lmer
函数。请参见各种打印类型的一些示例

此外,
arm
包提供了计算标准错误的功能(
arm::se.fixef
arm::se.ranef

将给出以下情节


我不熟悉
lme4
软件包,但我认为您需要向
predict()
提供测试数据,而不仅仅是模型。经过训练的模型是重要的第一步,但如果没有输入数据,我不知道如何使用它来预测结果。你可以尝试使用
predict(Survival.model,test\u data)
其中
test\u data
是你想要获得预测的数据集。RHertel:我很抱歉这个愚蠢的问题,但是对于这样一个小研究,将数据分割成训练和测试数据集有意义吗?那么,用置信区间绘制我的估计值是否更合适呢。它包含一个示例。还有,我的一篇文章指出了邮件列表上的一个线程,该线程讨论了更精细的概念问题。@Roland:谢谢您的回复。我已经通读了这些页面,并且理解了这种方法,但是对于这样一个小的数据集,将其拆分为培训和测试数据集似乎有问题。我将不得不重新思考如何在绘图或建模方法中显示我的模型结果!我看不出FAQ上说需要将训练数据和测试数据分开,以获得预测的置信区间/标准误差。只要看到带有x轴标签的缺陷
type=“fe”
,就可以解决这个问题。好的,更新了package
sjPlot
,也解决了这个缺陷。
Survival.pred <- predict(Survival.model)
Transplant.Survival <- structure(list(Location = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L), .Label = c("Steninge", "Molle", 
"Kampinge", "Kaseberga"), class = "factor"), Substrate = structure(c(1L, 
1L, 1L, 2L, 2L, 2L, 3L, 3L, 4L, 4L, 4L, 1L, 1L, 2L, 2L, 2L, 3L, 
3L, 3L, 4L, 4L, 4L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 
4L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 4L), .Label = c("Steninge", 
"Molle", "Kampinge", "Kaseberga"), class = "factor"), Replicate = structure(c(1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 1L, 2L, 3L, 2L, 3L, 1L, 2L, 3L, 1L, 
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), .Label = c("1", 
"2", "3"), class = "factor"), Survival = c(1, 1, 1, 0.633333333333333, 
0.966666666666667, 0.5, 0.3, 0.233333333333333, 0.433333333333333, 
0.966666666666667, 0.866666666666667, 0.5, 0.6, 0.266666666666667, 
0.733333333333333, 0.6, 0.3, 0.5, 0.3, 0.633333333333333, 0.9, 
0.266666666666667, 0.633333333333333, 0.7, 0.633333333333333, 
0.833333333333333, 0.9, 0.6, 0.166666666666667, 0.333333333333333, 
0.433333333333333, 0.6, 0.9, 0.6, 0.133333333333333, 0.566666666666667, 
0.633333333333333, 0.633333333333333, 0.766666666666667, 0.766666666666667, 
0.0333333333333333, 0.733333333333333, 0.3, 1.03333333333333, 
0.6, 1)), .Names = c("Location", "Substrate", "Replicate", "Survival"
), class = "data.frame", row.names = c(NA, -46L))
sjp.setTheme("forestgrey") # plot theme
sjp.lmer(Survival.model, type = "fe")