风险与资本
算 VaR、TVaR 和资本分配,用极值、Copula、破产概率、利率和时间序列模型做风险建模。
- 官方技能,由智元数据编写和维护
- 只调用智元数据的 REST 接口
- 1 个取数脚本,只用 Python 3 自带的库
- API Key 从环境变量 WI_API_KEY 读取
- 依赖的数据集
- 4
- 一次对话
- —
- 安装次数
- 3
- 近 7 天调用
- 41
01怎么用
三步,让你的 Agent 用上这些数据
安装和设置只做一次。以后直接向你的 Agent 提问就行。
01
发安装语句
复制页头的安装语句,发给 你的 Agent。它会下载技能,装进自己的技能目录。可以在页头切换你用的 Agent。
02
设置 API Key
在终端里运行下面的命令,再启动 你的 Agent。
export WI_API_KEY=你的 API Key
创建 API Key03
直接提问
02依赖的数据集
这些数据集都要有授权
技能用到的数据集都要有授权才能查询。缺授权时,Agent 会告诉你缺哪一个。
自然灾害县级暴雨重现期
county-rainstorm-return-period
一行是一个县区的年最大日降水重现期。包含 2、5、10、20、50、100 年一遇的日降水量,Gumbel 分布的 2 个参数,县内格点数、所用年数和拟合优度(概率图相关系数)。覆盖全国 2899 个县区,用 1961 至 2022 年的 0.1 度格点逐日降水算出;每个格点用 L 矩法拟合 Gumbel 分布,县取县内格点参数的中位数,县内没有格点的 141 个县用最近的格点。用来判断工程所在县多大的日降水算几年一遇,给暴雨和洪涝风险定级,作为巨灾测算的危险性输入。
2,899 行 · 20 个字段登录后查看授权
自然灾害全国台风登陆记录
typhoon-landfall
一行是一个台风在中国沿海的一次登陆。包含台风编号、中文名、登陆日期、登陆地点和它的行政区划代码、登陆时的强度等级。覆盖有记录以来在中国大陆、香港、澳门、台湾登陆的台风,同一个台风多次登陆时各占一行。用来统计沿海各县市台风登陆的次数和强度,评估工程项目和企业财产的风灾风险。
839 行 · 13 个字段登录后查看授权
保险市场中国国债收益率曲线
treasury-yield-curve
一行是一个交易日一个关键期限的国债到期收益率。包含日期、期限(3 个月到 30 年共 9 个)、当日收益率,以及平台算的前 750 个交易日的移动平均。覆盖 2006 年 3 月到 2026 年 11 月的 5177 个交易日,共 46593 行。用来给保险负债和年金折现,750 日移动平均是保险合同准备金计量基准收益率曲线的基础部分。
46,593 行 · 6 个字段登录后查看授权
人口健康死因监测分年龄死亡率
surveillance-age-mortality
一行是全国死因监测系统一年里一个城乡类别、一个地区、一个性别、一个年龄组的监测人口数、全死因死亡数和死亡率。覆盖 2004 到 2021 年每一年,城乡合计、城市、农村分全国和东、中、西部,男女合计和分性别,20 个年龄组(含合计),共 12960 行。用来看全人口死亡率随年龄、城乡、地区和年份的变化,给寿险和年金的死亡率假设做人口层面的参照。
12,960 行 · 12 个字段登录后查看授权
03技能内容
装进 Agent 的,全在这里
SKILL.md 可以看预览,也可以看原文。参考文件由平台按当前数据生成,需要时才读。
- 常驻约 394 token
- name 和 description,Agent 一直带着
- 触发后约 2,390 token
- 用到这个技能时读入 SKILL.md 正文
- 按需约 14,237 token
- 需要时才读参考文件、运行脚本
SKILL.md
92 行 · 约 2,784 token · 触发后读入--- name: actuarial-risk description: 风险度量和风险建模,用平台精算方法库 wi_actuarial 里对过标准答案的方法:VaR、TVaR、CTE(参数分布和样本),保费原理,扭曲风险度量,资本汇总和资本分配,极值理论(GEV、超阈值 GPD、Hill、重现期、县级暴雨重现水平),巨灾超越概率曲线(OEP、AEP、PML、AAL),Copula 和相依,破产理论(调节系数、Lundberg 上界、破产概率),随机模拟(逆变换、自助法、重要性抽样),随机过程(马尔可夫链、泊松过程、布朗运动),金融数学和衍生品(Black-Scholes、二叉树、隐含波动率、Vasicek、Hull-White、信用风险),投资组合(均值方差、CAPM),时间序列(ARIMA、GARCH、指数平滑、单位根)。用户说"VaR""TVaR""尾部风险""经济资本""多少年一遇""重现期""极值""巨灾损失""超越概率""Copula""相依""破产概率""期权定价""利率模型""波动率""时间序列预测"时使用。财产险的损失分布、准备金、费率用 actuarial-pc,人身险用 actuarial-life,GLM 和机器学习定价用 actuarial-ds-pricing。通过智元数据 World Insight 的 REST 接口取数,需要环境变量 WI_API_KEY。 ---
风险与资本
用平台的精算方法库算风险度量、极值、巨灾、相依、破产、金融数学和时间序列的问题。方法库里这一部分有 11 个方法族、80 多个方法,每个方法都对过教材例题或闭式解。你的工作是:找对方法,填对参数,运行,核对,再说清楚。
开始前
- 所有命令都在本技能的目录里运行:
python3 scripts/wi.py ...。计算用 run_python 写 Python 代码,方法库wi_actuarial已经装好。 - 脚本从环境变量
WI_API_KEY读取 API Key。没有设置时,请用户先设置,不要猜。 - 取数据会扣点,脚本会打印扣了多少。查方法、运行方法不扣点。
- 方法库的用法(查方法、参数的规则、结果的格式、怎么用平台的数据)见
references/library.md。第一次用时读它。做过的例子见references/examples.md。字段说明见references/datasets.md,查询的写法见references/query.md。
步骤
- 弄清问题。 写下用户要的量(例如 99.5% VaR、100 年一遇的雨量、破产概率),置信水平或重现期,分布和参数,单位。缺的条件先用方法的默认值,回答里写明。只有缺了就没法算的时候才问用户。
- 查方法。 在一次 run_python 里查几个关键词,并读最可能的方法的说明:
``python import wi_actuarial as wa for w in ["VaR", "风险度量"]: for m in wa.find(w): print(m["id"], m["title"], "|", m["question"]) print(wa.describe("risk_measures.var_tvar")) ``
按下面的"方法族地图"决定先查哪一族。查不到时换说法再查,或者 wa.find("", family="<方法族>", limit=30) 列出整族。
- 运行。 用用户的数,或者先取平台的数据(见"用平台的数据")。打印
summary、inputs、data、notes。 - 核对。 逐项看:
inputs和用户给的数一样吗?超出范围的数会被截断。分布的参数化(例如对数正态的 μ、σ 是对数尺度的)和用户说的一样吗?- 模拟类的方法有随机误差。能用闭式公式的,优先用闭式公式,或者用闭式公式核对一次。
- 结果的量级合理吗?例如 TVaR ≥ VaR,重现期越长雨量越大,概率在 0 到 1 之间。
- 回答。 见"怎么回答"。
方法族地图
| 方法族(family) | 典型问题 | 先看这些方法 |
|---|---|---|
风险度量 risk_measures | 参数分布或一组样本的 VaR、TVaR,保费原理,扭曲风险度量,资本汇总和资本分配 | risk_measures.var_tvar、risk_measures.sample_var_tvar、risk_measures.premium_principles、risk_measures.distortion、risk_measures.capital_allocation |
极值理论 evt | 块最大值拟合 GEV,超阈值 GPD 的尾部 VaR,Hill 估计,重现期和设计使用期内的风险,县级暴雨的重现水平 | evt.gev_fit、evt.pot_gpd、evt.hill、evt.return_period、evt.rainfall_return_level |
巨灾 cat | 一个县一个地点的暴雨、台风损失的超越概率曲线和 AAL,事件损失表的 OEP、AEP、PML | cat.ep_curve、cat.elt_ep_curves |
Copula copula | 相依系数,Copula 的尾部相依,拟合,相依对两条业务线总损失的影响 | copula.dependence_measures、copula.copula_family、copula.fit、copula.aggregate_dependence |
破产理论 ruin | 调节系数和 Lundberg 上界,再保险对破产概率的影响,有限时间破产概率 | ruin.adjustment_coefficient、ruin.reinsurance_effect、ruin.simulation |
随机模拟 simulation | 逆变换、接受-拒绝抽样,蒙特卡罗的标准误,自助法、刀切法,重要性抽样 | simulation.monte_carlo、simulation.bootstrap、simulation.importance_sampling、simulation.portfolio |
随机过程 stochastic | 马尔可夫链的平稳分布和吸收概率,泊松过程,布朗运动,随机游走和赌徒破产 | stochastic.markov_chain、stochastic.absorbing_chain、stochastic.poisson_process、stochastic.brownian_motion |
衍生品与资产模型 derivatives | 远期价格,Black-Scholes 和希腊值,二叉树,隐含波动率,奇异期权,Vasicek、CIR、Hull-White,信用风险 | derivatives.black_scholes、derivatives.binomial_tree、derivatives.implied_vol、derivatives.short_rate、derivatives.hull_white、derivatives.merton_credit |
投资组合 portfolio | 有效前沿,CAPM,因子模型,期望效用和最高保费,随机占优,最大回撤 | portfolio.mean_variance、portfolio.capm、portfolio.expected_utility |
时间序列 time_series | 自相关和白噪声检验,ARIMA 预测,指数平滑,单位根,GARCH 波动率,预测的评价 | time_series.sample_acf、time_series.arima、time_series.exp_smoothing、time_series.unit_root、time_series.garch |
表里的方法只是起点。同一族里还有别的方法,用 wa.find 查。
用平台的数据
| 数据 | 数据集 | 怎么用 |
|---|---|---|
| 县级日暴雨的 Gumbel 参数和重现水平 | county-rainstorm-return-period | evt.rainfall_return_level 和 cat.ep_curve 的 AreaCode 写 6 位区划代码,方法自己读表。要看原始的参数时取数据 |
| 台风登陆记录 | typhoon-landfall | cat.ep_curve 自己读。要统计登陆次数时取数据 |
| 国债收益率曲线 | treasury-yield-curve | derivatives.hull_white 的 source="treasury_latest"(最新一天)或 "treasury_ma750"(750 日移动平均),方法自己读表 |
| 人口的分年龄死亡率 | surveillance-age-mortality | time_series.arima 的 source="mortality" 自己读 |
县名有重名。例如"西湖区"在杭州和南昌各有一个,"城区"有很多个。先查出 6 位区划代码,再传给方法:
python3 scripts/wi.py query county-rainstorm-return-period --where "county = 西湖区" --fields region_code,county,gumbel_mu,gumbel_beta --save data/rain.json
结果有几行时,按用户说的省、市选一行。用户没说清时,列出候选,问用户。
怎么回答
- 结论:用户问的数,写单位和置信水平(或重现期)。
- 方法:方法的名称和标识(例如"VaR 和 TVaR risk_measures.var_tvar"),公式或思路一两句话。
- 输入:实际用的参数(来自
inputs),哪些是默认值,分布怎么参数化。 - 数据:数据的性质和出处(来自
data)。只用了参数时写"只用了参数"。 - 说明:
notes里的假设和限制。模拟的结果写模拟次数和随机数种子。巨灾的cat.ep_curve是简化测算,不是完整的巨灾模型,要写出这一点。 - 代码:把最后一次运行的代码原样附上,方便复算。
不要做
- 不要心算风险的数。所有数字都来自代码的输出,包括概率的换算(例如 1 − (1 − 1/T)^n)。
- 不要编造方法标识。只用
wa.find查到的方法。方法库里没有合适的方法时,用 numpy、scipy 自己写,并说明这不是方法库里测试过的方法。 - 不要把简化测算、教材参数的结果说成监管资本或真实的巨灾损失。
- 不要把期权、利率模型的结果说成投资建议。
和别的技能的关系
- 一个县一个地点的暴雨、台风简化巨灾测算,
actuarial-cat也能做,它的步骤更细。本技能还能做重现期、极值拟合和事件损失表。 - 只用频率和强度合成总损失分布再算 VaR 时,
actuarial-loss也能做。参数分布的 VaR、TVaR 用本技能。 - 财产险的损失分布、免赔额、准备金用
actuarial-pc。人身险、利息理论用actuarial-life。GLM 定价用actuarial-ds-pricing。