作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 R 中绘制多项式模型的预测概率,并配有 nnet::multinom()
功能。我在对数尺度上有数值预测变量。
即使 {ggeffects}
应该与 multinom()
兼容,该图不像线性模型那样显示置信区间。
我是 R 和这个社区的新手,所以如果这个问题非常基本或遗漏了一些必不可少的东西,我深表歉意。这是一个小例子:
library(tidyverse)
library(nnet)
library(effects)
library(ggeffects)
df <- data.frame(response = c("1 Better", "1 Better", "1 Better", "2 Medium", "2 Medium", "2 Medium", "3 Worse", "3 Worse", "3 Worse"),
count = c(1000, 2000, 4000, 6000, 10000, 3000, 6000, 5000, 11000))
mod1 <- multinom(response ~ log(count), data = df)
summary(mod1)
effects::effect(mod1, term="log(count)", se=TRUE, confidence.level=.95) %>% plot() # Produces CIs.
ggeffects::ggpredict(mod1, terms = "count") %>% plot() + theme_bw() # No confidence intervals.
{ggeffects}
的替代品,我在寻找解决方案时尝试了这些方法:
effects::effect()
:有效,包括置信区间,但外观不是那么可定制。
{ggeffects}
和
{effects}
: 看到这个
post on R Studio Community其中来自 effects 包的置信区间与 ggeffects 相结合以创建一个图。我得到了错误
Error in FUN(X[[i]], ...) : object 'L' not found
但它对那个人有用。
{MNLpred}
包装及其
mnl_pred_ova()
: 对我不起作用,我想是因为我的预测变量是对数尺度的。我收到以下错误:
Error in eval(parse(text = paste0("data$", xvari))) : attempt to apply non-function
使用
mnlAveEffPlot()
函数来自
{DAMisc}
: 工作,但情节不像我想要的那样可定制。
最佳答案
您可以使用 ggeffects::ggemmeans()
执行此操作.
library(tidyverse)
library(ggthemes)
library(nnet)
library(ggeffects) # package version used: v0.16.0
df <- data.frame(response = c("1 Better", "1 Better", "1 Better", "2 Medium", "2 Medium", "2 Medium", "3 Worse", "3 Worse", "3 Worse"),
count = c(1000, 2000, 4000, 6000, 10000, 3000, 6000, 5000, 11000))
mod1 <- multinom(response ~ log(count),
data = df)
ggemmeans(mod1, terms = "count") %>% plot() + ggthemes::theme_tufte()
有关如何使用 {ggeffects} 的更多信息,您可能还想查看
package documentation尤其是在
ggemmeans()
之间的差异和
ggpredict()
等(例如
here )。
关于r - 如何使用基于 nnet::multinom() 模型的 {ggeffects} 获得预测概率图的置信区间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64464028/
我是一名优秀的程序员,十分优秀!