---
name: mw-replication
description: Use when assembling the data-and-code replication package required by 《管理世界》 after conditional acceptance, drafting the README in Chinese, or auditing a deposit before editorial-office submission. Implements 《管理世界》"数据可获得性政策" (effective 2023, updated 2025), with explicit handling for CSMAR / Wind / 国泰安 等受限商业数据库 and Chinese government micro-data. 本技能服务于《管理世界》(Management World, MW)。
---

# 复现包构建（mw-replication）

## 概述

《管理世界》自 2023 年起执行**数据与代码可获得性政策**（Data and Code Availability Policy），所有实证、模拟、实验类录用稿件，必须在录用后向编辑部提交**数据与代码包**，并接受编辑部的**可重复性核查**。核查不通过将延迟刊发，且会被记入作者档案。

这个 skill 的目标：让你提交的复现包**一次过编辑部审核**，不返工。

## 触发时机

- 收到《管理世界》R&R 或条件录用，编辑部要求 30 天内提交复现材料
- 项目启动日就开始写 README（强烈推荐，事后补成本至少 5 倍）
- 编辑部数据核查报告退回，要求补充材料
- 准备投稿前自检（《管理世界》明确允许投稿时一并提交，可加快后续审核）

## 《管理世界》政策三大支柱

1. **数据存档** —— 实证、模拟、实验所用的全部数据；不可公开的数据须有**完整溯源说明**
2. **代码存档** —— 能复现论文中**每一个**数字、表格、图形的代码
3. **README 说明书** —— 一份让独立复现者能跑通整套流程的中文文档（英文亦可，但中文为佳）

存档位置：**《管理世界》数据与代码托管平台**（编辑部统一管理；可访问链接由编辑部在录用通知中提供）。**不接受** "数据可向作者索取" 之类的表述。

## 与 AER 政策的关键差异（对中文期刊作者最重要）

| 维度          | AER（AEA）                              | 《管理世界》                                      |
|---------------|----------------------------------------|---------------------------------------------|
| 主要语言       | 英文 README                            | 中文 README 优先（英文可附）                 |
| 主流软件       | Stata + R + Python 并重                  | Stata 占 90%+，R/Python 需额外说明环境       |
| 受限商业数据   | 较少（FRED/IPUMS 多为公开）              | CSMAR / Wind / RESSET / 国泰安 占多数，**几乎不能公开重分发** |
| 变量构造       | 多用现成宏观/微观库                       | 大量**手工构造**变量（政策事件、政商关系、城市等级、专利分类）→ 必须附**变量构造说明书** |
| 托管平台       | openICPSR                              | 《管理世界》自建平台 + 部分作者补充 GitHub      |
| 复现核查时点   | 录用后、刊发前（强制）                    | 录用后；编辑部核查 + 部分稿件抽查              |

> **底层逻辑**：AER 模板可以借鉴，但**不能照搬**。中文期刊的核心痛点是「商业数据库受限 + 手工变量多」，必须用「数据获取路径文档 + 变量构造说明书」补齐。

## 推荐目录结构

```text
管理世界-复现包-<作者姓-论文短题>/
├── README.md                          # 中文，主入口
├── README_EN.md                       # 可选，英文摘要
├── LICENSE                            # 代码 MIT；数据按原始来源
├── 00_环境说明.txt                     # 软件版本、包版本、硬件、运行时间
├── data/
│   ├── raw/                           # 原始数据（受限数据放占位说明 .txt）
│   ├── intermediate/                  # 清洗后的中间数据集
│   ├── final/                         # 用于回归的最终样本
│   └── codebook/
│       ├── 变量构造说明书.xlsx          # 关键产出，逐变量
│       └── 数据来源清单.xlsx            # 每一份数据：来源、版本、获取日期
├── code/
│   ├── 00_setup.do                    # 路径、包安装、随机种子
│   ├── 01_数据清洗.do
│   ├── 02_变量构造.do
│   ├── 03_主回归.do
│   ├── 04_机制异质性.do
│   ├── 05_稳健性.do
│   ├── 06_表格输出.do
│   ├── 07_图形输出.do
│   └── run_all.do                     # 一键复现总脚本
├── output/
│   ├── tables/                        # 与正文表 1、表 2... 一一对应
│   └── figures/                       # 与正文图 1、图 2... 一一对应
└── docs/
    ├── 数据获取指引.pdf                # 受限数据如何申请/购买
    ├── 论文-表图清单.xlsx              # 表/图 ↔ 脚本行号 映射
    └── 修订对照表.pdf                  # 若为修改稿，列明本次修订项
```

