freMTPL2 车险数据上的定价模型比较

在真实的公开车险数据(法国第三者责任,67.8 万张保单)上,机器学习模型比 GLM 好多少?和文献里的数字一致吗?

SOA PAIFoA SP8
对过的标准答案
3 条
覆盖的考试公式
0 个
参数
5 个
开源库
2 个

01当场运行

改一个参数,当场重算

正在用默认参数运行,计算量大的方法最多要 20 秒。

04出处和说明

公式从哪里来,有什么限制

列出参考的教材、论文和考试公式条目。方法的限制和实现上的说明也写在这里。

参考

  • Noll、Salzmann、Wüthrich (2018) Case Study: French Motor Third-Party Liability Claims(SSRN 3164764)GLM1 的特征,第 5 节 神经网络
  • Schelldorfer、Wüthrich (2019) Nesting classical actuarial models into neural networks(SSRN 3320525)CANN,二维嵌入
  • Wüthrich (2019) "Yes, we CANN!",ZHAW AI in Industry and Finance 报告(2019-09-05)第 12 页的表(同 ASTIN Bulletin 49(1) 社论)
  • 现代精算模型(Modern Actuarial Models)第 2 章 法国车险的频率模型
  • Dutang、Charpentier:CASdatasets(R 包,1.2-1),freMTPL2freq、freMTPL2sev;OpenML 41214、41215

这个方法算什么

离线在 freMTPL2freq 的 90% 保单上训练 GLM(Noll 等的 GLM1)、GAM、LightGBM 和平台的梯度提升树、神经网络和 CANN(PyTorch,5 个种子),在其余 10%(67,836 张保单)上算样本外的平均泊松偏差和基尼系数,和文献里的数字放在一起。现场计算:在内置的 10,000 张测试保单样本上重算指标,用样本的一半现场拟合 GLM 和小的梯度提升树、在另一半上比较;并用 numpy 重算导出的神经网络,和 PyTorch 的输出核对。

说明和限制

  • 数据处理和文献相同:ClaimNb 截到 4(9 张保单),Exposure 截到 1 年(1,224 张)。学习集和测试集按 numpy 的固定种子随机分 90% / 10%,和文献用 R 的 set.seed() 和 sample() 的分法不同,所以数字不能逐个对上,但量级和排序可以比较。
  • 偏差的单位是 10⁻²(文献的写法)。全部测试集上统一费率 32.87、GLM 31.37、LightGBM 30.30:机器学习模型主要多学到了 BonusMalus、VehAge、DrivAge 的非线性和交互作用。
  • 神经网络单个种子的结果波动较大,5 个种子的预测平均(nagging)更稳定(Richman、Wüthrich 2020)。
  • 数据许可:OpenML 标注 CC0,上游 CASdatasets 写 GPL (>= 2),二者不一致。平台只内置 10,000 张测试保单的样本和预测结果,按 GPL 注明出处。
  • 现场拟合的 GLM 只用 5,000 张保单,保单少于 200 张或没有出险的类别并入基准水平,所以参数比离线的 GLM 少。
  • 离线训练的代码在 backend/python/ml/fremtpl2/(train_cpu.py、train_nn.py、export.py)。

数据

看参数里选的数据:选平台的数据集时是真实数据或公开样例,填自己的数时只用输入的数。上面运行的输出里写明这一次用的是哪种。

开源库和版本

  • numpy2.4.6BSD-3-Clause数值计算
  • pandas3.1.1BSD-3-Clause表格数据