【发布时间】:2026-02-01 12:40:01
【问题描述】:
我正在使用 nnet 包中的 multinom 函数在 R 中进行多项逻辑回归。当我拟合模型时,我希望得到 logit 尺度上的参数估计值。但是,使用逆 logit 转换变量不会给出与预测示例匹配的概率估计,请参见下面的示例。
帮助文件指出“拟合了对数线性模型,第一类的系数为零”,但是如何转换参数估计值以获得对概率尺度的预测效果?
library("nnet")
set.seed(123)
# Simulate some simple fake data
groups <- t(rmultinom(500, 1, prob = c(0.05, 0.3, 0.65))) %*% c(1:3)
moddat <- data.frame(group = factor(groups))
# Fit the multinomial model
mod <- multinom(group ~ 1, moddat)
predict(mod, type = "probs")[1,] # predicted probabilities recover generating probs
# But transformed coefficients don't become probabilities
plogis(coef(mod)) # inverse logit
1/(1 + exp(-coef(mod))) # inverse logit
使用predict我可以恢复生成概率:
1 2 3
0.06 0.30 0.64
但是取系数的逆对数并不能给出概率:
(Intercept)
2 0.8333333
3 0.9142857
【问题讨论】:
-
这更像是一个解释问题,因此更适合 CrossValidated.com。但是不要在那里发布它,因为它已经被询问和回答:stats.stackexchange.com/questions/17196/…
-
感谢您的提醒,我实际上找到了另一篇描述解决方案的帖子——softmax 转换*.com/questions/17283595/…
-
我无法撤回我的赞成票或更改推理,但该问题应作为副本关闭。
-
抱歉,我没有意识到。我应该删除这个问题吗?
-
如果您查看您的问题并认为它具有独特的功能,可能允许在此问题上搜索的人找到该问题,而这些功能在搜索中找不到,否则会由已识别的重复项找到通过@missing 那么你应该把它留下来。当我查看这两个问题时,您的回答似乎确实为搜索工作添加了一些有用的术语。所以我现在处于一种奇怪的情况,刚刚对你的问题投了赞成票,而早些时候对你的答案投了反对票(基于重复)。如果您可以稍微修改一下,我会推翻我的反对意见。