关于 actuarial-risk-modeling
面向精算、保险和金融风险分析的统计建模方法技能,适用于从理赔和准备金到收益与组合损失等问题。它强调先匹配数据结构与模型假设,再验证校准、尾部表现、不确定性及使用边界,并附带只读数据检查脚本。
主要功能
- 01界定决策、数据契约与目标量
- 02按结果类型选择模型族
- 03检查假设、残差与敏感性
- 04设计符合部署场景的验证
- 05评估校准、尾部风险与不确定性
- 06提供只读数据预检和时间切分审计脚本
适用场景
- 01分析保险理赔频率、严重度或准备金
- 02评估金融收益、波动率或组合损失
- 03审查模型校准、回测和假设
- 04检查时间序列数据的验证切分与泄漏风险
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ magnus919/ agent-skills --skill actuarial-risk-modeling安装后在 Claude Code 中输入/actuarial-risk-modeling确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdevals/evals.jsonreferences/applications-and-governance.mddiagnostics-and-communication.mdmodel-families.mdproblem-framing.mdsource-index.mdvalidation-and-calibration.mdscripts/risk_preflight.pytemporal_split_audit.pytest_risk_scripts.pytemplates/model-brief.mdmodel-governance-record.mdmodel-report.mdvalidation-plan.md详细介绍
精算与金融风险建模
概述
针对结果不确定的情形应用统计建模,重点关注分布假设、暴露量、依赖关系、尾部行为、校准和决策后果。 本技能以方法论为先:讲解模型选择与证据,而非特定的库或定价公式。
适用场景
当任务涉及以下内容时,加载本技能:
- 保险定价、理赔、准备金、偿付能力、风险分类或经验费率;
- 理赔频率、严重程度、纯保费、医疗支出、损失或事件时间结果;
- 线性、广义线性、两部分、计数、生存、面板、纵向或尾部模型;
- 金融收益、波动率、投资组合损失、风险度量或情景输出;
- 校准、预测评估、回测、模型比较或假设诊断;
- 向决策者解释模型结果、不确定性、局限性或使用控制措施。
不适用场景
- 相邻领域的工作请使用上方的“决策入口”表。简而言之:
data-scientist负责一般统计、因果、实验和机器学习方法论;financial-modeling负责确定性的运营、SaaS、融资和现金流模型。 - 使用具名工具技能来操作预测、数据库或建模平台。
- 请勿将输出作为持证精算、投资、法律、会计或监管建议。重大决策应交由合格从业者处理,并遵循适用标准。
决策入口
| 起始情形 | 首要步骤 | 接下来加载 |
|---|---|---|
| 保单、理赔或损失数据 | 明确数据粒度、暴露量、目标和时间范围 | references/problem-framing.md |
| 理赔发展三角或准备金估计 | 确定事故、发展和日历结构以及估值边界 | references/applications-and-governance.md + references/validation-and-calibration.md |
| 金融收益、波动率或有序观测值 | 明确信息截止时间和预测范围 | references/model-families.md + references/validation-and-calibration.md |
| 确定性的 SaaS、现金流或融资模型 | 转用其他技能 | financial-modeling |
| 通用因果、实验或机器学习方法论 | 转用其他技能 | data-scientist |
核心工作流
-
明确决策框架。 说明决策、受众、时间范围、观测单位、估计目标或预测目标、行动阈值,以及假阳性和假阴性的代价。区分描述性、预测性和因果性问题。
-
编写数据契约。 定义粒度、暴露量或抵消项、结果支持集、观测窗口和开发窗口、删失/截断、策略或账户边界、泄漏风险、缺失状态以及来源信息。
-
建模前先分析数据概况。 检查分布、零值、负值、偏斜、尾部集中度、依赖关系、重复实体、时间顺序、类别稀疏性、暴露量平衡和数据质量异常。使用
scripts/risk_preflight.py进行只读初步检查。 -
选择最简单且有充分依据的模型系列。 在比较算法前,先使模型与结果及数据生成结构相匹配。加载
references/model-families.md查看决策表。模型选择快速参考: 带暴露量的计数 → 带抵消项的计数 GLM;零值加正损失 → 两部分模型/频率-严重度模型;存在删失的事件时间 → 生存模型;有序观测 → 动态/时间序列模型;尾部决策 → 尾部感知或分位数模型,加压力敏感性分析。选择具体分布或链接函数前,加载
references/model-families.md。 -
拟合时避免污染评估。 将转换、插补、特征选择、校准、重采样和超参数选择都视为拟合流程的一部分。只能在获准的训练分区中拟合这些步骤。
-
诊断并进行检验。 检查残差结构、链接函数和方差假设、过度离散、零膨胀、高杠杆、多重共线性、分离、校准、依赖关系、删失、尾部拟合,以及对合理替代方案的敏感性。收敛标志不等于验证。
-
针对实际用途进行验证。 当部署边界要求时,使用分组、分块或滚动切分。报告点预测准确度、概率评分、校准、排序、尾部或总体损失表现、各细分群体的稳定性以及不确定性。使用
scripts/temporal_split_audit.py审计按时间排序的分区。验证设计快速参考: 可交换观测 → 随机留出;重复实体或聚类 → 分组切分;按顺序部署 → 分块或滚动起点切分;开发数据或标签重叠 → 间隔/禁运期;大量调参或候选模型比较 → 嵌套验证。确定最终设计前,加载
references/validation-and-calibration.md。 -
比较并治理。 优先选择透明模型,除非更复杂的模型在与决策相关的指标上表现出足够优势,同时保持稳定、具有足够的可解释性且可监控。记录假设、覆盖项、局限性、审批,以及回滚或审查触发条件。
-
传达决策。 使用
templates/model-report.md,并说明哪些内容是观察所得、推断所得、假设所得、估计所得、无法识别以及未经测试的。包括单位、区间、情景定义、诊断结果和通俗易懂的建议。
必须区分的概念
- 频率不等于严重度。 计数模型与正损失模型的支持集、暴露量、诊断方法和汇总规则各不相同。
- 预测不等于因果关系。 有用的定价变量并不自动构成公平的因果解释,也不一定是获准使用的分类因子。
- 校准不等于区分能力。 模型的排序能力可能很好,但给出的概率仍可能系统性地不准确。
- 回测不等于证明。 历史上的成功可能源于制度变化、选择、泄漏或不可获得的信息。
- 不确定性分层存在。 区分抽样误差、参数不确定性、过程方差、模型形式不确定性、情景不确定性和数据质量不确定性。
- 准备金或风险估计是决策输入。 它并非独立于时间范围、假设和预期用途的客观事实。
最低分析要求
在提出建议前,说明:决策和估计目标;行粒度、时间范围、暴露量和信息截止时间;候选模型族及其支持集和依赖性假设为何适用;验证边界和指标;不确定性和敏感性;局限性和允许用途。如果其中任何一项未知,应将其标记为尚待确定的输入,而不是默默采用某种惯例。
故障模式速查
| 症状 | 首要检查项 | 路径 |
|---|---|---|
| 零值很多或方差高于均值 | 暴露量、结构性零值、过度离散、依赖性 | references/model-families.md |
| 排序能力强,但概率不准确 | 分段校准、总体变化、重新校准边界 | references/validation-and-calibration.md |
| 随机交叉验证优于下一时段表现 | 特征可用性、实体/时间泄漏、修订、漂移 | references/validation-and-calibration.md |
| 估计值随少数大额损失而变化 | 数据来源、尾部拟合、阈值、压力和情景敏感性 | references/applications-and-governance.md |
| 尚未完整发展就出现“无事件” | 删失、观测时间范围、报告延迟 | references/problem-framing.md |
参考资料路由
| 参考资料 | 何时加载 |
|---|---|
| 问题界定 | 目标、粒度、暴露量、估计目标或决策不明确时 |
| 模型族 | 选择回归、GLM、计数、严重度、生存、面板、时间序列或尾部模型时 |
| 验证与校准 | 设计数据划分、回测、指标、校准、不确定性或压力测试时 |
| 应用与治理 | 处理定价、准备金、偿付能力、可信度、风险分类或模型使用控制时 |
| 诊断与沟通 | 审查假设、解读输出或撰写可安全支持决策的报告时 |
| 来源索引 | 核查权威参考资料、适用范围或时效性时 |
模板和脚本
按阶段使用模板:数据处理前使用 model-brief.md;拟合或发布前使用 validation-plan.md;记录发现和决策时使用 model-report.md;受控部署、审查、监控或退役时使用 model-governance-record.md。
第一轮脚本为只读:拟合前运行 python3 scripts/risk_preflight.py input.csv --output preflight.json;存在有序数据或预测泄漏的可能时,运行 python3 scripts/temporal_split_audit.py observations.csv --time-column observed_at --output splits.json。
templates/model-brief.md— 决策、数据约定、估计目标和验收标准。templates/validation-plan.md— 数据划分设计、指标、校准、压力测试和发布门槛。templates/model-report.md— 以证据为依据的分析和沟通结构。templates/model-governance-record.md— 所有权、假设、局限性、审批、监控和退役触发条件。scripts/risk_preflight.py— 无依赖、只读的 CSV/JSONL 分析,并生成机器可读输出。scripts/temporal_split_audit.py— 无依赖地审计按时间顺序划分的训练/测试窗口和泄漏边界。
可用脚本
| 脚本 | 用途 | 调用方式 |
|---|---|---|
scripts/risk_preflight.py | 对 CSV 或 JSONL 输入进行只读分析:统计分布、零值、负值、偏度、重复实体、风险敞口平衡情况和数据质量异常,并将结果写为机器可读的 JSON。在工作流第 3 步运行,在任何建模之前分析数据,然后再确定模型系列。 | python3 scripts/risk_preflight.py input.csv --output preflight.json |
scripts/temporal_split_audit.py | 审核有序观测文件中的时间顺序训练/测试窗口和数据泄漏边界(必须提供 --time-column;--test-size、--step、--gap、--output 为可选参数)。每当观测数据按时间排序或可能发生预测数据泄漏时,在工作流第 7 步运行,并在相信任何验证结果之前完成审核。 | python3 scripts/temporal_split_audit.py observations.csv --time-column observed_at --output splits.json |
scripts/test_risk_scripts.py | 离线 pytest 测试套件,覆盖上述两个脚本。修改任一脚本时,或审核其输出变更时运行。 | python3 -m pytest scripts/test_risk_scripts.py |
这两个分析脚本均无需依赖,且绝不会修改输入。
完成门槛
只有在明确决策和数据契约、评估设计符合预期用途、记录诊断结果和敏感性分析、说明不确定性和局限性,并且独立读者能够根据引用的数据、代码、假设和环境复现所报告的结果后,才能将模型分析称为已完成。
前置条件
- Python 3(仅使用标准库);两个分析脚本均无需依赖,也不需要第三方软件包。
- CSV 或 JSONL 输入,且具有文档化的数据契约:粒度、风险敞口或偏移量、结果支持范围、观测窗口,以及时间列(用于拆分审核)——脚本只会分析你指定的数据,不会判断数据的含义。
- 仅在运行随附的脚本测试时需要
pytest。
局限性
- 这些脚本仅执行初步分析和拆分审核:不进行模型拟合、选择、校准或验证指标计算;初步检查结果正常并不能验证模型。
- 两个脚本均不会修改输入;它们会将报告写入标准输出或
--output路径,供你根据上文的“必要区分”进行解读。 - 输出是有关数据和划分设计的证据,并非经许可的精算、投资、法律、会计或监管建议(参见“何时不应使用”)。