首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于glmmTMB的计划对比

基于glmmTMB的计划对比
EN

Stack Overflow用户
提问于 2018-08-16 22:54:40
回答 1查看 1K关注 0票数 3

抱歉,如果这是一个重复的问题。许多人在网上寻找一种方法,对glmmTMB中的条件模型(固定因素)进行事后分析。我想在某些群体之间做一个有计划的对比,而不是测试每一个成对的比较(例如,Tukey)。

下面的代码在nlme:lme上运行得很好,用于lmm。但是,它对下面的代码返回一个错误。

代码语言:javascript
复制
Error in modelparm.default(model, ...) : 
  dimensions of coefficients and covariance matrix don't match

有没有办法在glmmTMB上做有计划的对比呢?

代码语言:javascript
复制
#filtdens is a dataframe and TRT,DATE,BURN,VEG are factors
filtdens <- merged %>% filter(!BLOCK %in% c("JB2","JB4","JB5") & MEAS =="DENS" & 
                      group == "TOT" & BURN == "N" & VEG == "C")
filtdens$TD <- interaction(filtdens$TRT, filtdens$DATE)
mod2 <- glmmTMB(count~(TD)+(1|BLOCK),
                 data=filtdens,
        zi=~1,
        family=nbinom1(link = "log"))

k1 <- matrix(c(0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,

       0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0,

       0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0,

       0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1), byrow = T, ncol = 12)

summary(glht(mod2, linfct=k1),test=adjusted("bonferroni"))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-16 23:12:37

一个可重复的示例可能会有帮助,但是:开发版本中的这个小故事提供了应该启用multcomp::linfct的代码,即:

代码语言:javascript
复制
glht_glmmTMB <- function (model, ..., component="cond") {
    glht(model, ...,
         coef. = function(x) fixef(x)[[component]],
         vcov. = function(x) vcov(x)[[component]],
         df = NULL)
}
modelparm.glmmTMB <- function (model, 
                               coef. = function(x) fixef(x)[[component]],
                               vcov. = function(x) vcov(x)[[component]],
                               df = NULL, component="cond", ...) {
    multcomp:::modelparm.default(model, coef. = coef., vcov. = vcov.,
                        df = df, ...)
}

测试(这个例子是使用Tukey的,但我不明白为什么它不应该更一般地工作.)

代码语言:javascript
复制
library(glmmTMB)
data("cbpp",package="lme4")
cbpp_b1 <- glmmTMB(incidence/size~period+(1|herd),
               weights=size,family=binomial,
               data=cbpp)
g1 <- glht(cbpp_b1, linfct = mcp(period = "Tukey"))
summary(g1)

这适用于当前的CRAN版本,但是glmmTMB的当前开发版本提供了更多的选项(例如,emmeans();请参阅上面链接的vignette)。您需要通过devtools::install_github("glmmTMB/glmmTMB/glmmTMB")进行安装(您还需要安装编译工具)。

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

https://stackoverflow.com/questions/51886334

复制
相关文章

相似问题

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