SuperAPI AI 工具集

stata-recipes

数据与分析

查看项目

更新于 10-16 07:09

技能介绍

用途

stata-recipes 是一个 Stata 命令与配方编写技能,目标是把“我想做某件数据/统计任务”这句自然语言,转成真正能跑的 Stata 代码。当任务包含多个步骤时输出完整的 .do 文件,任务较短时输出一段命令序列。输出始终是用户可以直接粘贴到 Stata 中运行的内容,而不是“你应该写什么”的描述。

主要能力

该技能强调 Stata 的精确性要求:一条不报错的命令仍可能静默地产生错误结果(例如未设定面板结构、合并后未检查、在需要处理缺失值时该用 egen 却用了 gen)。因此它的职责不止是“让它能跑”,而是“让它能跑且结果正确”,并在某个看似合理的替代写法会出错时说明原因。

具体工作方式包括:

  • 先理解数据形态:在写代码前判断数据是截面、面板还是时间序列,大致观察数与变量数,以及数据是已载入、来自文件路径还是假设性数据。面板数据的回归配方与单一时间序列的回归配方即使自然语言提问相同(如“X 是否影响 Y”),写法也完全不同。若用户已给出足够信息则直接推断合理默认值并说明假设,不做过度盘问。
  • 优先复用已有配方:在从头发挥前,先检查 references/recipes/ 中是否已有匹配配方,因为配方中固化了滞后选择方法、该关注哪些诊断、该估计量支持哪些后估计命令等决策。
  • 按规范组织代码:即使是简短回答也按 .do 文件结构书写;全新开始时顶部写 clear all / set more off;需要的时间序列或面板操作前先 tsset/xtset;仅在“为什么”不明显处加注释。优先使用当前文档推荐的现代命令形式,若发现用户片段使用过时语法则明确指出。
  • 交付前做健壮性自查:检查合并后是否检查 _merge、时间序列滞后/回归前是否 tsset、可能遇到缺失值的行内统计是否用 egen 而非 gen、是否会覆盖用户数据。
  • 处理 Python 互操作:当任务同时涉及 Python 与 Stata 时,选择正确的方向(从 .do 文件调用 Python、通过 sfi 把 Stata 当前数据集拉入 Python 会话,或用 Python 脚本驱动 Stata),而不是默认采用“写 CSV、读 CSV”的迂回方式。
  • 简要解释选择:在代码旁用一句注释或一句话解释为何采用该滞后选择方法、为何用 ec 形式、为何做该诊断。

参考文件与配方库

参考文件按需加载,包括 good-bad-examples.md(常见陷阱与正反例对照)、python-interop.md(Python 与 Stata 双向互操作)、recipes/README.md(配方模板,含 models//tests/ 划分与命名模式)。

配方库中的每个配方是 references/recipes/ 下的自包含文件,包含适用时机、假定的数据形态、针对真实数据集的完整示例脚本、该估计量特有的诊断以及常见错误:

配方 覆盖内容
models/ardl 自回归分布滞后建模:滞后阶数选择、ec 误差修正形式、Pesaran/Shin/Smith 长期关系边界检验,以及 ardl 结果不携带完整 regress 后估计菜单的坑
models/regression-timeseries 单一时间序列上的单方程回归:滞后结构、Newey-West/HAC 标准误、自相关/异方差诊断、避免非平稳序列间的伪回归
models/regression-panel 固定效应与随机效应面板回归、用 Hausman 检验在两者间选择、按面板聚类标准误
tests/test-dickey-fuller 正确运行 dfuller:趋势/漂移设定、滞后长度选择、对水平值还是差分做检验以判断单整阶数
tests/test-unit-root 在 ADF/Phillips-Perron/DF-GLS/KPSS 之间选择并综合解读,是单个检验机制之上的决策层
tests/test-im-pesaran-shin 用 xtunitroot ips 做面板单位根检验:其异质替代假设与 Levin-Lin-Chu 的对比,以及截面依赖的注意事项

若用户任务不匹配现有配方,则依据 Stata/计量经济学第一原理直接编写代码,不强行套用不适用的配方;若属于可能反复出现的工作流,会向用户建议将其补充为命名配方。

使用方式

用户以自然语言描述数据/统计任务即可。技能会先判断数据形态,再看是否有匹配配方,然后按 .do 文件规范写出代码,并在关键选择处附简短解释。涉及 Python 时会参考互操作文档选择合适方向。

限制

  • 该技能不自己运行 Stata。当前环境没有 Stata 安装,无法对代码实际执行验证,因此每个脚本都是“通过阅读审查正确性”,而非“执行并验证”。若用户误以为代码已被实际运行,会予以说明。
  • 该技能不获取也不编造用户的真实数据。配方示例基于 Stata 自带的示例数据集(通过 webuse/sysuse),以保证脚本按示例可运行,并会明确标注哪些行需要替换为用户实际使用的“yourfile.dta”。
  • 关于收费、价格、平台支持等信息,资料暂未提供。