一键导入
calibrate-from-moments
从数据/文献/矩条件组装 calibration.csv,记录每个参数来源。当用户说"校准参数"、"calibrate"、"匹配矩"、"match moments"、"对齐数据"、"找出 beta / alpha 取多少"时调用。本技能是任何 solve-* 系列的强制前置。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
从数据/文献/矩条件组装 calibration.csv,记录每个参数来源。当用户说"校准参数"、"calibrate"、"匹配矩"、"match moments"、"对齐数据"、"找出 beta / alpha 取多少"时调用。本技能是任何 solve-* 系列的强制前置。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | calibrate-from-moments |
| description | 从数据/文献/矩条件组装 calibration.csv,记录每个参数来源。当用户说"校准参数"、"calibrate"、"匹配矩"、"match moments"、"对齐数据"、"找出 beta / alpha 取多少"时调用。本技能是任何 solve-* 系列的强制前置。 |
| type | calibrate |
solve-* 之前需要确定参数取值的场景| 字段 | 类型 | 说明 |
|---|---|---|
model_name | str | 必须已存在 model/01_setup/<model>/spec.md 且通过 model-reviewer |
target_moments | list[dict] | 来自 spec.md §9.1 的稳态矩列表 |
data_sources | list[path] | 实测数据路径,仅 data/calibration/<model>/manifest.json 中登记过的 |
strategy | enum | closed-form / iterative / SMM / GMM / bayesian |
model/01_setup/<model>/spec.md 存在并通过 model-reviewer 评审data/calibration/<model>/manifest.json 中登记了所需数据spec.md §7 参数表中每个参数都有"来源 / 识别"字段(不能空白)任一不满足,停下并指明缺什么。
把 spec.md §7 的参数表按 来源类型 分组:
| 组 | 来源 | 校准方式 |
|---|---|---|
| A. 文献直接采纳 | 引用论文给值 | 复制 + 注引用 |
| B. 数据直接计算 | 国民账户 / 微观调查 | 直接由数据算 |
| C. 稳态矩匹配 | 模型稳态需匹配某矩 | 求解非线性方程 |
| D. 待估 | SMM / GMM / 极大似然 | 调用估计程序 |
A、B 组直接落值;C 组进入 Step 2;D 组进入 Step 3。
对每个目标矩 m_data,写出模型隐含矩 m_model(theta) 关于参数子集 theta 的函数。
求解 m_model(theta) - m_data = 0:
scipy.optimize.fsolve / nlsolve,初值取文献中位数数值稳定提示:
theta 限制在合理区间(用 bounds)least_squares 或 trust-region 算法若 spec 要求 SMM/GMM:
data/calibration/<model>/<series>.csv、模型仿真器、目标矩函数quality_reports/<model>_estimation_<timestamp>.md 中记录优化路径保存到 model/02_calibrate/<model>/calibration.csv:
parameter,value,unit,source_type,source,identification,bounds_lower,bounds_upper,notes
beta,0.99,quarterly,A,Smets-Wouters (2007),literature,0.95,0.999,
alpha,0.33,share,B,NIPA 2010-2020 mean labor share complement,data direct,0.25,0.40,
delta,0.025,quarterly,C,K/Y=2.5 steady-state matching,moment matching,0.01,0.05,solved with rho_z=0.95
rho_z,0.95,persistence,A,King-Rebelo (1999),literature,0.5,0.99,
sigma_z,0.007,std,B,Solow residual stdev 1990-2020,data direct,0.001,0.05,
依据语言:
parameters.mod,把每个参数 param = value;parameters.jl,构造 Dict 或 NamedTupleparameters.gms,parameters 段parameters.py,PARAMS = {...}每行附 # source: <source> 注释,便于回溯。
调用 math-reviewer 子 agent 验证:
bounds_lower / bounds_upper 内logs/<model>_calibration_<timestamp>.log 记录:
| 文件 | 必产 | 说明 |
|---|---|---|
model/02_calibrate/<model>/calibration.csv | ✅ | 单一事实源 |
model/02_calibrate/<model>/parameters.{mod,jl,gms,py} | ✅ | 语言专用文件 |
output/tables/<model>_calibration.tex | ✅ | 论文用 LaTeX 表 |
quality_reports/<model>_calibration_<timestamp>.md | ✅ | 校准报告 |
logs/<model>_calibration_<timestamp>.log | ✅ | 运行日志 |
source。每个参数必须有可追溯出处。math-reviewer 边界自检的情况下进入 solve-*。calibration.csv。改动必须留 git commit 与 quality_reports/ 记录。data/raw/ 中未经 manifest.json 登记的数据。| 症状 | 处理 |
|---|---|
| 矩匹配不收敛 | 检查初值;改用 least_squares;放宽 bounds;逐个矩匹配 |
| 参数撞到 bounds 边界 | 说明模型机制不足以解释该矩;改 spec 不是改 bounds |
| 数据起止与文献频率不符 | 在 spec.md 显式声明并由 model-reviewer 重审 |
| 估计标准误极大 | 弱识别问题;考虑增加矩或改用 bayesian 先验 |
组装校准表 / 矩比对表 / IRF 表 / 反事实表为 CSV 与 LaTeX。当用户说"做表"、"build tables"、"出 LaTeX 表"、"摘要表"时调用。
git 提交:检查 .gitignore、生成提交信息、避免提交受保护文件。当用户说"提交"、"commit"、"push"、"git"时调用。
跑反事实 / 过渡路径 / 政策实验,对比 baseline。当用户说"反事实"、"counterfactual"、"政策实验"、"transition path"、"如果……会怎样"时调用。
反方拷问:质疑模型机制、识别策略、数值结果。当用户说"挑刺"、"反驳一下"、"devils advocate"、"audit"时调用。
反向访谈研究生以厘清机制设定(在 spec 模糊时调用)。当用户说"我也不太确定"、"帮我想清楚"、"interview me"时调用。
文献调研:定位与本模型最近的若干文献并总结其差异。当用户说"文献综述"、"lit review"、"找相关文献"、"前沿"时调用。