使用glht(multcomp包)的geeglm((binomial(link =“ logit”))的对比

时间:2018-10-24 16:17:14

标签: r

我正在使用multcomp软件包为R中的geeglm(binomial(link =“ logit”))模型生成对比。我正在运行运行以下脚本的geeglm模型。

Library(geepack)
u1<-geeglm(outcome~ px_race_jama,id=npi_gp, family=binomial(link="logit"),data=mf)
Summary(u1)

Call:
geeglm(formula = outcome ~ px_race_jama, family = binomial(link = "logit"), 
    data = mf, id = npi_gp)

     Coefficients:
                  Estimate Std.err Wald Pr(>|W|)   
    (Intercept)    -0.4671  0.1541 9.19   0.0024 **
    px_race_jama1   0.0959  0.1155 0.69   0.4067   
    px_race_jama2  -0.0293  0.1503 0.04   0.8453   
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    Estimated Scale Parameters:
                Estimate Std.err
    (Intercept)        1  0.0506
    Correlation: Structure = independenceNumber of clusters:   83   Maximum cluster size: 792 

要获取模型的对比,请运行脚本

Library(multcomp)
glht(u1,mcp(px_race_jama="Tukey"))
I receive the error:
Error in match.arg(type) : 
  'arg' should be one of “pearson”, “working”, “response”
Error in modelparm.default(model, ...) : 
  no ‘vcov’ method for ‘model’ found!

或者,我尝试创建对比度矩阵:

contrast.matrix <- rbind(
  `Other-Black` = c(0, -1, 1))
comps <- glht(u1, contrast.matrix)
summary(comps)

但是,我收到相同的错误。对于如何正确生成对比度的任何帮助,将不胜感激。

恭喜,

Jdukes

1 个答案:

答案 0 :(得分:0)

类似的东西?

contrast.matrix <- matrix(c(0,-1,1,
                            0,1,-1),nrow=2,byrow=TRUE)

contrasts_geeglm <- function(fit,model_matrix,vcov_type = "robust"){
  
  vcov_gee = if(vcov_type =="robust"){
    fit$geese$vbeta}else{fit$geese$vbeta.naiv}
  
  contrast_est = coef(fit)%*%t(model_matrix)
  contrast_se = sqrt(model_matrix%*%vcov_gee%*% t(model_matrix))
  
  output = data.frame(Estimate = contrast_est[1,],
                      SE = diag(contrast_se)) %>% 
    mutate(LCI = Estimate - 1.96*SE,
           UCI = Estimate + 1.96*SE)
  
  return(output)
}

contrasts_geeglm(u1,contrast.matrix,vcov_type="robust")