准备金评估
用链梯法、BF 法和 Mack 法算损失三角形的未决赔款(IBNR)和误差区间。三角形可以用公开样例、演示数据或用户给的数据。
- 官方技能,由智元数据编写和维护
- 只调用智元数据的 REST 接口
- 1 个取数脚本,只用 Python 3 自带的库
- API Key 从环境变量 WI_API_KEY 读取
- 依赖的数据集
- 2
- 一次对话
- —
- 安装次数
- 4
- 近 7 天调用
- 11
01怎么用
三步,让你的 Agent 用上这些数据
安装和设置只做一次。以后直接向你的 Agent 提问就行。
01
发安装语句
复制页头的安装语句,发给 你的 Agent。它会下载技能,装进自己的技能目录。可以在页头切换你用的 Agent。
02
设置 API Key
在终端里运行下面的命令,再启动 你的 Agent。
export WI_API_KEY=你的 API Key
创建 API Key03
直接提问
02依赖的数据集
这些数据集都要有授权
技能用到的数据集都要有授权才能查询。缺授权时,Agent 会告诉你缺哪一个。
保险市场损失三角形公开样例
loss-triangle-sample
一行是一张损失三角形的一个格子:一个事故年在一个发展期的累计赔款。包含三角形编号和名称、事故年、发展月数、累计赔款、赔款口径,商业车险一张另有已赚保费。收录 3 张行业公开的样例三角形,共 165 行:RAA(Mack 1993 论文使用的美国再保险协会一般责任险数据,1981—1990 年)、Taylor-Ashe(1983,1—10 事故年)、美国财产险附表 P 商业车险全行业合计(CAS 损失准备金数据库,1988—1997 年)。用来演示和检验链梯法、BF 法、Mack 法等准备金方法。这些是国外公开样例,不是中国市场的数据。
165 行 · 7 个字段登录后查看授权
保险市场健康险报案金额三角形
health-claim-triangle-demo
一行是一个出险月在一个发展期的累计报案件数和申请赔付金额。包含出险月、发展月数(1 到 3)、累计报案件数、累计申请赔付金额和评估日期。由平台的演示数据(健康险保单、理赔案件)按出险日期和报案日期汇总,只算已结案和审核中的案件,评估日期 2026 年 9 月 30 日,覆盖 2019-01 到 2026-09 共 93 个出险月,276 行。用来演示短尾健康险的已发生未报案(IBNR)估计。这是演示数据,不是真实数据。
276 行 · 5 个字段登录后查看授权
03技能内容
装进 Agent 的,全在这里
SKILL.md 可以看预览,也可以看原文。参考文件由平台按当前数据生成,需要时才读。
- 常驻约 133 token
- name 和 description,Agent 一直带着
- 触发后约 889 token
- 用到这个技能时读入 SKILL.md 正文
- 按需约 10,281 token
- 需要时才读参考文件、运行脚本
SKILL.md
72 行 · 约 1,022 token · 触发后读入--- name: actuarial-reserving description: 用链梯法、BF 法、Mack 法算一张损失三角形的最终赔款、未决赔款(IBNR)和标准误差。用户只要这三种方法算一张三角形时使用。用平台的精算工具包 wi_actuarial(底层是开源库 chainladder)写 Python 代码计算。ODP 自助法、Cape Cod、Clark、理赔费用准备金、准备金的分位数,以及别的财产险问题用 actuarial-pc。 ---
准备金评估
用损失三角形算未决赔款。先确定三角形,再选方法,再写代码算。
第 1 步:确定三角形
| 用户说的 | triangle | 数据的性质 |
|---|---|---|
| "这张三角形",没有给数据;RAA;一般责任险 | raa | 公开样例(Mack 1993,千美元) |
| Taylor-Ashe;GenIns | genins | 公开样例 |
| 美国商业车险;有已赚保费,要用 BF 法 | clrd_comauto | 公开样例(CAS 附表 P) |
| 健康险;平台的演示数据 | demo_health | 演示数据,不是真实数据 |
用户自己给了三角形时,整理成 rows=[{"origin": 事故年, "dev": 发展年数或月数(12、24、…), "value": 累计赔款}] 传进去。 用户没有指定时用 raa,并且在回答里说明用的是公开样例。
要看三角形的原始数据,用:
python3 scripts/wi.py query loss-triangle-sample --where "triangle = raa" --fields origin_year,dev_months,value --limit 100
第 2 步:选方法
| 方法 | 函数 | 什么时候用 |
|---|---|---|
| 链梯法 | reserving.chain_ladder(triangle, average="volume", tail="none") | 默认 |
| BF 法 | reserving.bornhuetter_ferguson("clrd_comauto", apriori=0.75) | 用户说 BF、先验赔付率;只能用有保费的 clrd_comauto |
| Mack 法 | reserving.mack(triangle) | 用户问误差、区间、标准差 |
average 可以是 volume(加权平均)、simple(简单平均)、regression(回归)。tail 可以是 none、exponential、inverse_power。
第 3 步:算
import json
from wi_actuarial import reserving
r = reserving.chain_ladder("raa")
print(json.dumps(r["summary"], ensure_ascii=False))
print(json.dumps(r["data"], ensure_ascii=False))
print(json.dumps(r["tables"]["factors"]["rows"], ensure_ascii=False))
for row in r["tables"]["reserves"]["rows"]:
print(row)
for n in r["notes"]:
print("说明:", n)怎么回答
- 结论:最终赔款和 IBNR 的合计,写单位。
- 发展因子:每个发展期的因子。
- 每个事故年:已报案、最终赔款、IBNR。
- 数据和方法:三角形的出处和性质,库和函数,
notes里的说明。 - 代码:原样附上。
规则
- 数字都要来自代码的输出。不要自己再乘除,不要编造数据。
- 回答里写出数据的性质:真实数据写出处,公开样例写"公开样例",演示数据写"演示数据,不是真实数据"。
- 回答里写出用了哪个库、哪个函数,以及结果里的说明(
notes)。 - 把运行的代码原样放在回答里,方便用户复算。
- 一次回答最多 6 次运行代码。互不依赖的计算放在同一段代码里。
和别的技能的关系
- 要 ODP 自助法、Cape Cod、Clark、理赔费用准备金、准备金的分位数时,用
actuarial-pc。它的准备金方法更全,也能用平台的三角形。