使用广义估计方程 (GEE) 的系数置信区间

问题描述 投票:0回答:5

我正在使用 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

有什么办法可以找到这里的置信区间吗?

r confidence-interval
5个回答
18
投票

类似这样的:

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)

2
投票

简单

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


0
投票

confint
来自统计数据包。
geeglm
来自geepack包。

您需要确定置信区间存储在模型输出中的位置。

使用

str(f2)
或从
summary(f2)
派生它们。

另请查看

f2$
和选项卡以通过模型对象自动完成。

另外,请查看文档 - 链接。您可能必须构建自己的模型,因为我运行的示例模型没有生成 CI。您可能必须从参数标准错误中手动滚动它们。


0
投票

四年过去了,我出于同样的原因来到这里。为了也到达这里的其他人的利益,在看到 Ben 上面的回复后,我意识到 confint() 函数计算轮廓似然区间。它不适用于 GEE,因为它不是基于可能性。

基本函数confint.default()给出Wald区间并且可以与GEE一起使用。它应该给出与上面 Ben 函数相同的结果。


0
投票

您需要安装并加载 geeasy 软件包

© www.soinside.com 2019 - 2024. All rights reserved.