我如何使用plot_model()将第二个阴影置信区间(即95%和85%CI)添加到glm可视化中?

问题描述 投票:1回答:1
使用plot_model(),我已经可视化了几个模型项的边际效应(请参见下图)。 plot_model()功能允许您指定置信度,并将自动绘制阴影的置信区间。

我想在第一个上绘制一个

第二置信区间,以便可以看到95%和85%(以便进一步证明响应的强度)。这可能吗?

以下是一些简短的虚拟数据,演示了我的问题:

response per.grs 0 0.2430000 0 0.7142857 0 1.0000000 0 0.7619048 0 0.7619048 0 0.1230000 0 0.6666667 0 0.3560000 0 0.9523810 0 0.1450000 1 0.7619048 1 0.6432000 1 0.6666667 1 0.8571429 1 0.8571429 1 0.5238095 1 0.9523810 1 0.8450000 1 0.5714286 1 0.7619048

这是我使用的代码:

grass.cover <- glm(response ~ per.grs + I(per.grs^2), data=data, family=binomial, na.action = "na.fail") plot_model(grass.cover, type = "eff", terms = "per.grs[all]", ci.lvl = .95, )

enter image description here    
r data-visualization ggplot2
1个回答
0
投票
可以这样实现。我看了一下plot_model。该图的数据通过ggeffects::ggeffect计算。因此,我也只计算了85%的数据,然后可以通过geom_ribbon将其用于添加第二个阴影区域。但是,由于这也使预测线过于复杂,因此我们必须添加geom_line才能将预测值重新放入绘图中。但是,特别是在您希望两个CI都具有图例的情况下,我建议您通过ggplot2自己制作整个图。

data <- structure(list(response = c( 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L ), per.grs = c( 0.243, 0.7142857, 1, 0.7619048, 0.7619048, 0.123, 0.6666667, 0.356, 0.952381, 0.145, 0.7619048, 0.6432, 0.6666667, 0.8571429, 0.8571429, 0.5238095, 0.952381, 0.845, 0.5714286, 0.7619048 )), class = "data.frame", row.names = c( NA, -20L )) grass.cover <- glm(response ~ per.grs + I(per.grs^2), data = data, family = binomial, na.action = "na.fail") library(sjPlot) #> Install package "strengejacke" from GitHub (`devtools::install_github("strengejacke/strengejacke")`) to load all sj-packages at once! library(ggplot2) p <- plot_model(grass.cover, type = "eff", terms = "per.grs[all]", ci.lvl = .95) # Get data for 85% CI dat85 <- ggeffects::ggeffect(model = grass.cover, terms = "per.grs[all]", ci.lvl = .85) p + # Add 85% CI geom_ribbon(data = dat85, aes(x, ymin = conf.low, ymax = conf.high), fill = "grey") + # Get the predictions back (;) geom_line(data = dat85, aes(x, y = predicted), color = "black")

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLmltZ3VyLmNvbS9vVjNFcmZZLnBuZyJ9” alt =“”>
© www.soinside.com 2019 - 2024. All rights reserved.