Skills Data Science Standard Reproducible Research Pipeline

Standard Reproducible Research Pipeline

v20260724
er-reproducibility
A comprehensive guide for structuring academic empirical research projects to ensure the full reproducibility of findings. This methodology covers standard folder layouts, master scripting, data provenance documentation, and best practices required for passing rigorous peer review scrutiny, thereby preventing data loss and calculation errors during revisions.
Get Skill
149 downloads
Overview

可复现研究包(er-reproducibility)

触发时机

  • 实证做完了,准备把代码和数据整理成"别人能重跑"的形态
  • 审稿人或编辑要求"提供代码核查",而你的脚本现在是一坨乱麻
  • 收到 R&R,要在干净环境里复现自己三个月前的结果,却跑不出来
  • 录用后编辑部要求提交扩展资料(数据 + 代码)

为什么重要

  • 《经济研究》审稿人 / 编辑会核查代码与数据:表格对不上、跑不出来,直接成为修改阶段的大坑,甚至撤稿。
  • 可复现性差 → R&R 阶段每改一处都要从头手动重算,时间成本巨大。
  • 现实是:几个月后第一个跑不出你结果的人,就是你自己。可复现包首先是给未来的自己用的。

标准目录结构

一个项目一个根目录,原始数据只读、代码分层、输出与代码分离:

project/
  ├── data/raw/        原始数据(只读,永不手改)
  ├── data/clean/      清洗后数据(由代码生成,可删可重建)
  ├── code/
  │   ├── 00_master.do     一键运行,顺序调用以下脚本
  │   ├── 01_clean.do      清洗:原始 → clean
  │   ├── 02_descriptive.do 描述性统计 / 平衡性
  │   ├── 03_baseline.do   基准回归
  │   ├── 04_mechanism.do  机制检验
  │   ├── 05_robustness.do 稳健性
  │   └── 06_figures.do    出图
  ├── output/tables/   表格(由代码生成)
  ├── output/figures/  图形(由代码生成)
  └── README.md        运行说明 + 数据可得性声明

原则:output 里的任何文件都应能被 code 重新生成。手工产物不进 output。

master do-file 模板

只在 master 里定义一次根路径,全部用相对路径,固定版本与种子:

*============================================================
* 00_master.do —— 一键复现正文全部表与图
*============================================================
clear all
set more off
version 17                          // 声明 Stata 版本,便于他人对齐
set seed 20240101                  // 全局随机种子,bootstrap/安慰剂可复现

* 根路径:他人只需改这一行
global root "/Users/yourname/project"
global data  "$root/data"
global code  "$root/code"
global out   "$root/output"

* 按顺序运行,从原始数据到最终图表
do "$code/01_clean.do"
do "$code/02_descriptive.do"
do "$code/03_baseline.do"
do "$code/04_mechanism.do"
do "$code/05_robustness.do"
do "$code/06_figures.do"

display "复现完成:见 $out/tables 与 $out/figures"

脚本编写规范

  • 一个脚本一个任务:清洗、描述、回归、出图分开;不要把 8000 行塞进一个文件。
  • 全链路可追溯:从 data/rawoutput/tables 的每一步都在代码里,无手工断点。
  • 变量构造有注释:每个生成变量注明来源与公式,例如:
    * 资产负债率 = 总负债 / 总资产(CSMAR 财务报表,FI_T1.B001000000 / FI_T1.A001000000)
    gen lev = total_debt / total_asset
    
  • 缩尾、合并、样本筛选都在代码里留痕
    winsor2 lev roa, cuts(1 99) replace   // 上下 1% 缩尾
    drop if year < 2008 | year > 2022     // 样本期:2008–2022,注明理由
    
  • 相对路径引用 $data/$out不写死绝对路径(绝对路径只在 master 的 global root 出现一次)。

数据可得性说明

商业数据库(CSMAR / Wind / 税收调查等)不能直接公开,需在 README 写"数据可得性声明",说清来源、获取方式、哪些可共享哪些受限:

## 数据可得性声明
本研究数据来自以下来源:
- 上市公司财务数据:CSMAR 数据库(订阅获取,受许可协议限制,不可公开再分发)。
- 城市层面控制变量:《中国城市统计年鉴》(公开出版物,已随包提供清洗后子集 data/clean/city_panel.dta)。
- 政策清单:作者手工整理自地方政府公开文件,随包提供 data/raw/policy_list.xlsx。
可共享:清洗代码(code/)、公开来源数据、变量构造说明。
受限:CSMAR 原始明细不可公开;复现者须自行订阅并按 01_clean.do 注明的字段重建。
联系方式:[作者邮箱],可协助说明字段口径。

不要写"数据来源于公开渠道"这种含糊声明。

随机性与可复现

  • 任何含随机性的步骤(bootstrap、安慰剂置换、ML 调参、随机抽样)必须 set seed,且种子在 master 里统一设定。
  • 报告软件版本与关键命令版本:Stata 版本(version 17)、依赖的用户写命令及版本(如 csdid / reghdfe / winsor2),可在 README 列出 which csdid 的版本行。
  • 涉及并行 / 多核时注意:核数变化可能改变随机数流,需在说明中标注运行环境。

必查清单

  • 目录按 data/raw、data/clean、code、output 分层,raw 只读
  • 存在 00_master.do,一键顺序运行全部脚本
  • 所有路径相对化,绝对路径仅在 master 出现一次
  • 每个生成变量有来源与公式注释;缩尾 / 合并 / 筛选在代码中留痕
  • 所有随机步骤 set seed,种子在 master 统一设定
  • README 含数据可得性声明,区分可共享 / 受限
  • README 列出软件与关键命令版本
  • 干净环境00_master.do 一键重跑,能复现正文每一张表 / 图
  • output 中表格 / 图形编号与正文引用完全一致
  • 录用后按编辑部要求准备扩展资料(数据 + 代码),以投稿当期官网为准

注:《经济研究》录用后须按编辑部要求提交扩展资料——附录(Word)、与统计软件匹配的数据文件或 Excel、软件代码文件、(如有)权利人限制说明。是否提交完整复制包 / README 以投稿当期官网与编辑部通知为准,本技能不替代官方要求。

反模式

  • 在 Excel 里手动改数 → 链路断裂,无法追溯
  • 路径写死绝对路径,换台电脑全部报错
  • 没有 master,靠"记得先跑哪个再跑哪个"
  • 随机检验(bootstrap / 安慰剂)不设种子,每次结果都不一样
  • 清洗与分析混在一个 8000 行脚本里,改一处全连坐
  • 正文最终表格是从日志里手抄进 Word 的
  • 数据可得性写"数据来源于公开渠道",审稿人无法判断口径

输出格式

【目录结构】合规 / 待整理:[...]
【master】存在并一键可跑 / 缺失
【路径】全相对 / 发现写死绝对路径:[...]
【随机种子】全部已设 / 缺失:[...]
【数据声明】完整(区分可共享 / 受限)/ 含糊待改
【干净环境复现】通过 / 失败:[哪张表跑不出]
【版本记录】已列 Stata 与命令版本 / 缺失
【下一步】整理完成 → er-submission 做投稿前 preflight 与附件清单

参考

  • 著录采用著者—出版年制;正文引用如(Gentzkow and Shapiro,2014),不使用 [1][2] 序号制。

附属资源

Info
Category Data Science
Name er-reproducibility
Version v20260724
Size 7.51KB
Updated At 2026-07-28
Language