gpt4 book ai didi

r - 如何获得 lmer 对象的置信区间?

转载 作者:行者123 更新时间:2023-12-01 11:47:20 25 4
gpt4 key购买 nike

我正在尝试获得混合模型预测的置信区间。预测函数不输出任何置信区间。很少有 StackOverflow 答案建议使用 merTools 包中的 predictInterval 函数来获取间隔,但这两个函数的预测估计值之间存在差异,我试图在下图中进行比较。有人可以让我知道我在这里做错了什么吗?此外,我尝试构建的实际模型类似于下面的代码片段中显示的模型,其中除了截距之外,我没有固定效果组件。

library(merTools)
library(lme4)

dat <- iris
mod <- lmer(Sepal.Length ~ 1 + (1 + Sepal.Width + Petal.Length +
Petal.Width|Species), data=dat)

c1 <- predict(mod, dat)
c2 <- predictInterval(mod, dat)

plot_data <- cbind(c1, c2)
plot_data$order <- c(1:nrow(plot_data))

library(ggplot2)
ggplot(plot_data) + geom_line(aes(x=order, y=c1), color='red') +
geom_ribbon(aes(x=order, ymin=lwr, ymax=upr), color='blue', alpha=0.2) +
geom_line(aes(x=order, y=fit), color='blue')

红线表示预测“c1”
蓝线表示预测“c2”

enter image description here

最佳答案

我还没有完全能够隔离 predictInterval 的部分这导致了问题,但解决您的特定问题的方法是注意,如果您想要的是组变化的截距和斜率,那么您可以拟合以下等效模型

mod2 <- lmer(Sepal.Length ~ 1 + Sepal.Width + Petal.Length + Petal.Width + 
(1 + Sepal.Width + Petal.Length + Petal.Width|Species),
data = dat)

现在如果我们申请 predictInterval到这个拟合模型
c2 <- predictInterval(mod2, dat)

保留示例的其余部分,我们得到以下图:

enter image description here

这就是我们想要的。 (强调一下,红线代表来自原始模型规范的预测,即“固定”组件中只有截距。)

关于r - 如何获得 lmer 对象的置信区间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48685420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com