4. 生命表构建

生命表是长寿风险建模的“底层数据结构”。无论是评估养老金负债、定价年金产品,还是校准死亡率改善模型,最终都要落到一张能回答“某人在某年龄活到下一年的概率是多少、还能活多久”的表上。本节从生命表函数出发,串联年龄别死亡率、生存概率与期望寿命的计算逻辑,并重点辨析时期生命表与队列生命表的差异。

一、核心原理:生命表函数体系

生命表以一批同时出生的人(通常设为 l₀ = 100000)为起点,追踪其随年龄递减的存活过程。核心函数包括:

  • lₓ:活到确切年龄 x 岁的人数,是生命表的“骨架”。
  • dₓ:x 岁到 x+1 岁之间的死亡人数,满足 dₓ = lₓ − lₓ₊₁。
  • qₓ:年龄别死亡率,即 x 岁存活者在一年内死亡的概率,qₓ = dₓ / lₓ。
  • pₓ:生存概率,pₓ = 1 − qₓ = lₓ₊₁ / lₓ。
  • Lₓ:x 到 x+1 岁之间的“人年数”,反映该年龄段的平均存活时长。
  • Tₓ:x 岁以后的总人年数,Tₓ = Σ Lₓ。
  • eₓ:x 岁时的期望寿命,eₓ = Tₓ / lₓ。

这些函数并非独立,而是层层递推:由 qₓ 推出 pₓ,由 pₓ 推出 lₓ,由 lₓ 推出 dₓ 与 Lₓ,最终得到 eₓ。理解这条链条,才能在建模中定位参数误差的传导路径。

生命表函数递推链条 qₓ 年龄别死亡率 pₓ = 1 − qₓ 生存概率 lₓ₊₁ = lₓ · pₓ 存活人数 dₓ = lₓ − lₓ₊₁ 死亡人数 Lₓ 人年数 Tₓ = Σ Lₓ 总人年数 eₓ = Tₓ / lₓ 期望寿命 时期 vs 队列 数据口径差异 递推方向:qₓ → pₓ → lₓ → dₓ / Lₓ → Tₓ → eₓ 误差从 qₓ 输入,沿链条逐级放大至 eₓ

二、方法流程:从原始数据到生命表

构建一张可用的生命表,通常遵循以下步骤:

  1. 数据准备:收集分年龄的死亡人数 Dₓ 与暴露人口 Eₓ(或年中人口)。
  2. 计算中心死亡率:mₓ = Dₓ / Eₓ,这是最直接的观测指标。
  3. 转换为 qₓ:常用假设为死亡均匀分布,qₓ = mₓ / (1 + 0.5·mₓ);若采用其他分布假设,需调整转换公式。
  4. 递推 lₓ:设定 l₀ = 100000,逐龄计算 lₓ₊₁ = lₓ · (1 − qₓ)。
  5. 计算 Lₓ 与 Tₓ:Lₓ ≈ (lₓ + lₓ₊₁) / 2,高龄段需做开口处理;Tₓ 由高龄向低龄累加。
  6. 求 eₓ:eₓ = Tₓ / lₓ,得到各年龄期望余命。
实操中,0 岁组和 1–4 岁组通常需要单独处理,因为婴儿死亡率不满足均匀分布假设。高龄段(如 85+)常用 Kannisto 或 Gompertz 模型外推 qₓ,避免末端数据稀疏导致 eₓ 失真。

三、案例场景:时期生命表与队列生命表的对比

假设我们要为某养老金计划评估 65 岁男性的期望余命。若使用 2020 年时期生命表,得到的是“如果 2020 年的分年龄死亡率在未来保持不变,当前 65 岁人群平均还能活多久”。但现实中死亡率逐年改善,真实队列的寿命会高于时期生命表的估计。

对比维度 时期生命表 队列生命表
数据口径 某一日历年或时期的分年龄死亡率 某一出生队列一生经历的分年龄死亡率
核心假设 死亡率保持不变 死亡率随日历年份真实变化
65 岁 eₓ 示例 约 18.5 年 约 22.3 年(含改善)
主要用途 年度死亡率水平比较、短期评估 长寿风险建模、养老金负债评估
数据可得性 高,当年即可编制 低,需等待队列完整消亡

上表揭示了一个关键事实:时期生命表会系统性低估长寿风险。在养老金和年金定价中,若直接使用时期生命表而不做死亡率改善调整,可能导致准备金不足。实务中常用“时期生命表 + 死亡率改善因子”来近似队列生命表的效果。

四、误区与复盘

误区一:把 mₓ 直接当作 qₓ。中心死亡率 mₓ 的分母是平均暴露人口,qₓ 的分母是期初存活人数,两者在死亡率较高时差异显著。忽略转换会高估 qₓ,进而低估 eₓ。

误区二:用时期生命表的 eₓ 直接做长期负债评估。时期生命表假设死亡率不变,而长寿风险的核心恰恰是死亡率持续改善。正确做法是引入队列效应或死亡率改善模型。

误区三:忽视高龄段外推方法的选择。85 岁以上数据稀疏,不同外推模型(Gompertz、Kannisto、Logistic)对 e₆₅ 的影响可达 1–2 年,必须做敏感性分析。

复盘建议:构建生命表后,至少做三项校验——与权威生命表(如 CL2015 或国民生命表)对比 qₓ 曲线形态;检查 lₓ 是否单调递减;验证 e₀ 与 e₆₅ 是否落在合理区间。只有通过校验的生命表,才能作为死亡率改善模型的输入基础。

# 生命表核心计算伪代码
l[0] = 100000
for x in range(0, omega):
    q[x] = m[x] / (1 + 0.5 * m[x])   # 中心死亡率转死亡概率
    p[x] = 1 - q[x]
    l[x+1] = l[x] * p[x]
    d[x] = l[x] - l[x+1]
    L[x] = (l[x] + l[x+1]) / 2        # 0岁组需调整
T[omega] = L[omega]
for x in range(omega-1, -1, -1):
    T[x] = T[x+1] + L[x]
    e[x] = T[x] / l[x]

掌握生命表构建,等于掌握了长寿风险建模的“度量衡”。后续的死亡率改善模型、随机死亡率模型,都是在生命表函数体系上的扩展与动态化。