1. 课程导入
欢迎进入《GLM暴露量、非线性与费率约束实战》。在正式进入建模细节之前,本章先回答三个问题:GLM在保险定价体系中究竟处于什么位置?为什么暴露量、非线性与费率约束会成为贯穿全课程的三大主线?学完之后,你应该具备怎样的能力?
一、GLM在保险定价中的定位
保险定价的本质,是对未来赔付成本与费用进行估计,并在此基础上形成可执行的价格。广义线性模型(GLM)之所以长期占据定价核心地位,是因为它同时满足三个条件:可解释、可统计推断、可落地到费率表。与黑箱模型相比,GLM的每个系数都能对应到业务含义;与简单经验费率相比,GLM又能通过分布假设和链接函数处理复杂的风险结构。
在典型的定价流程中,GLM通常承担“频率—案均”分解后的建模任务:频率模型预测单位暴露下的出险次数,案均模型预测每次出险的平均赔付。两者相乘得到纯保费,再叠加费用、利润与风险附加,最终形成费率。这个定位决定了GLM不是孤立的算法,而是连接数据、业务假设与监管约束的中间枢纽。
核心认知:GLM在保险定价中不是“跑一个回归”,而是把风险因子、暴露量、分布假设和费率结构统一到一个可解释框架中的工程化方法。
二、三大主题的学习目标
本课程围绕三个相互咬合的主题展开,它们分别对应定价实战中最容易出问题的三个环节。
- 暴露量:理解风险暴露的定义、口径与建模方式,掌握用偏移项(offset)或权重处理不同暴露水平的方法,避免“保单数”与“风险单位”混用导致的系统性偏差。
- 非线性:掌握连续变量与分类变量的非线性建模手段,包括样条、分段、分箱、交互项与GAM思想,理解为什么年龄、车龄、保额等变量往往不能简单线性进入模型。
- 费率约束:理解监管、渠道、竞争与业务规则对费率的限制,掌握在GLM框架下施加单调性、分组一致性、上下限与平滑约束的实用方法。
这三个主题并非并列关系,而是层层递进:暴露量决定模型“算的是什么”,非线性决定模型“像不像真实风险曲线”,费率约束决定模型“能不能变成可售价格”。
三、整体框架与学习路径
课程整体按照“数据准备—模型构建—约束落地—评估复盘”的主线推进。前半部分聚焦暴露量与非线性,后半部分聚焦费率约束与实战调优。每一章都会给出可复用的代码片段、参数配置与业务解释,避免停留在公式层面。
| 阶段 | 核心问题 | 关键产出 |
|---|---|---|
| 数据与暴露量 | 风险单位如何定义与对齐 | 干净的建模宽表与offset设置 |
| 非线性建模 | 变量关系如何逼近真实曲线 | 样条/分段/交互项方案 |
| 费率约束 | 模型结果如何满足业务与监管 | 约束后的费率表与系数 |
| 评估与复盘 | 模型是否稳定、可解释、可上线 | 校验报告与迭代清单 |
下面这张图展示了GLM定价中三大主题与最终费率之间的结构关系。请重点观察:暴露量位于输入层,非线性位于模型层,费率约束位于输出层,三者共同决定费率表的质量。
四、典型场景与常见误区
先看一个典型场景。某车险团队用保单数作为暴露量建模,发现“年轻驾驶员赔付率极高”。但进一步检查发现,年轻驾驶员的保单多为短期保单,实际在保天数远低于其他群体。若不做暴露量对齐,模型会把“在保时间短”误判为“风险高”。修正后,用“在保天数/365”作为offset,年轻驾驶员的相对风险明显回落。这说明暴露量不是数据清洗的附属步骤,而是模型设定的一部分。
再比如,某健康险团队直接把年龄作为连续变量线性放入模型,结果60岁以上人群的预测赔付被系统性低估。原因是年龄与赔付之间呈明显的非线性关系,线性项无法捕捉拐点。改用样条后,模型在老年段的拟合显著改善。这就是非线性主题要解决的核心问题。
常见误区:把GLM当成“自动出费率”的工具,忽略暴露量口径、非线性形态与费率约束,最终得到的模型可能在统计上显著,却在业务上不可用、在监管上不可过。
五、实战准备:环境与数据清单
在进入后续章节前,建议先准备好建模环境与最小数据集。以下是一个可复用的R环境配置示例,后续章节的代码将在此基础上展开。
# 基础建模环境
install.packages(c("tidyverse", "glmnet", "mgcv", "splines", "boot"))
library(tidyverse)
library(mgcv)
library(splines)
# 最小建模宽表示例字段
# policy_id, exposure, claim_count, claim_amount,
# age, vehicle_age, region, channel, coverage
# 频率模型示例:以log(exposure)为offset
freq_glm <- glm(
claim_count ~ age_spline + vehicle_age + region + channel,
family = poisson(link = "log"),
offset = log(exposure),
data = train_data
)
summary(freq_glm)
请注意,上面代码中的offset = log(exposure)正是暴露量主题的起点;age_spline代表非线性处理;而后续章节会在此基础上加入费率约束。三者不是三个独立模块,而是同一条建模流水线上的三个关键控制点。
学习建议:每学完一个主题,回到自己的业务数据上做一次小实验。暴露量主题就检查offset设置,非线性主题就画一次偏依赖图,费率约束主题就检查系数是否符合业务方向。动手验证比记住公式更重要。
本章作为课程导入,已经建立了GLM定价的整体定位与三大主题的结构关系。接下来,课程将先从暴露量入手,逐步展开数据口径、offset设置、频率与案均分解等实战内容。请带着一个问题进入后续学习:你的模型中,分母到底是什么?