## README 必备章节（中文模板）

### 1. 论文信息
- 论文题目 / 作者 / 通讯作者邮箱
- 拟刊期号（编辑部告知后填入）
- 本复现包版本号 + 最后更新日期

### 2. 数据可获得性声明
对**每一份**数据，必须说明：
- 数据来源（机构 / 数据库 / URL）
- 获取方式（公开下载 / 商业订阅 / 申请获取）
- 获取日期与版本号（如 CSMAR 2024-09 版）
- 是否包含在本包中；若不包含，**原因 + 替代获取路径**

**受限数据标准声明模板**（直接套用）：
> 本研究使用的 CSMAR 中国上市公司财务数据库为商业订阅数据，根据深圳希施玛数据科技有限公司的用户协议，不得对外重新分发原始数据。本复现包提供：(a) 完整的变量构造代码；(b) 变量构造说明书；(c) 一份脱敏后的样本数据（前 100 个观测值）供代码冒烟测试；(d) 数据获取联系方式见 `docs/数据获取指引.pdf`。

### 3. 数据清单
表格：文件名 | 描述 | 来源 | 时间跨度 | 观测数 | 是否包含

### 4. 计算环境
```
操作系统：Windows 11 / macOS 14
统计软件：Stata 18.0 MP（必需）
Stata 外部包：reghdfe 6.12, ftools 2.49, did 1.3.1, csdid 1.7
辅助软件：Python 3.11（用于第 7 节文本分析），见 requirements.txt
硬件：标准笔记本（16 GB 内存）
总运行时间：约 45 分钟
```

### 5. 代码说明
按脚本依次写明：做什么、读入什么、输出什么。明确总入口脚本（如 `run_all.do`）。

### 6. 复现操作指引（写给陌生复现者）
```
1. 解压本复现包到工作目录。
2. 打开 Stata 18，执行 do "code/00_setup.do" 完成包安装。
3. 编辑 00_setup.do 第 8 行 global path "你的路径"。
4. 执行 do "code/run_all.do"，约 45 分钟。
5. 全部表格、图形输出至 output/ 目录。
6. 与论文正文核对：见 docs/论文-表图清单.xlsx。
```

### 7. 表图复现对照表（必交付）

| 论文位置  | 脚本文件          | 起始行 | 输出文件                          |
|-------|---------------|----|------------------------------|
| 表 1   | 06_表格输出.do   | 15 | output/tables/tab1.tex       |
| 表 2   | 06_表格输出.do   | 72 | output/tables/tab2.tex       |
| 图 1   | 07_图形输出.do   | 12 | output/figures/fig1.pdf      |
| 附表 A1 | 06_表格输出.do   | 188 | output/tables/tabA1.tex     |

### 8. 变量构造说明
对**每一个**主要变量（被解释、解释、机制、控制），用一行说明：
- 变量名（与代码、与论文一致）
- 中文含义
- 计算公式
- 数据来源字段
- 单位 / 取对数 / winsorize 区间

放在 `data/codebook/变量构造说明书.xlsx`。

## 编码纪律（从第一天就要做到）

### 通用
- **一个总脚本**（run_all.do）端到端跑通
- **全部相对路径**：`data/raw/foo.dta`，**永不**写 `D:/我的论文/...`
- **显式设置随机种子**：`set seed 20260525`
- **包版本固定**：在 `00_setup.do` 中 `ssc install reghdfe, replace`，并在 README 写明已测版本
- 每次运行**写 log**：`log using logs/run_$S_DATE.log, replace`

### Stata（《管理世界》主流）
- 每个 do 文件首行：`version 18.0`
- 任何随机化前：`set seed`
- 避免 `set more off` 等显示设置在共享脚本里
- 高维固定效应一律 `reghdfe`，不要 `xtreg, fe` 配 `i.year i.firm`
- 注释用中文也可以，但**确保 UTF-8 编码**，否则跨平台乱码
- 谨慎使用中文文件名 —— 编辑部审核机器多为 Windows 中文环境，但跨平台兼容性差；**建议代码文件用英文 / 数字命名**，数据文件可中文

