glm输出中的标准错误

时间:2017-03-21 22:56:23

标签: r

我正在使用r glm来模拟按年分类的泊松数据。所以我每年都有T [i]暴露的x [i]数,i。具有泊松族对数链路输出的r glm产生模型系数a,b,其中y = a + bx。

我需要的是(a + bx)的标准误差,而不是a的标准误差或b的标准误差。描述我试图实现的解决方案的文档说这应该由软件计算,因为从a和b的参数计算是不容易的。也许SAS做了计算,但我没有在R中认识到它。

我正在研究参数估算手册第7.2.4.5节(NUREG / CR-6823,一份公开文件)并查看方程7.2。也不是统计学家所以我发现这很难遵循。

这里的游戏是在模型输出上找到90%的同时置信区间,而不是每年的置信区间,i。

在此处添加此内容,以便显示一些代码。下面的第一个答案似乎让我非常接近。这里的统计学家将以下函数放在一起构建置信区间。这似乎有效。

# trend line simultaneous confidence intervals
# according to HOPE 7.2.4.5
HOPE = function(x, ...){
t = data$T
mle<-predict(model, newdata=data.frame(x=data$x), type="response") 
se = as.data.frame(predict(model, newdata=data.frame(x=data$x), type="link", se.fit=TRUE))[,2]
chi = qchisq(.90, df=n-1)
upper = (mle + (chi * se))/t
lower = (mle - (chi * se))/t
return(as.data.frame(cbind(mle, t, upper, lower)))

}

1 个答案:

答案 0 :(得分:1)

我认为您需要在从模型创建预测时提供参数se.fit=TRUE

hotmod<-glm(...)
predz<-predict(hotmod, ..., se.fit=TRUE)

然后您应该能够使用以下方法找到估计的标准错误:

predz$se.fit

现在,如果你想在这个软件上手工完成它,它应该不像你建议的那么难:

covmat<-vcov(hotmod)
coeffs<-coef(hotmod)

然后我认为标准错误应该只是:

sqrt(t(coeffs) %*% covmat %*% coeffs)

操作符%*%可用于此软件中的矩阵乘法。