全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2838 2
2008-03-30
R中GLM和LM里面的offset选项具体的用途是什么?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-12-24 15:14:09
官方给出的注释是:
this can be used to specify an a priori known component to be included in the linear predictor during fitting. This should be NULL or a numeric vector of length equal to the number of cases.  One or more offset terms can be included in the formula instead or as well, and if more than one is specified their sum is used.

可以这么用——
mod <- glm(incid ~ offset(log(pop)) + Age + Cohort, family=poisson(log))
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-6-25 15:06:46
用 GLM 做频率建模时通常需要用到 offset 项。offset 主要是用来调整 exposure 做单位化处理的。



这主要是因为,当在对一组保单组合进行频率建模时,我们最终需要回答的问题是每单位 exposure 对应的频率是多少。这样的话,可能大部分的保单都是,比如车险,一张保单保障了一辆车,保单期限一年,出险一次。这个时候,就不需要进行 exposure 调整。



但如果是这样的保单,比如这张保单保障了两辆车,保单期限一年,出险一次,这个时候,就不能直接对这个出险一次进行建模,因为此时保单其实包含的是两个车年,也就是2个 exposures。



此时,可以将出险次数单位化,即变为0.5次出险次数,也可以采用 offset 的形式做,理论上讲,两者的结果是一样的,如果用一个连续分布作为残差分布的话。不过,由于大家通常用离散分布做频率建模,比如泊松或者负二项,此时的一个问题就是0.5不是一个整数,如果进入建模的话会报错。当然,上面的例子如果是一张保单保障了一辆车,保单期限一年,出险两次,单位化后变为一次,那就不存在这种问题了。



不管怎样,优先推荐的还是在模型中直接采用 offset 做建模,即便不存在非整数的问题,如果去一单一单地调整出险次数为单位化次数,这个数据整理工作也是相当费事的了。



最后,用公式稍微解释一下这个关系的话,就是

log(N/Exposure)=b0+sum(bi*xi)

等价变化为 log(N)=log(Expo)+b0+sum(bi*xi)



所以有人也解释 offset 项就是上面算式中的 log(Expo),也算有直观的感觉了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群