0

我正在构建一个 GLM 来使用 python 中的 statsmodels 包来预测保险损失。

目标变量是纯保费(损失/风险敞口),其中风险敞口是保单生效的一年中的一小部分。

来自关于 GLM 的教科书:

“代表更多风险的行应该在模型系数的估计中具有更大的权重,因为它们的结果值基于更多的数据。GLM 通过允许用户包含权重变量来适应这一点。”

出于这个原因,我在 GLM 规范(如下)中包含了“曝光”作为分析权重:

mod = sm.GLM(endog = data["PurePrem"], exog = design , var_weights = data["Exposure"], family=sm.families.Tweedie(var_power = 1.45 , eql = True )).fit()

为了评估模型性能,我将预测(mod.fittedvalues)从最低到最高排序,创建 10 个相同曝光的 bin,并比较每个 bin 的平均拟合值和实际值。在下图中,蓝线代表模型预测(在训练集上),红线代表实际值。我的问题是生成的模型总是偏低:

验证图

如果我var_weights = data["Exposure"]从模型规范中删除,我不再有这个问题,但我不认为这是正确的方法。

任何见解将不胜感激。

4

0 回答 0