R:用于零膨胀模型的predict()函数未返回se.fit。

3

我正在尝试计算使用函数zeroinfl()设置的零膨胀模型置信区间

如果我从线性模型或广义线性模型(GLM)中使用函数进行计算,则为:

predict(glm, newdata, type = "response", se.fit = TRUE) 

这段代码在使用glm函数时可以正常运行,返回$fit, $se.fit, $df和$residual.scale的值(我不知道后两个输出的含义 - 如有解释,将不胜感激)。

然而,当我将glm替换为零膨胀模型时,只能得到$fit的值。

以下是一个示例: (我不知道如何使用set.seed - 所以请勿责怪我)

set.seed(123)
a <- data.frame(participant = c(1:10),
                activity = c(round(abs(rnorm(10)))), 
                METmin = c(round(abs(rnorm(10)))),
                Var4 = c(round(abs(rnorm(10)))),
                Var5 = c(round(abs(rnorm(10)))))

b <- data.frame(participant = c(1:10),
                     activity = c(round(abs(rnorm(10)))), 
                     METmin = c(round(abs(rnorm(10)))),
                     Var4 = c(round(abs(rnorm(10)))),
                     Var5 = c(round(abs(rnorm(10)))))
identical(a,b) #FALSE
model <- zeroinfl(METmin~activity + Var4 + Var5, data = a)
predict(model, newdata = b, type = "response", se.fit = T)

有人知道这里出了什么问题,我该如何计算这些标准误差吗?

非常感谢。


@MrFlick 我已经编辑了上面的问题。 - fabha
$df代表自由度。我不熟悉residual.scale,然而残差通常被绘制成图形,以查看其是否在y=0周围随机分散。从https://stat.ethz.ch/R-manual/R-devel/library/stats/html/predict.glm.html,$residual.scale产生一个标量,给出了用于计算标准误差的离散度的平方根。 - Katie
1个回答

1

不幸的是,目前zeroinfl(和hurdle)对象的predict()方法没有se.fit参数。如果您想探索这个问题,您可以使用蒙特卡罗方法(通过从系数估计的分布中抽取数据)或看看lsmeans包中的zeroinfl方法是否能够满足您的需求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接