### R / Python（辅助）
- R：用 `renv::snapshot()` 锁版本
- Python：`requirements.txt` 用 `==` 锁版本
- 任何 ML 流程必须 `set.seed()` / `numpy.random.default_rng(seed=...)`

## 编辑部实际核查什么

1. **README 是否齐全、是否符合模板？**
2. **总脚本能否在一台干净的机器上从零跑通？**
3. **跑出来的数字是否与论文一致？**（特别是主表系数和标准误）
4. **每一份数据是否有来源说明？**
5. **受限数据是否有完整溯源 + 替代获取路径？**

任一项不过 → 退回修改，最多两轮；两轮仍不过 → 撤稿。

常见被打回的失败模式（编辑部反馈高频项）：
- 写死的绝对路径（`E:/师姐论文/`）
- Stata 包没装就直接调用
- 主回归的样本量与论文不一致（中间数据筛选未存档）
- "数据来自 CSMAR" 一句话带过，无版本、无字段
- 表格用了手工 Excel 调整，脚本输出对不上正文
- 变量构造说明缺失 —— 审稿人无法判断"政企关联度"怎么算的

## 受限数据特别处理

中国商业数据库（CSMAR / Wind / RESSET / 国泰安 / 中经网 / 同花顺 iFinD 等）**几乎全部禁止重新分发原始数据**。处理路径：

1. **不提供原始数据**，但提供：
   - 完整数据清洗与变量构造代码
   - 每一个外部字段的**字段名 + 数据库定位**（如 `CSMAR / 公司研究系列 / 治理结构 / FS_Combas.A001000000`）
   - 一份脱敏样本（如前 100 家公司、随机抽样、或合成数据）让代码可冒烟测试
2. 在 README 中提供**获取指引**：数据库名、订阅机构、申请流程、预计费用、预计周期
3. 考虑提交**中间聚合数据**（如行业 × 年度均值），允许部分复现

政府微观数据（CFPS / CHIP / CHARLS / CGSS）：
- 一般可申请访问，但**不可重分发**
- 提供完整申请流程链接（如北大 ISSS、人大 NSD）
- 提供清洗代码即可

## 关联资源

本仓库或插件包中按需加载：
- 目录骨架：`examples/replication-skeleton/`
- 变量构造说明书模板：`templates/codebook-template.csv`
- 数据获取指引模板：`templates/data-acquisition-guide.md`

## 提交前自检清单

- [ ] 总脚本在另一台干净机器（同事电脑）从零跑通
- [ ] 全部路径相对化
- [ ] 随机种子已设置
- [ ] 所有软件 + 包版本写入 README
- [ ] README 中文，覆盖 8 个必备章节
- [ ] 论文中每一张表、每一张图都能在 `output/` 找到对应文件
- [ ] 论文-表图清单 xlsx 已填
- [ ] 变量构造说明书 xlsx 覆盖全部主回归变量
- [ ] 每一份数据均有来源说明（含版本、获取日期）
- [ ] 受限数据：标准声明 + 获取指引 + 脱敏样本三件套齐全
- [ ] 代码文件名英文/数字，UTF-8 编码无 BOM
- [ ] LICENSE 文件已添加
- [ ] 目录结构与 `mw-replication` 推荐一致

## 输出格式

```
【复现包类型】公开数据 / 受限数据 / 混合
【README 状态】完成 / 待补章节：...
【可重复性自测】已在另一台机器跑通 / 未测
【受限数据处理】N/A / 已附标准声明+获取指引+脱敏样本
【变量构造说明书】完成 / 缺：变量 X、Y、Z
【下一步】mw-submission
```

## 反模式

- 等收到录用通知才开始整理 —— 编辑部 30 天死线压力大
- README 写成"给自己看的笔记"，而不是"给陌生复现者的指南"
- "数据可向作者索取" —— 直接被退
- 把脚本输出表手工改完粘贴到 Word，再说"代码就这样" —— 编辑部一跑就对不上
- 用 Stata 16 跑、README 写 Stata 18，反之亦然
- 只交主回归代码，不交稳健性 / 机制 / 异质性 —— 那些也都在论文里，都要能复现
- 用中文路径或中文文件名，跨平台跑直接报错
- 把 CSMAR 原始 dta 打包上传 —— 违反数据库用户协议，可能被追责
