首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用mlogit模型构建AIC模型选择表

如何使用mlogit模型构建AIC模型选择表
EN

Stack Overflow用户
提问于 2019-09-16 01:50:31
回答 1查看 378关注 0票数 3

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

mlogit模型输出示例:

代码语言:javascript
复制
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

运行模型的示例(来自我的14个候选集合)

代码语言:javascript
复制
 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)

定义候选集合列表

代码语言:javascript
复制
cand.set.reach<-list(predation.reach, velocity.reach, spaces.reach, substrate.reach)
EN

回答 1

Stack Overflow用户

发布于 2019-09-16 02:08:35

bbmle::AICtab()似乎起作用了。

代码语言:javascript
复制
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权重等。

它还可以与列表一起使用:

代码语言:javascript
复制
L <- list(m1,m2)
bbmle::AICtab(L)

在tidyverse的世界里,

代码语言:javascript
复制
library(broom)
L %>% purrr::map(augment) %>% bind_rows()

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57946722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档