6 综合实操:从复现代码到自己的分析任务
- 如何打开和理解一个复现项目;
- 如何根据研究问题列出数据处理和模型实现清单;
- 如何检查样本筛选、变量构造和图形诊断结果;
- 如何解释 OLS、虚拟变量、交乘项和固定效应模型;
- 如何整理复现日志、结果说明和待检查问题清单;
- 如何借助 AI 生成代码注释、复现路线图和 debug 记录;
- 如何判断 AI 输出是否可靠,哪些问题必须回到数据和模型本身。
- 本讲是一场现场演示,不是又一章讲义。 上课时我们会临时选一篇 2026 年新发表的实证论文,连同它公开的数据与代码,用 AI Agent 当场走一遍「打开复现包 → 跑出结果 → 迁移到自己的问题」的全过程。你在这一页读到的,是这场演示的议程与提示词清单;具体每一步现场展开。
- 本讲用到的 skills:
core/03-replication-navigator与core/06-repro-logger为主,并把前五讲的core/01–core/08串成一条完整工作流。skill 是什么、怎么在不同 agent 里触发,见《AI 工作流与 skills 上手》。 - 本讲以工作流演示为主、不重自研代码,比照第一讲免写 Python 附录,改以「提示词 + skills 调用」承载。现场用到的分步提示词、裁剪版主控脚本 (Stata / R)、六幕演示讲稿已整理在配套
examples/ch06/;其中examples/ch06/demo_results/收录了课前跑通、可逐表对照的「标准答案」 (Table 1–7、Figure 1–4 与复现报告),你照着自己复现一遍后,就用它核对结果对不对。
6.1 本讲是一场现场演示
前面五讲,我们从复现一篇顶刊起步,一路练了读数据、清数据、跑回归、加虚拟变量与交乘项、上固定效应。到这一讲,是时候把这些串成一条完整的手艺了。
课程的前言里说过,这门课的定位是引进门——把你从「不敢开始」的门口领进来。这最后一讲,就用一种最贴近真实科研的方式来收尾:当场打开一个真实的复现项目,用 AI Agent 陪你走完全程。 我们把它叫做「开彩盒」——现场把一个复现项目从头拆到尾,看清里面的数据、代码和结论是怎么一步步立起来的。
之所以这样安排,有两个理由。其一,真实的研究从来不是照着讲义按部就班,而是面对一个陌生项目、一边摸索一边判断;把这一讲留成开放式,正是让你看清这种真实状态下人和 AI 怎么配合。其二,方法不再新增——我们不引入前五讲之外的任何新计量内容,只把已经学过的东西,放到一篇新论文上重走一遍,检验你是否真的能迁移。
本讲现场演示的复现项目是一份双重差分 (DID) 实践指南,作者正是当代 DID 方法的几位主要提出者:
Baker, A., Callaway, B., Cunningham, S., Goodman-Bacon, A., & Sant’Anna, P. H. C. (2026). Difference-in-Differences Designs: A Practitioner’s Guide. Journal of Economic Literature, 64(2), 498–557. DOI。复现包 (公开、免登录):github.com/pedrohcgs/JEL-DiD。
选它做现场案例,是因为它把整门课的方法脊柱用一个数据集 (美国各州医保扩张对县级死亡率的影响) 串成一条线:2×2 DID (本质就是两个虚拟变量的交叉项) → 加控制变量的回归 → 双向固定效应 → 事件研究 (处理组虚拟变量 × 年份虚拟变量的交叉项)。现场只演示这条初级班范围内的主线;复现包里更进阶的多期错峰估计量与敏感性分析,属于现代 DID 的内容,留给高级班。
复现包只给下载链接、不整包并入本仓库 (规则 11);学员按上面的 GitHub 链接自行下载即可。
需要说明的是,「现场」不等于「即兴」。演示用的每一段提示词、每一步流程,老师都会预先在那篇论文的真实数据上跑通、并留好录屏兜底——就像一场排练过的公开课,临场发挥的只是讲解,实时产出的说服力一分不减。你要学的,正是这套可以照着复用的流程。
6.2 现场议程:开彩盒六步
这场演示按六步走。这六步不是随意排的,而是任何一次「从复现代码到自己的分析」都要经过的判断链条。每一步,都请你留意研究者要在这一步做出什么判断,而不只是 AI 跑了什么命令。
开箱:先读懂这个项目 (对应要点:打开和理解一个复现项目)。拿到复现包,先不急着跑。看文件夹结构、读
README、识别数据分几层 (原始 / 中间 / 分析样本 / 图表结果)。要判断的是:入口脚本在哪、能复现到什么程度、有没有缺的数据。这一步用的正是第一讲的看法。列清单:把论文拆成可执行的步骤 (对应要点:根据研究问题列出数据处理和模型实现清单)。顺着论文的研究问题,把「要做哪些数据处理」和「要跑哪些模型」列成两张清单。要判断的是:哪些步骤是核心、哪些只是稳健性,先做什么后做什么。
体检:检查数据处理对不对 (对应要点:检查样本筛选、变量构造和图形诊断结果)。照着第二、三讲练的,核对样本怎么筛的、关键变量怎么构造的、图形诊断有没有异常。要判断的是:样本量的变化说得清吗、变量口径一致吗、有没有被离群值或缺失带偏。
读模型:解释跑出来的结果 (对应要点:解释 OLS、虚拟变量、交乘项和固定效应模型)。把复现包里的回归读懂——它是 OLS 还是加了固定效应,虚拟变量和交乘项代表什么,系数怎么解释。要判断的是:这个模型回答的是不是论文要问的问题。这一步接的是第四、五讲。
留痕:整理成可复现的记录 (对应要点:整理复现日志、结果说明和待检查问题清单)。把前面几步汇成三样东西:一份复现日志、一份结果说明、一份还没搞清的「待检查问题清单」。要判断的是:换个人照着你的记录,能不能跑出同样的结果。
迁移与收口:判断 AI 是否可靠 (对应要点:判断 AI 输出是否可靠,哪些问题必须回到数据和模型本身)。最后,讨论怎么把这套流程迁移到你自己的问题上,并回答一个贯穿全程的问题:AI 给的东西,哪些能信、哪些必须回到数据和模型本身去核。这一步单独在后面展开。
贯穿这六步的,还有一条暗线:每一步都让 AI 帮我们生成代码注释、复现路线图和 debug 记录 (对应要点:借助 AI 生成代码注释、复现路线图和 debug 记录)。它不是第七步,而是渗透在前六步里的助手——下一节就把这些 AI 动作逐一摆出来。
6.3 现场会调用的 AI 动作
上面六步里,AI 具体帮我们做五件事。下面逐条给出任务、可复制的提示词、对应的 skill,以及怎么人工核对。现场演示时,这些提示词会一段段贴给 agent,看着它实时产出;课后你照着同一份清单,就能在自己选的论文上「再开一次彩盒」。
本节逐条覆盖大纲「AI 协作训练」清单,不删项。每条都配提示词与 core skill,并说明人工核对怎么做——因为 AI 负责起草,判断对错始终是你的事。
6.3.1 动作 1:让 AI 根据项目文件夹和 README 生成复现路线图
任务:把复现包的 README 和目录清单交给 AI,让它给出一张「先跑什么、再跑什么」的路线图。
这是一篇论文复现包的
README和文件目录清单 (附)。请生成一张复现路线图:按实际运行顺序,从入口脚本一直列到最终图表,每步标明运行哪个脚本、读什么数据、产出什么;再说明数据分几层、能复现到什么程度。只依据我给的内容,不要编造文件名,不确定的地方标出来让我核对。
对应 skill:core/03-replication-navigator。人工核对:对照 README 的脚本清单,检查有没有漏掉或杜撰脚本;用「被反复调用的是子脚本、调用别人的是主程序」这条法则抽查调用关系。
6.3.2 动作 2:让 AI 根据变量字典和筛选规则生成数据检查清单
任务:把论文的变量字典 (codebook) 和样本筛选规则交给 AI,让它列一张「该检查哪些地方」的清单。
这是论文的变量说明和样本筛选规则 (附)。请帮我列一份数据检查清单:每个关键变量该怎么核对口径、样本每一步筛选后应该剩多少、哪些地方容易出缺失或离群、合并数据后要查什么。按「检查项 → 怎么查 → 期望结果」组织。
对应 skill:core/04-data-cleaning-planner。人工核对:清单只是提醒,真正的核对要回到数据本身跑一遍 (describe、misstable、匹配率);AI 说「应该剩多少」的数字,务必和实际样本量对上。
6.3.3 动作 3:让 AI 解释一段回归代码和输出表格
任务:挑复现包里的一段回归代码 (Stata、R 或 Python 都行) 和它的结果表,让 AI 讲清它在做什么、系数怎么读。这一项顺便兑现大纲「R 作为补充」的要求——我们不学 R 语法,只借 AI 读懂别的语言写的代码在流程中的角色。
这是复现包里的一段回归代码和它跑出的结果表 (附,语言可能是 Stata / R / Python)。请说明:(a) 它估计的是什么模型,有没有加固定效应、虚拟变量或交乘项;(b) 核心系数怎么解释、对应论文的哪张表;(c) 它读入什么数据、处在复现流程的哪一步。不用教我语法,只讲它在做什么、结果怎么读。
对应 skill:core/05-regression-interpreter。人工核对:把 AI 的解释和论文正文对应的那张表比对,看系数符号、显著性、变量含义说得对不对;遇到别的语言写的代码,装好环境让 agent 直接执行、再验证输出,而不是凭空判断。
6.3.4 动作 4:让 AI 生成复现日志初稿,由你检查错漏
任务:跑完一部分复现后,让 AI 把「从哪份数据、经过哪些步骤、得到哪个结果」整理成日志初稿,你负责查错漏。
以下是我跑过的脚本、用到的数据和得到的产出 (附)。请整理成一份「从数据到结果」的复现日志:按步骤记录输入数据 → 处理脚本 → 产出,标出哪些步骤因为缺数据或缺许可没跑成。只依据我提供的信息,不要补全我没给的内容。
对应 skill:core/06-repro-logger。人工核对:逐步对照你实际跑的,看输入输出对不对、跑不了的步骤有没有如实标注。一份诚实的日志,比一份漂亮但注水的更有价值——这正是人机分工里「人」不能让渡的部分。
6.3.5 动作 5:让 AI 把这次流程整理成可复用的项目模板
任务:演示到最后,让 AI 把这一整趟「开彩盒」的流程,抽象成一份下次可以直接套用的项目模板。
请把我们刚才这次复现的完整流程,整理成一份可复用的项目模板:包括标准的文件夹结构、每一步该做什么、每步建议调用哪个 skill、以及每步要人工核对的要点。目标是我下次拿到一篇新论文,照着这份模板就能自己走一遍。
对应 skill:core/06-repro-logger。人工核对:模板要经得起复用——自己拿另一篇论文套一次,看哪些步骤缺了、哪些提示词要改,再回填进模板。能沉淀出自己的模板,才算真的把这套流程学会了。
6.4 判断 AI 输出是否可靠
六步走完,剩下最要紧的一课:AI 给的东西,什么时候能信,什么时候必须回到数据和模型本身去核。这是本讲、也是全课的落点。
一个朴素的分界是:AI 擅长「组织与转述」,不擅长「判断与担责」。它能很快把 README 整理成路线图、把一段代码翻成另一种语言、把流程写成日志——这些是组织性工作,出错了你也容易核对。但涉及研究判断的地方,它给的只是一个看似合理的说法,未必对:
- 样本为什么从一万筛到八千,这个口径合不合理——要回到筛选代码和论文的样本定义去看,不能听 AI 一句「合理」;
- 这个交乘项的系数到底说明了什么、能不能解释成因果——要回到模型设定和识别假设,这是第三到五讲反复强调的;
- AI 报的某个数字、某篇文献、某个脚本名——尤其要警惕它一本正经地编造,凡关键处都回原始材料核对。
这里还要接上第二讲埋下的一条红线:AI 有可能为了「让结果好看」,在清洗或设定上悄悄做手脚。所以对它产出的每一步,都要保留一分审计的警惕心。
AI 让你更快地读懂一个陌生项目,但读得对不对、能不能用在你的问题上,永远由你判断。哪些能交给 AI、哪些必须回到数据和模型本身——分清这条线,就是这门课想教给你的核心手艺。
6.5 课后练习
本讲只有一道练习,也是这门课留给你的第一个真正独立的任务。
课后自选一篇方法简单、复现包公开的实证论文 (经管、能源、环境等均可,方法落在 OLS / 虚拟变量 / 固定效应 / 标准 DID 范围内),用本讲的六步议程和五个 AI 动作,自己完整走一遍:从打开复现包,到跑出至少一个主结果,最后产出一份诚实的复现日志 (含一张「待检查问题清单」)。
重点不在于跑得多完整,而在于你能不能在每一步认出研究者要做的判断,并对 AI 的输出保持核对。
如果你一时找不到合适的论文,下面三篇复现包公开、方法都在本课范围内,难度递进,可任选其一 (前两篇在 openICPSR,注册免费账户即可下载;第三篇在 openICPSR、代码为纯 R,适合练一次「换语言复现」):
- 入门 · 纯 Stata:Bjorvatn, K., Ferris, D., Gulesci, S., Nasgowitz, A., Somville, V., & Vandewalle, L. (2025). Childcare, labor supply, and business development: Experimental evidence from Uganda. AEJ: Applied Economics, 17(2), 75–101. DOI。复现包:openICPSR E197964。方法:OLS + 处理组虚拟变量;项目结构最干净 (
0_master.do+ 若干小.dta)。 - 进阶 · 能源政策:Bailey, M. R., Brown, D. P., Shaffer, B., & Wolak, F. A. (2025). Show me the money! A field experiment on electric vehicle charge timing. AEJ: Economic Policy, 17(2), 259–284. DOI。复现包:openICPSR E202941。方法:固定效应 + 二重/三重交乘项 + 简单 DID;主题贴近能源与政策干预。
- 练语言 · 纯 R:Ajzenman, N., Ferman, B., & Sant’Anna, P. C. (2025). Discrimination in the formation of academic networks: A field experiment on #EconTwitter. AER: Insights, 7(3), 357–375. DOI。复现包:openICPSR E210084。方法:OLS/线性概率模型 + 虚拟变量 + 交叉项 + 多组固定效应;全 R 项目
master.R。
本题没有标准答案——你选的论文不同,结果自然不同。合格与否,用下面这张清单自评:
- 开箱:说得清入口脚本、数据分层、能复现到什么程度了吗?
- 清单:数据处理和模型实现,各列出了可执行的步骤吗?
- 体检:核对过样本筛选后的样本量、关键变量口径、图形诊断吗?
- 读模型:能解释核心回归是什么模型、系数怎么读吗?
- 留痕:复现日志能让别人照着重跑吗?跑不了的步骤如实标了吗?
- 判断:至少找出一处 AI 输出的错误或存疑,并说明你怎么核对出来的吗?
六项都能答「是」,你就已经具备了从复现代码走向自己分析任务的基本功。
6.6 延伸阅读:课后的修行
这门课到这里就结束了,但正如前言所说,它只是引进门——真正的手艺,靠的是课后一篇篇论文地临摹、一个个项目地做。给你几个继续修行的入口:
- 把六步用起来:找三五篇你研究领域的论文,用本讲的流程各开一次彩盒。做得多了,你会形成自己的一套模板和提示词库,这比记住任何单条命令都值钱。
- 方法进阶留待高级班:本课只教到 OLS、虚拟变量、固定效应这些基础方法。更前沿的因果推断方法 (现代 DID 估计量、双重机器学习等) 怎么做,可先参考连享会关于现代 DID 的整理,并留待高级班与论文班系统学习。
- 让 AI 工作流长在日常里:把
core/01–core/08这套 skills 装进你自己的 agent,读论文、清数据、跑回归、写日志时随手调用。工具会一直更新,但「把任务说清楚、调对 skill、再自己核对」这套工作方式,是通用的。