R语言 用广义估计方程(GEE)确定系数的置信区间

e0bqpujr  于 2023-06-19  发布在  其他
关注(0)|答案(4)|浏览(258)

我正在运行的线性回归模型使用广义估计方程与geepack。confint(fit)命令在这里似乎不起作用。例如:

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

在运行confint(f2)时收到以下错误消息:

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

有没有办法求出这里的置信区间?

pb3s4cty

pb3s4cty1#

就像这样:

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)

为了方便起见,您可以编写一个confint方法来封装以下内容:

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)
tf7tbtn2

tf7tbtn22#

简单broom:tidy(f2, conf.int = TRUE)

avkwfej4

avkwfej43#

confint来自stats包。geeglm来自geepack包。
您需要确定置信区间存储在模型输出中的位置。
使用str(f2)或从summary(f2)派生它们。
还可以查看f2$和tab以自动完成模型对象。
另外,还请查看文档-link。您可能需要构建自己的配置项,因为我运行的示例模型没有生成配置项。您可能必须手动滚动参数标准错误。

fcwjkofz

fcwjkofz4#

四年过去了,我也是为了同样的原因来到这里的。为了让其他同样到达这里的人受益,在看到Ben上面的回复后,我意识到confint()函数计算了profile似然区间。它不适用于GEE,因为它不是基于可能性。
基函数confint.default()给出Wald间隔,可以与GEE一起使用。它应该给予与上面Ben函数相同的结果。

相关问题