[英]How do I aggregate data for glm() function in R
我正在尝试使用 glm 估计保险定价的相对性。 我在 CASdatasets 中使用“freMPTL”。 ClaimNb 是我的回应,Exposure 是我的 Exposure,我对 ClaimNb/Exposure 感兴趣。
将较大的类别(例如驾驶员年龄(18-99))划分为较小的前组之后。 5个类别,我使用分组数据
data_grouped_freq <- data_freq4 %>%
group_by(Power, Brand, Gas, Region, CarAge_cat, DriverAge_cat, Density_cat) %>%
summarise(ClaimNb = sum(ClaimNb),
Exposure = sum(Exposure))
之后我使用命令
model_freq <- glm(ClaimNb ~ Power + Brand + Gas + Region + CarAge_cat + DriverAge_cat + Density_cat,
family = poisson, data = data_grouped_freq, weights = Exposure)
summary(model_freq)
到 plot 一个 glm。 那么结果就是
Deviance Residuals:
Min 1Q Median 3Q Max
-255.241 -2.634 -0.929 -0.202 199.629
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 4.8629082 0.0011698 4156.99 <2e-16 ***
Powerd -0.4660131 0.0014613 -318.90 <2e-16 ***
Powere -0.7155983 0.0013723 -521.44 <2e-16 ***
Powerg -0.4131892 0.0010905 -378.89 <2e-16 ***
...
RegionPoitou-Charentes -2.3903228 0.0052288 -457.14 <2e-16 ***
CarAge_cat1 -1.2547176 0.0021645 -579.68 <2e-16 ***
DriverAge_cat1 -0.7913098 0.0022811 -346.90 <2e-16 ***
DriverAge_cat2 -1.2886084 0.0024688 -521.96 <2e-16 ***
我知道这是错误的,因为 DriverAge_cat1 具有更高的 ClaimNb/Exposure 比率,因此应该导致相对性>1,而 exp(-18.9082) 不是。 (cat1 的 ClaimNb/Exposure 比率为 0.134,而 DriverAge_cat1 的参考组为 0.071)
有人可以解释我做错了什么吗? 是不是有很多类别的 0 声明导致问题? 也许我处理错了重量? 7 个变量共有 14661 个单元格。
在用于创建泊松率 model 的 GLM 代码中,您应该使用参数偏移量-
model_freq <- glm(ClaimNb ~ Power + Brand + Gas + Region + CarAge_cat + DriverAge_cat + Density_cat,
family = poisson, data = data_grouped_freq, offset= log(Exposure))
上面修改的代码应该可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.