Search code examples
rconfidence-interval

Confidence interval of coefficients using Generalized Estimating Equation (GEE)


I am running the linear regression models using generalized estimating equation with geepack. The confint(fit) command does not seem to work in here. For example:

f2 <- geeglm(FEV1 ~ Age, data = Hospdata, family=gaussian, id=HHID)  
summary(f2)
confint(f2)

I get the following error message in running confint(f2):

> confint(f2)
Waiting for profiling to be done...
Error in `[.data.frame`(summ$coefficients, , "Std. Error", drop = FALSE) : undefined columns selected

Is there any way to find the confidence interval in here?


Solution

  • Something like this:

    library(geepack)
    data(dietox)
    dietox$Cu     <- as.factor(dietox$Cu)
    mf1 <- formula(Weight~Cu*poly(Time,3))
    gee1 <- geeglm(mf1, data=dietox, id=Pig,
                   family=poisson("identity"),corstr="ar1")
    cc <- coef(summary(gee1))
    citab <- with(as.data.frame(cc),
         cbind(lwr=Estimate-1.96*Std.err,
               upr=Estimate+1.96*Std.err))
    rownames(citab) <- rownames(cc)
    

    For convenience, you could write a confint method that encapsulates this:

    confint.geeglm <- function(object, parm, level = 0.95, ...) {
        cc <- coef(summary(object))
        mult <- qnorm((1+level)/2)
        citab <- with(as.data.frame(cc),
                      cbind(lwr=Estimate-mult*Std.err,
                            upr=Estimate+mult*Std.err))
        rownames(citab) <- rownames(cc)
        citab[parm,]
    }
    
    confint(gee1)