拟合 SE 与预测 SE

机器算法验证 r 广义线性模型 标准错误 预言
2022-03-17 11:01:54

我想获得预测的标准误差。使用 R glm,我可以获得适合特定预测的 SE:

mod <- glm(y~wa_WSI, data=mydata, family=gaussian(link="identity"))
predict.glm(mod,newdata=newdata, type="response", se.fit=T)

但是当我将预测与实际值进行比较时,这个数字似乎太小了。我找到了“估计的标准误差”的公式,它是,其中是残差平方和,是数据点的数量,是回归。这给了我一个更大的结果,但不是一个单一的预测。s/(np)snp

我的问题是,SE 公式是否高于我应该使用的公式,有没有办法从 R 给我的值中得到它,se.fit以便它特定于特定的预测?

2个回答

我想对非正态分布和非身份链接函数发表评论。 se.fit=T产生预测的标准误差,即预测值的不确定性度量。通过中心值定理之一,可以假设该预测在链路尺度上是正态分布的,因此其标准误差可以作为正态分布的标准偏差给出。

使用 时type="response",使用反链接函数对预测进行反向转换(例如plogis,对于 logit-link)。使用type="response"and se.fit=T产生无意义的值,因为它只返回响应范围内的一组标准误差。由于链接函数是非线性的,因此链接尺度上的对称误差在响应尺度上必须是不对称的。因此,在使用非身份链接函数时,我们可以选择type="response" 或,但不能同时选择两者。 se.fit=T(我不明白为什么predict.glm没有编程在这种情况下抛出错误。)

如果不知道更多关于什么是很难回答mod的。这就是为什么我们建议一个可重现的例子。

如果mod是与“高斯”族(默认)拟合的 glm,那么它只是一个线性模型,您可以使用predict.lm它的interval参数可以设置为“预测”来计算预测间隔。

如果modglm 与非高斯族拟合,那么预测标准误差的概念甚至可能没有意义(当预测都是 TRUE/FALSE 时的预测区间是多少?)。

如果您可以提供更多详细信息(可重复的示例和明确说明您想要什么),那么我们将有更好的机会提供有用的答案。