我使用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
有没有办法在这里找到置信区间?
答案 0 :(得分:9)
这样的事情:
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)
答案 1 :(得分:1)
confint
来自stats包。 geeglm
来自geepack包。
您需要确定模型输出中存储置信区间的位置。
使用str(f2)
或从summary(f2)
派生。
另请查看f2$
和标签,以便通过模型对象自动完成。
另外,请参阅文档 - link。您可能必须构建自己的模型,因为我运行的示例模型没有生成CI。您可能必须从参数标准错误中手动滚动它们。
答案 2 :(得分:0)
我使用了 Ben 的回复,但也发现此方法有效:broom:tidy(f2, conf.int = TRUE)