2. 精算模型基础
在进入文档化与独立验证的实战之前,必须先建立对精算模型本身的系统认知。模型不是一段孤立的公式代码,而是一个从业务问题出发、经过假设设定、数据加工、计算实现、结果交付到持续维护的完整对象。理解它的分类方式、生命周期阶段以及不同险种模型的文档化差异,是后续所有验证工作的前提。
一、核心原理:精算模型的三个认知维度
精算模型可以从三个维度来理解。第一是业务维度,即模型服务于什么决策:定价、准备金评估、资本计量、资产负债管理还是偿付能力测试。第二是数学维度,即模型采用确定性计算、随机模拟还是动态规划。第三是实现维度,即模型运行在Excel、Python、R、Prophet、AXIS还是自研平台上。这三个维度共同决定了模型的文档化深度与验证策略。
一个常见的误区是把“模型”等同于“代码”。实际上,模型等于假设、数据、方法、参数、代码和结果解释的总和。文档化如果只记录代码逻辑,而忽略假设来源与参数依据,验证就无法真正独立。
二、模型分类与常见精算模型
按业务领域,常见精算模型可分为寿险、非寿险、养老金和投资四大类。它们在时间跨度、随机性来源、监管框架和文档化重点上差异显著。
| 模型类别 | 典型模型 | 核心输出 | 文档化重点 |
|---|---|---|---|
| 寿险 | 利源分析、准备金评估、内含价值 | 准备金、利润、新业务价值 | 死亡率假设、折现率、费用分摊 |
| 非寿险 | 链梯法、广义线性模型、巨灾模型 | 未决赔款准备金、保费 | 进展因子、尾部因子、巨灾参数 |
| 养老金 | DB计划估值、DC计划预测 | 给付义务、缺口、缴费率 | 人口假设、工资增长、投资收益率 |
| 投资 | ALM、情景生成、信用风险模型 | 资产配置、久期、VaR | 相关性矩阵、情景路径、校准方法 |
以非寿险链梯法为例,其核心是进展因子与尾部因子的选择。文档中必须记录每个事故年的已付赔款、进展因子计算过程、异常值处理方式以及尾部因子的来源。若只写“采用链梯法”,验证人员无法判断因子是否合理。
进展因子计算示例(事故年2020):
C(2020,0) = 1200
C(2020,1) = 1800
f(0→1) = 1800 / 1200 = 1.5000
若剔除大额赔案后:
C'(2020,0) = 1000
C'(2020,1) = 1450
f'(0→1) = 1.4500
文档需记录剔除原因与影响金额。
三、模型生命周期与文档化节点
模型生命周期通常包括需求定义、设计开发、测试验证、上线部署、监控维护和退役归档六个阶段。每个阶段都有对应的文档化产出。
- 需求定义:记录业务问题、监管依据、使用者和精度要求。
- 设计开发:记录假设、数据源、方法选择、参数校准和代码结构。
- 测试验证:记录测试用例、基准对比、敏感性分析和独立复现结果。
- 上线部署:记录运行环境、版本号、输入输出接口和权限控制。
- 监控维护:记录实际与预期偏差、假设更新和变更审批。
- 退役归档:记录退役原因、替代模型和数据留存期限。
四、案例场景:寿险准备金模型的文档化复盘
某寿险公司开发了一套新的准备金评估模型,用于监管报送。开发团队在代码中实现了死亡率改善因子,但文档中只写了“采用行业生命表”,未记录改善因子的来源、应用方式和敏感性。独立验证团队在复现时发现,代码中的改善因子按年线性递减,而文档描述为“按世代改善”,两者含义不同,导致准备金差异达到3.2%。
复盘发现三个问题:第一,假设文档与代码实现脱节;第二,缺少参数来源的引用;第三,没有记录假设变更的审批记录。修复措施包括:建立假设登记表,强制记录每个假设的数值、来源、责任人和审批日期;在代码中增加假设注释;验证时逐项核对假设与代码的一致性。
五、方法流程:从模型识别到文档化清单
面对一个具体模型,可以按以下流程确定文档化需求:先识别模型类别和用途,再确定监管与内部治理要求,然后列出必须记录的假设、数据、方法和参数,最后形成文档化清单并分配责任人。
文档化清单示例(非寿险准备金模型):
[ ] 模型用途与监管依据
[ ] 数据源与提取逻辑
[ ] 进展因子计算表
[ ] 尾部因子选择依据
[ ] 异常值处理记录
[ ] 假设登记表(含审批人)
[ ] 代码版本与运行日志
[ ] 验证报告与敏感性结果
[ ] 变更历史与审批记录
这份清单可以直接作为验证团队的检查表。每一项都对应一个可验证的对象,而不是模糊的“文档齐全”。
回到本节的核心:模型分类决定了文档化的侧重点,生命周期决定了文档化的时间节点,而常见精算模型的差异决定了文档化的具体内容。只有把这三者结合起来,才能为后续的独立验证提供真正可用的基础。下一阶段的工作,将围绕如何把这些文档化要求转化为可执行的验证程序展开。