gpt4 book ai didi

r - 如何使用mlogit模型建立AIC选型表

转载 作者:行者123 更新时间:2023-12-04 15:40:42 27 4
gpt4 key购买 nike

我正在尝试为我在 R 中的候选模型集构建一个 AIC 表,这些模型是使用 mlogit 运行的。我以前使用过glmglmer,并且一直使用包AICcmodavgaictab来提取值并创建模型选择表。这个包似乎不适用于 mlogit,所以我想知道除了使用对数似然值手动计算之外,是否还有其他方法可以在 R 中创建 AIC 表?

mlogit 模型输出示例:

Call:
mlogit(formula = Case ~ Dist_boulder + Mesohabitat + Depth +
Size + Size^2 | -1, data = reach.dc, method = "nr")

Frequencies of alternatives:
0 1 2 3
1 0 0 0

nr method
5 iterations, 0h:0m:0s
g'(-H)^-1g = 1.19E-05
successive function values within tolerance limits

Coefficients :
Estimate Std. Error z-value Pr(>|z|)
Dist_boulder -0.052165 0.162047 -0.3219 0.74752
Mesohabitatriffle -1.400752 0.612329 -2.2876 0.02216 *
Mesohabitatrun 0.302697 0.420181 0.7204 0.47128
Depth 0.137524 0.162521 0.8462 0.39745
Size 0.336949 0.145036 2.3232 0.02017 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log-Likelihood: -86.627

模型运行示例(来 self 的 14 个候选集)

 predation.reach<-mlogit(Case ~ Dist_boulder + Mesohabitat + Depth + Size + Size^2 | -1, data=reach.dc)
velocity.reach<-mlogit(Case ~ Mid_vel | -1, data=reach.dc)
spaces.reach<-mlogit(Case~ Embedded + Class | -1, data=reach.dc)
substrate.reach<-mlogit(Case ~ Class | -1, data=reach.dc)

定义候选集列表

cand.set.reach<-list(predation.reach, velocity.reach, spaces.reach, substrate.reach)

最佳答案

bbmle::AICtab() 似乎有效。

library("mlogit")
m1 <- mlogit(formula = mode ~ price + catch | income,
data = Fish,
alt.subset = c("charter", "pier", "beach"), method = "nr")
m2 <- update(m1, . ~ . - price)
bbmle::AICtab(m1,m2)
## dAIC df
## m1 0.0 6
## m2 412.1 5

默认情况下 bbmle::AICtab() 仅给出增量 AIC 和模型自由度/参数数量,但您可以使用可选参数来获取绝对 AIC、AIC 权重等..

它也适用于列表:

L <- list(m1,m2)
bbmle::AICtab(L)

在 tidyverse 世界中,

library(broom)
L %>% purrr::map(augment) %>% bind_rows()

应该可以,但是 doesn't yet .

关于r - 如何使用mlogit模型建立AIC选型表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57946722/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com