首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与零充气glmmTMB的对比

与零充气glmmTMB的对比
EN

Stack Overflow用户
提问于 2020-06-12 19:27:22
回答 1查看 845关注 0票数 0

我正在运行一个零膨胀的glmmTMB模型。我感兴趣的是,对不同的因素水平进行两两比较,无论是条件因素还是零通胀因素。条件部分,我可以很容易地使用通常的emmeans方法。我一直在尝试使用(相对的)新创建的glmmTMB:::emm_basis.glmmTMB,但是找不到函数所使用的一些参数,也找不到例子.

这是一个玩具例子,说明我目前的处境。我专门向模型中添加了一个poly()组件--我的整个模型有poly()ns(),因此需要在这里了解这些组件是如何工作的。

因此,下面的问题是: 1)是否正确地提供了trms参数? 2) emm_basis.glmmTMB函数需要哪些xlevgrid参数?

代码语言:javascript
复制
library(glmmTMB)

data(Salamanders)
mod <- glmmTMB(count ~ spp + mined + poly(cover, 2) + (1|site), zi=~spp + mined, Salamanders, 
   family=nbinom2)

tt <- y ~ spp + mined + poly(cover, 2)
tt <- delete.response(terms(tt))

glmmTMB:::emm_basis.glmmTMB(mod,  trms = tt)

非常感谢你的想法!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-15 16:02:54

函数emm_basis()recover_data()是对emmeans包的支持函数,为许多不同的模型类(包括glmmTMB )提供了方法。这些函数不是由用户调用的--这就是为什么它们被注册为方法而不是导出。

相反,只需调用emmeans()中的其他函数,就意味着包,这些方法将根据需要使用。

对于glmmTMB对象,emmeans()调用中可能包含一个可选的参数component。在你的例子中:

代码语言:javascript
复制
> emmeans(mod, ~spp, component = "cond")
 spp   emmean    SE  df lower.CL upper.CL
 GP     0.440 0.225 624 -0.00146    0.881
 PR    -0.382 0.483 624 -1.32983    0.566
 DM     0.596 0.203 624  0.19723    0.994
 EC-A   0.145 0.327 624 -0.49699    0.787
 EC-L   0.991 0.231 624  0.53814    1.445
 DES-L  1.009 0.188 624  0.64015    1.379
 DF     0.332 0.217 624 -0.09448    0.758

Results are averaged over the levels of: mined 
Results are given on the log (not the response) scale. 
Confidence level used: 0.95 

(我们实际上不需要包括component,因为默认的是cond。)这些结果都在对数尺度上,这是nbinom2族用于拟合模型的条件部分的结果。通过指定type,您可以在响应规模上看到这些结果

代码语言:javascript
复制
> emmeans(mod, ~spp, type = "response")
 spp   response    SE  df lower.CL upper.CL
 GP       1.553 0.349 624    0.999     2.41
 PR       0.682 0.329 624    0.265     1.76
 DM       1.814 0.368 624    1.218     2.70
 EC-A     1.156 0.378 624    0.608     2.20
 EC-L     2.695 0.622 624    1.713     4.24
 DES-L    2.744 0.516 624    1.897     3.97
 DF       1.394 0.303 624    0.910     2.13

Results are averaged over the levels of: mined 
Confidence level used: 0.95 
Intervals are back-transformed from the log scale

您可以通过compoenent = "zi"看到模型的零充气部分。

代码语言:javascript
复制
> emmeans(mod, ~spp, component = "zi", type = "response")
 spp   response     SE  df lower.CL upper.CL
 GP       0.455 0.1064 624   0.2646    0.660
 PR       0.763 0.1406 624   0.4115    0.937
 DM       0.273 0.1128 624   0.1097    0.534
 EC-A     0.719 0.1020 624   0.4870    0.873
 EC-L     0.365 0.1085 624   0.1864    0.590
 DES-L    0.278 0.0989 624   0.1275    0.503
 DF       0.132 0.1150 624   0.0207    0.522

Results are averaged over the levels of: mined 
Confidence level used: 0.95 
Intervals are back-transformed from the logit scale

此时,似乎无法估计实际的平均响应(1 - zi)*(cond平均值);这是有用的,但非常混乱,因为它需要将这两个组件组合在一起。

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

https://stackoverflow.com/questions/62351158

复制
相关文章

相似问题

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