0
点赞
收藏
分享

微信扫一扫

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_bootstrap

 

考虑简单的泊松回归

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_增量法_02

。给定的样本

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_广义线性模型_03

,其中

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_增量法_04

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_广义线性模型_05

,目标是导出用于一个95%的置信区间

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_R语言_06

给出

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_增量法_07

,其中

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_R语言_08

是预测。

 

因此,我们要导出预测的置信区间,而不是观测值,即下图的点

  1.  > r=glm(dist~speed,data=cars,family=poisson)
  2.  > P=predict(r,type="response",
  3.  + newdata=data.frame(speed=seq(-1,35,by=.2)))
  4.  > plot(cars,xlim=c(0,31),ylim=c(0,170))
  5.  > abline(v=30,lty=2)
  6.  > lines(seq(-1,35,by=.2),P,lwd=2,col="red")
  7.  > P0=predict(r,type="response",se.fit=TRUE,
  8.  + newdata=data.frame(speed=30))
  9.  > points(30,P1$fit,pch=4,lwd=3)

 

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_R语言_09

 

最大似然估计

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_增量法_10


拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_广义线性模型_11



,Fisher信息来自标准最大似然理论。

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_GLM_12



这些值的计算基于以下计算

http://freakonometrics.blog.fre <br /> <br /> e.fr/public/latex/poiss21.gif


在对数泊松回归的情况下,

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_R语言_14



让我们回到最初的问题。

  • 线性组合的置信区间

获得置信区间的第一个想法是获得置信区间

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_广义线性模型_15

(通过取边界的指数值)。渐近地,我们知道

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_广义线性模型_16

因此,方差矩阵的近似将基于通过插入参数的估计量而获得。
然后,由于作为渐近多元分布,参数的任何线性组合也将是正态的,即具有正态分布。所有这些数量都可以轻松计算。首先,我们可以得到估计量的方差

因此,如果我们与回归的输出进行比较,

  1.  > summary(reg)$cov.unscaled
  2.  (Intercept) speed
  3.  (Intercept) 0.0066870446 -3.474479e-04
  4.  speed -0.0003474479 1.940302e-05
  5.  > V
  6.  [,1] [,2]
  7.  [1,] 0.0066871228 -3.474515e-04
  8.  [2,] -0.0003474515 1.940318e-05

根据这些值,很容易得出线性组合的标准偏差,

一旦我们有了标准偏差和正态性,就得出了置信区间,然后,取边界的指数,就得到了置信区间

  1.  > segments(30,exp(P2$fit-1.96*P2$se.fit),
  2.  + 30,exp(P2$fit+1.96*P2$se.fit),col="blue",lwd=3)

 

基于该技术,置信区间不再以预测为中心。

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_GLM_17

 

  • 增量法

实际上,使用表达式作为置信区间不会喜欢非中心区间。因此,一种替代方法是使用增量方法。我们可以使用一个程序包来计算该方法,而不是在理论上再次写一些东西,

  1.   
  2.   
  3.   
  4.   
  5.  > P1
  6.  $fit
  7.  1
  8.  155.4048
  9.   
  10.  $se.fit
  11.  1
  12.  8.931232
  13.   
  14.  $residual.scale
  15.  [1] 1

 

增量法使我们具有(渐近)正态性,因此一旦有了标准偏差,便可以得到置信区间。

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_GLM_18

 

通过两种不同的方法获得的数量在这里非常接近

  1.  > exp(P2$fit-1.96*P2$se.fit)
  2.  1
  3.  138.8495
  4.  > P1$fit-1.96*P1$se.fit
  5.  1
  6.  137.8996
  7.  > exp(P2$fit+1.96*P2$se.fit)
  8.  1
  9.  173.9341
  10.  > P1$fit+1.96*P1$se.fit
  11.  1
  12.  172.9101
  • bootstrap技术

第三种方法是使用bootstrap技术基于渐近正态性(仅50个观测值)得出这些结果。我们的想法是从数据集中取样,并对这些新样本进行log-Poisson回归,并重复很多次数,

 

拓端tecdat|R语言使用bootstrap和增量法计算广义线性模型(GLM)预测置信区间_R语言_19

 

 

举报

相关推荐

0 条评论