4. 模型假设检验:死亡率、退保率、费用率等关键精算假设的统计检验方法
精算模型的核心在于其假设的合理性。死亡率、退保率、费用率等关键假设若偏离实际经验,将直接导致准备金计提不足、产品定价失误或偿付能力评估失真。本章系统阐述对这些关键假设进行统计检验的标准方法,帮助精算师识别模型偏差并指导迭代方向。
4.1 假设检验的基本框架
精算假设检验的本质是比较模型预测值与实际观测值之间的差异是否在可接受的随机波动范围内。检验流程通常包含以下步骤:
- 定义零假设 H₀:模型假设与实际经验无显著差异(如:预测死亡率 = 实际死亡率)。
- 选择备择假设 H₁:模型假设存在系统性偏差(如:预测死亡率 ≠ 实际死亡率,或预测死亡率 > 实际死亡率)。
- 确定显著性水平 α:通常取 0.05 或 0.01,控制第一类错误概率。
- 计算检验统计量:根据数据类型和分布选择适当的统计量。
- 做出决策:若 p 值 < α,则拒绝 H₀,认为假设需要调整。
关键原则:统计显著不等于经济显著。在大样本下,微小偏差也可能被判定为显著,此时需结合业务影响评估(如对准备金的影响比例)综合判断是否迭代模型。
4.2 死亡率假设检验
4.2.1 标准化死亡率比率(SMR)检验
SMR 是实际死亡人数与预期死亡人数之比,是最直观的死亡率假设检验指标。
| 指标 | 公式 | 解释 |
|---|---|---|
| 实际死亡数 (O) | ∑ 各风险分组的实际死亡人数 | 来自经验数据 |
| 预期死亡数 (E) | ∑ (各分组暴露数 × 模型死亡率) | 来自精算假设 |
| SMR | O / E | SMR > 1 表示实际死亡率高于假设 |
| 95% 置信区间 | SMR × exp(±1.96 / √O) | 基于泊松分布近似 |
检验方法:若 1 不在 SMR 的 95% 置信区间内,则拒绝 H₀,认为死亡率假设存在显著偏差。
4.2.2 卡方拟合优度检验
适用于按年龄、性别、保单年度等维度分组的死亡率检验。将数据分为 k 个组,计算:
χ² = Σ [(Oᵢ - Eᵢ)² / Eᵢ]
其中 Oᵢ 为第 i 组实际死亡数,Eᵢ 为预期死亡数。该统计量服从自由度为 (k - 1 - 估计参数个数) 的卡方分布。若 χ² 大于临界值,则拒绝 H₀。
实务提示:当 Eᵢ < 5 时,卡方检验的近似效果变差,建议合并相邻分组或使用精确检验(如 Fisher 精确检验)。
4.3 退保率假设检验
4.3.1 退保率偏差分析
退保率检验面临的主要挑战是数据截断(保单可能因死亡、满期等原因退出观察)和时间异质性(退保行为随保单年度变化)。常用方法包括:
- 实际/预期退保数比率:类似 SMR,计算 O/E 比率及其置信区间。
- 逐期退保率比较:按保单年度或日历年度计算实际退保率与假设退保率的差异。
- 生存分析中的对数秩检验:比较两组(实际 vs 预期)的退保生存曲线是否一致。
4.3.2 退保率检验的特别注意事项
| 问题 | 影响 | 应对方法 |
|---|---|---|
| 退保高峰期的季节性 | 短期偏差被长期平均掩盖 | 按季度或月份分组检验 |
| 经济周期影响 | 退保率在利率上升期显著升高 | 引入宏观经济协变量 |
| 产品形态差异 | 万能险与定期寿险退保模式不同 | 按产品线分层检验 |
| 数据质量(退保原因缺失) | 无法区分主动退保与自动失效 | 数据清洗后单独分析 |
4.4 费用率假设检验
4.4.1 费用率偏差的分解
费用率假设通常分为单位费用(每张保单的固定费用)和比例费用(保费或保额的一定比例)。检验时需分别考察:
- 总费用偏差:实际总费用与预期总费用的比率。
- 费用结构偏差:固定费用与变动费用的比例是否与假设一致。
- 费用趋势偏差:费用通胀率假设是否与实际趋势一致。
4.4.2 费用率检验的统计方法
由于费用数据通常呈现右偏分布(少数高额理赔案件拉高均值),建议使用以下方法:
- 中位数检验:比较实际费用中位数与假设费用中位数,使用 Wilcoxon 符号秩检验。
- 分位数回归:检验不同分位点(如 25%、50%、75%)上的费用假设是否成立。
- 比率 t 检验:对费用率(费用/保费)进行配对 t 检验,比较实际与假设的均值差异。
常见陷阱:费用数据中常包含一次性项目(如系统升级费、并购整合费),这些非经常性费用应在检验前剔除或单独标注,否则会导致假设被错误拒绝。
4.5 多假设联合检验与可视化
单一假设检验可能遗漏变量间的交互影响。下图展示了死亡率、退保率、费用率假设检验的联合评估框架:
4.6 检验结果解读与模型迭代决策
统计检验完成后,需将结果转化为模型迭代的具体行动。下表总结了不同检验结果对应的处理策略:
| 检验结果 | 可能原因 | 建议行动 |
|---|---|---|
| 单一假设显著偏差,其他正常 | 该假设参数设置不当,或经验数据存在异常 | 调整该假设的参数(如死亡率乘数),重新校准 |
| 多个假设同时显著偏差 | 模型结构问题,或基础数据存在系统性偏差 | 检查数据源,考虑更换模型结构或引入新变量 |
| 偏差集中在特定分组 | 分组变量选择不当,或存在未识别的风险因子 | 细化分组维度,或增加交互项 |
| 偏差随时间呈趋势性变化 | 假设未考虑时间趋势或外部环境变化 | 引入时间序列模型或动态假设 |
| 统计显著但经济影响微小 | 大样本下的正常波动 | 维持原假设,监控后续经验 |
最佳实践:建议建立假设检验仪表盘,定期(如每季度)自动运行所有关键假设的检验,并标记出需要人工复核的异常项。这能显著提升精算模型的监控效率,避免在年度评估时才发现重大偏差。
4.7 代码示例:死亡率 SMR 检验的 Python 实现
以下代码演示了如何计算 SMR 及其置信区间,并判断假设是否显著偏离:
import numpy as np
from scipy.stats import poisson
def smr_test(observed, expected, alpha=0.05):
"""
死亡率 SMR 检验
参数:
observed: 实际死亡数 (int)
expected: 预期死亡数 (float)
alpha: 显著性水平
返回:
smr, ci_lower, ci_upper, p_value, reject
"""
smr = observed / expected
# 基于泊松分布的精确置信区间
ci_lower = poisson.ppf(alpha/2, observed) / expected
ci_upper = poisson.ppf(1 - alpha/2, observed) / expected
# 双边检验 p 值
if observed >= expected:
p_value = 2 * (1 - poisson.cdf(observed - 1, expected))
else:
p_value = 2 * poisson.cdf(observed, expected)
reject = p_value < alpha
return {
'smr': smr,
'ci_95%': (ci_lower, ci_upper),
'p_value': p_value,
'reject_H0': reject
}
# 示例:某寿险产品经验数据
result = smr_test(observed=85, expected=72.3)
print(f"SMR = {result['smr']:.3f}")
print(f"95% CI = ({result['ci_95%'][0]:.3f}, {result['ci_95%'][1]:.3f})")
print(f"p-value = {result['p_value']:.4f}")
print(f"拒绝零假设? {'是' if result['reject_H0'] else '否'}")
输出示例:
SMR = 1.176
95% CI = (0.939, 1.454)
p-value = 0.1482
拒绝零假设? 否
该结果表明,虽然实际死亡率比假设高 17.6%,但在 95% 置信水平下差异不显著,暂不需要调整死亡率假设。
4.8 本章小结
- 死亡率假设检验的核心工具是 SMR 比率检验 和 卡方拟合优度检验,需注意小样本下的检验效力问题。
- 退保率检验需特别关注 数据截断 和 时间异质性,建议使用生存分析方法。
- 费用率检验应 区分固定与变动费用,并剔除一次性项目,使用稳健的非参数方法。
- 多假设联合检验框架有助于识别 系统性偏差 与 交互影响,避免孤立决策。
- 统计显著不等于业务显著,最终迭代决策应结合 经济影响评估 和 业务判断。