在 R 中的 运行 mlogit 函数之后生成预测概率的置信区间

Generating confidence intervals for predicted probabilities after running mlogit function in R

我已经为以下问题苦苦挣扎了一段时间,非常感谢您的帮助。我是 运行 R 中的一个使用 mlogit 函数的 logit 模型,并且能够为给定的预测变量值生成选择每个备选方案的预测概率,如下所示:

library(mlogit)
data("Fishing", package = "mlogit")
Fish <- mlogit.data(Fishing, varying = c(2:9), shape = "wide", choice = "mode")

Fish_fit<-Fish[-(1:4),]
Fish_test<-Fish[1:4,]
m <- mlogit(mode ~price+ catch | income, data = Fish_fit)
predict(m,newdata=Fish_test,)

但是,我不知道如何将置信区间添加到预测概率估计值中。我已经尝试向预测函数添加参数,但 none 似乎生成了它们。任何关于如何实现它的想法将不胜感激。

此处的一种方法是 Monte Carlo 模拟。您将从多元正态抽样分布中模拟重复抽取,其参数由您的模型结果给出。

对于每个模拟,估计您的预测概率,并使用它们在模拟中的经验分布来获得您的置信区间。

library(MASS)

est_betas <- m$coefficients
est_preds <- predict(m, newdata = Fish_test)

sim_betas <- mvrnorm(1000, m$coefficients, vcov(m))
sim_preds <- apply(sim_betas, 1, function(x) {
  m$coefficients <- x
  predict(m, newdata = Fish_test)
})
sim_ci <- apply(sim_preds, 1, quantile, c(.025, .975))

cbind(prob = est_preds, t(sim_ci))
#              prob       2.5%     97.5%
# beach   0.1414336 0.10403634 0.1920795
# boat    0.3869535 0.33521346 0.4406527
# charter 0.3363766 0.28751240 0.3894717
# pier    0.1352363 0.09858375 0.1823240