如何解决将预测添加到整洁的模型并绘图
我的目标很简单,它是从许多线性模型中预测(使用置信区间)未来值,然后使用 ggplot2 作为真实数据的扩展来绘制它们。
我有一个包含四个变量的数据集:面积(因子)、日期、系列(名义;A、B 等)和值(连续)。我已经使用 broom、tidyr 和 purrr 估计了每个区域系列组合的简单线性模型:
group_by(area,series) %>%
nest()
le_model<-function(df){
lm(value ~ date,data=df)
}
models <-by_area_series %>%
mutate(leGrad=map(data,le_model))
models<-models%>%
mutate(
tidy_le = map(leGrad,broom::tidy),glance_le = map(leGrad,broom::glance),augment_le = map(leGrad,broom::augment),rsq_le = glance_le %>% map_dbl("r.squared"),)
我有超出现有数据范围的新日期,例如
new.dates=data.frame(date=c((Sys.Date()+7),(Sys.Date()+10),(Sys.Date()+14)))
我希望预测每个模型在每个新日期的相应值,并将数据和预测绘制在同一个图上(按区域包裹面),因此我需要将预测及其 SE 放回相同的数据集(我认为)。到目前为止,我刚刚添加了这个:
predict((lm(value~date,data=df)),newdata=new.dates,se.fit=T)
}
preds<-by_area_series %>%
mutate(preds = map(data,pred))
我一直在摆弄像 preds[4][[1]][[1]]$fit
这样的列表符号,但我无法找到一种巧妙的解决方案,可以在一次调用中适用于所有模型。
对 a) 将预测值及其 SE 整齐地放入原始数据中的任何帮助,然后 b) 使用 ggplot2 在同一图上绘制 lm 和预测值,非常感谢!!
解决方法
如果没有 reprex,就很难展示可复制的解决方案。但是,您应该能够像使用 predict
对象而不是 models
数据中的 tidy、glance、augment 一样使用 by_area_series
。使用此处的选项获取预测值和 se:https://parsnip.tidymodels.org/reference/predict.model_fit.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。