附录 H — 复现材料导览

这份笔记回答什么:这篇论文的复现包 (replication package) 怎么组织、主程序在哪、数据分几层、能复现到什么程度。

这正是大纲要点里的核心能力:看懂一个复现包的文件夹结构、README、主脚本和输出,并能识别哪个是主程序、哪个是数据处理、哪个是出图出表。


H.1 如何生成这份笔记

提示词 (复制到任意 AI 助手;把复现包的 README 和目录清单一起发给它)

这是一篇顶刊论文的复现包。这是它的 README.md 和文件目录清单。请帮我写一份中文导览,面向第一次打开复现包的初学者,包含:

  1. 怎么开始跑——主程序 (入口脚本) 是哪一个?运行顺序是什么?
  2. 文件夹结构——每个主要目录 (code / data / output 等) 是干什么的?
  3. 数据分几层——原始数据、中间数据、最终结果分别放在哪、什么关系?
  4. 能复现到什么程度——有没有不公开的数据?缺了它还能跑哪些部分?
  5. 软件和依赖——需要什么软件、要装哪些包?

要求:只依据我给的 README 和目录,不编造文件名;不确定的地方标出来让我核对。

两种用法:直接用提示词即可 (任意 AI 助手);想更稳定可调用课程 skill 03-replication-navigator(复现包导航)。skill 说明见《AI 工作流与 skills 上手》。

关于数据

Lane 的复现包官方来源是 Harvard Dataverse。为配合本次课程,仓库暂时保留完整副本,位于 examples/Lane_2025_QJE_paper_codes/replicationpackage/;课程结束后的公开范围由维护者另行决定。若克隆后数据不完整,见课程数据集说明中的下载与放置步骤。下面的导览重点讲复现包的结构与读法。

以下为示例笔记 (已人工核对)。


H.2 一句话:这个包怎么跑起来

整个复现由一个入口脚本 master.R 驱动。你只要配置好 config.yml(告诉它你的 Stata 装在哪、版本几),然后运行 master.R,它会自动按顺序:先跑 Stata 分析,再用 R 出图出表。在一台较新的机器上,完整跑一遍大约一到两小时。

master.R  ←  唯一入口,你运行的就是它
  ├─ 1. setup/setup.do        配置 Stata 环境、装 Stata 包
  ├─ 2. code/0_analysis/0_master_run_analysis.do   跑全部 Stata 分析
  ├─ 3. setup/setup.R         配置 R 环境、装 R 包
  └─ 4. code/{1_figures,2_tables,3_appendix,4_suppappendix}/*.R   出图出表

识别主程序的窍门:复现包里名字带 mastermain0_ 前缀、run 的脚本,通常就是驱动别人的主程序;被它们反复 dosource 调用的,才是干具体活的子脚本。

H.3 文件夹结构:每个目录干什么

目录 作用
code/0_analysis/ Stata 分析脚本。顶层 0_master_run_analysis.do 是总驱动,下面分 1_main_scripts/(正文)、2_appendix_scripts/3_suppappendix_scripts/subdofiles/(工具子程序)。
code/1_figures/2_tables/ R 出图、出表脚本,各有自己的 0_master_run_*.R
code/3_appendix/4_suppappendix/ 附录、补充附录的图表脚本。
data/ 数据,分多层 (见下节)。
output/ 最终生成的图和表 (跑之前是空的)。
setup/ 环境配置与装包脚本 (Stata 一份、R 一份)。
documentation/ 工作流说明 WORKFLOW.md 和各数据集的字段字典 (codebook)。
config.yml 你要改的配置文件:填 Stata 路径和版本。

正文里哪个分析对应哪个脚本,README 给了对照表,例如 1_run_growth_analysis.do 对应主增长效应、2b_run_koreatrade_analysis.do 对应贸易结果、3b_run_doublerobust_analysis.do 对应双重稳健分析——读复现代码前先看这张对照表,能省很多时间

H.4 数据的四层关系

这是大纲特别强调的一点:原始数据 → 中间数据 → 分析样本 → 图表结果,四者不是一堆文件,而是一条流水线。

在包里的位置 是什么
原始/输入数据 data/input/data/policydata/ 手工数字化的制造业普查、COMTRADE 贸易、政策立法等 (含派生的行业面板 .dta/.csv)。
中间数据 data/intermediate_datasets/ 由 Stata 分析运行时生成的中间结果 (跑之前是空的)。
预存结果 data/included_datasets/ 依赖非公开数据的那几个分析,作者把算好的结果预先存进来,好让你没有微观数据也能出图。
最终结果 output/ R 脚本生成的正式图和表。

理解这条链,你就明白:改一个图的样式,不必重跑几小时的 Stata 分析——因为 R 出图读的是 Stata 产出的中间结果 (下节)。

H.5 能复现到什么程度:分级透明

复现不是全有或全无。这个包的可复现性是分级的,README 讲得很清楚:

  • 完整复现——不行:少数分析用到韩国官方微观数据和购买的 UNIDO 数据,受许可限制不公开
  • 公开数据子集——可以:包内自带的制造业面板、COMTRADE、政策数据,都能完整跑。
  • R 端图表——可以:全部能出,因为依赖受限数据的中间结果已被预存included_datasets/
  • 受限分析的代码审查——可以:那几个跑不了的脚本,代码完整保留,你仍能读懂它的逻辑。

作者用了两个很实用的设计:一个全局开关 RUN_MICRO(设为 0 就跳过依赖受限数据的分析),以及 config.yml 里的 skip_stata(没有 Stata 许可证时,只用预存中间结果也能出图)。这种缺数据也能部分复现的透明设计,正是一个专业复现包的标志。

H.6 软件与依赖

  • 软件:Stata 17+(xtdidregress 需要)、R 4.3+(建议配 RStudio)。
  • Stata 包reghdfeppmlhdfeftoolscsdiddrdidbinscatterestoutregsave 等,主 do 文件会自动从 SSC 安装。
  • R 包:约 36 个 (ggplot2data.tabledplyrkableExtra 等),setup.R 自动装。
  • 随机种子在 Stata 和 R 两端都设了,保证结果可复现。

H.7 这份导览能帮你做什么

  • 拿到任何一个复现包,先问四个问题:入口在哪、目录怎么分、数据分几层、能复现到什么程度——本笔记就是这四问的示范。
  • 想让 AI 帮你把某一个具体脚本 (比如某段 Stata 或 R 代码) 在整个复现流程里的位置讲清楚,可以继续用 笔记 (2) 里的「图表与方法与命令对照」配合本笔记的流程图定位。
  • 顺藤摸瓜找相关文献,进入 笔记 (4)