| name | China-CF-Study |
| description | 根据研究者提供的**研究计划书(Research Proposal)**执行基于中国制度环境的公司金融类实证研究全流程。**启动后第一件事:根据计划书的主题、识别策略、贡献边际与样本范围,从中国-context 英文顶级期刊池(JF/JFE/RFS/JFQA/MS/JCF/JBF/JAR/JAE/TAR/CAR/JIBS/China Economic Review/PBFJ 等 25+ 期刊)中推荐 5 本最匹配的目标期刊([J1]–[J5]),等待研究者明确选定一本;该期刊决定 main.tex 的 bibliographystyle、Section 骨架、Introduction 风格与表注规范**。然后用 Python 完成数据清洗、描述性统计、基准回归、内生性检验(IV/2SLS、DML)、平行趋势、异质性、机制、稳健性检验与图表绘制。LaTeX 表格和图像严格遵循 template/ 示例格式,研究逻辑与排版严格遵循 rule/ 下的《通用实证研究逻辑与规范总结》与《回归表写作规范总结》。数据集与政策集从 asset/ 中按计划书中的关键词检索。**当计划书预期的实证结果无法实现时(系数不显著、平行趋势不通过、IV 弱工具、机制不成立等),skill 自动切换备选方案直至完成研究项目**。最终交付物:Python 代码 + LaTeX 表格 + 图像(.pdf/.png)。触发条件:研究者提交研究计划书(含 X→Y 假设、识别策略、样本、政策冲击等)。 |
China Corporate Finance Empirical Study (china-cf-study)
1. 定位与适用范围
本 skill 指导基于中国制度环境的公司金融类实证研究的完整流程。覆盖:
- 以 A 股上市公司、中国城市/省级面板为主体样本
- 识别策略:DID(含 staggered/CS-DID/Sun-Abraham)、Panel FE + IV/2SLS、PSM-DID、DML / DML-IV、合成控制、RDD
- 研究主题:投融资、治理、股权结构、机构投资者、信贷、创新、披露、审计、分析师、ESG 等
- 代码语言:Python(pandas / numpy / statsmodels / linearmodels / pyfixest / econml / doubleml / scikit-learn / matplotlib)
- 表格输出:LaTeX(严格遵循 template/ 格式与 rule/ 规范)
本 skill 不替代研究者的研究设计判断,而是把每一环节的标准流程、代码骨架、表格/图像模板提供给研究者,保证产出质量达到中国-context 英文顶级期刊(JF、JFE、RFS、JFQA、RCFS、JCF、JBF;JAR、JAE、TAR、CAR、RAST;MS、SMJ、JIBS;AER、QJE、JPubE、JEEM;以及 China Economic Review、Pacific-Basin Finance Journal、Emerging Markets Review、China Journal of Accounting Research 等 China-friendly 主流刊)的写作与方法论要求。目标期刊在启动后第二步即由 skill 推荐 + 研究者锁定(见 §3.4),后续 main.tex 的 bibliographystyle、Section 骨架、Introduction 风格、表注规范均以此为准。
2. 工作目录结构(项目根即 working directory)
China-CF-study/ ← working directory
├── asset/ ← 中国常见数据集与政策集索引(研究者提供检索关键词)
│ ├── macrodatas_list.csv # 马克数据网数据集清单(宏观/上市公司/城市层)
│ ├── ppmandata_trade_list.csv # 皮皮慢数据(政策/贸易/金融等)清单
│ ├── 全网首发计量方法+政策数据库.pdf # 原始政策冲击数据库 PDF(975 页,含 800+ 实证研究的方法-政策详尽案例)
│ ├── 计量方法+政策数据库.md # ★ 上面 PDF 的 50 页 markdown 精简版(按"方法 × 政策 × 数据"三维交叉重组;首选入口)
│ └── MCP.docx # MCP 服务器清单(如 CSMAR-MCP),含安装网址
├── rule/ ← 强制性写作与方法论规范(AI 必须逐项遵循)
│ ├── 通用实证研究逻辑与规范总结.docx
│ └── 回归表写作规范总结.docx
├── template/ ← LaTeX 表格与图片模板(格式模仿对象)
│ ├── main.tex # ★ 正文 .tex 模板——新项目 main.tex 的 Preamble / References / Appendix 块均以此为底
│ ├── sum_stat.tex # 描述性统计
│ ├── variables.tex # 变量定义
│ ├── baseline.tex # 基准回归(渐进式加控制 + 渐进式加 FE)
│ ├── addctr.tex # 加入附加控制变量
│ ├── measures.tex # 替换因变量度量
│ ├── specification.tex # 高维交互固定效应
│ ├── iv.tex # 2SLS 工具变量
│ ├── psm_ddml.tex # PSM + DML(Panel A / Panel B)
│ ├── bunching-did.tex # Bunching-DID
│ ├── channel1.tex, channel2.tex, channel3.tex # 机制分析(按渠道分组)
│ ├── heterogeneity1.tex, heterogeneity2.tex, heterogeneity3.tex # 异质性(bdiff)
│ ├── sampling.tex # 样本筛选稳健性
│ ├── further.tex # 进一步分析
│ ├── parallel.pdf # 平行趋势图
│ ├── csdid-figure.pdf # Callaway-Sant'Anna DID 动态效应
│ ├── estimator.pdf # 不同 DID 估计量对比
│ ├── psm-pre-post.pdf # PSM 平衡检验前后
│ └── specurve.pdf # 规格曲线(specification curve)
└── 研究项目输出/ ← 每个实证项目的产出目录(按本 skill 建议结构创建)
└── {项目名}/
├── main.tex # ★ 正文入口(preamble 照抄 template/main.tex),\input{results/xxx.tex}
├── data/{raw,cleaned}/
├── code/ # Python 脚本
└── results/ # 表格 (.tex) 与图像 (.pdf/.png) 统一存放
3. 触发条件与启动流程
3.1 唯一触发条件:研究者提交研究计划书
本 skill 只在研究者提供**研究计划书(Research Proposal)**时触发。计划书以下述任一形式提交均可:
- 一段纯文本描述
.docx / .pdf / .md / .tex 文件路径
- 对话中分点罗列
3.2 计划书应包含的字段(缺项时自动追问,一次补齐)
CONTRACT — 研究计划书最小字段清单
────────────────────────────────────────────────────────
(1) 研究题目 (Title)
(2) X → Y 因果假设 (Hypothesis):主假设 H1 + 最多 2 条子假设
(3) 预期结果 (Expected Findings):X 对 Y 的预期符号与显著性、预期机制
渠道、预期异质性方向(此项至关重要——是后续"备选方案"的触发判据)
(4) 识别策略 (Identification):DID / Staggered DID / Panel FE + IV /
PSM-DID / RDD / 合成控制 / DML 中择一
(5) 样本范围 (Sample):层级(公司-年/城市-年/省-年)、时间窗、排除条款
(6) 政策冲击 (Shock):【DID/RDD 必填】政策名称、公布/实施年份、处理组定义
(7) 数据需求 (Data):关键词清单(数据集 + 政策集)。来源优先级:
asset/ 清单 → asset/MCP.docx 登记的 MCP 服务器(如 CSMAR-MCP)
→ CSMAR / WIND / RESSET / 统计年鉴 / 政府公开 / 手工整理 等外部来源
(8) 机制假说 (Mechanism):预期作用渠道 M1 / M2 / M3
(9) 异质性维度 (Heterogeneity):预期分组维度 + 预期组间差异方向
3.3 启动后 skill 立即执行以下动作
- 解析计划书 → 抽取 CONTRACT 九字段,对缺项统一一次性追问补齐。
- 🆕 推荐 5 个最合适的英文目标期刊(详见 §3.4):基于计划书的研究主题(Topic)、识别策略(Method)、贡献边际(Novelty)与样本范围(Sample / China context)四维度,从中国-context 英文顶刊池(§3.4.1)中按加权得分(§3.4.2)选出 top 5,以
[J1]–[J5] 编号 + 4 维星级评分 + "Why it fits" 一两句话(含本刊近 3 年发表的同主题中国论文示例 1 篇)+ "Editorial preference" + bib style 呈现(输出格式见 §3.4.3)。呈现完毕后停下,显式询问研究者选定哪一本(也允许用户提出列表外的期刊)。在收到选择前不进入第 3 步。
- 固化为
00_proposal.md:写入项目根 {项目名}/00_proposal.md,顶部以 YAML 块追加 target_journal / bibliography_style / writing_preferences 三组字段(见 §3.4.3 末尾示例),作为后续所有判断与 main.tex 渲染的基准文件。
- 生成研究项目骨架:按第 9 节目录结构建立
{项目名}/ 下所有子目录与占位脚本;main.tex 头部按 §3.4.4 表把 \bibliographystyle{} 与 Section 骨架替换为目标期刊的版本(preamble 仍然照抄 template/main.tex 的其他部分)。
- 逐环节推进:严格按第 4 节顺序执行,每一环节完成即与计划书中 (3) 预期结果逐项比对。
3.4 期刊定位(Journal Targeting)— 启动后第二步的依据
3.4.1 候选期刊池(中国 CF 论文常见英文投稿池)
中国数据 CF 论文的现实投稿地图与美国/跨国数据不同——三大综合刊(AER/QJE/JPE)罕见纯中国 CF 选题(除非政策有全球影响如 China Shock 系列);JF/JFE/RFS 近 5 年中国论文产出明显增加,但要求"机制全球可借鉴 + 识别透明";JCF/JBF/PBFJ/CER/EMR/CJAR 等是中国 CF 主流刊。
| Tier | 期刊 | 全名 | 中国-context 偏好特征 | bib style |
|---|
| T1 综合 | AER | American Economic Review | 仅接 China Shock 类全球影响政策;CF 主题罕见 | aer |
| T1 综合 | QJE | Quarterly Journal of Economics | 高门槛自然实验;中国 CF 极罕见 | qje |
| T1 综合 | JPE | Journal of Political Economy | 偏理论结构估计;中国治理/契约偶有 | jpe |
| T1 综合 | REStud | Review of Economic Studies | 结构 + 方法;中国 CF 罕见 | restud |
| T1 金融 | JF | Journal of Finance | 故事完整 + 大样本中国机制创新(split-share、QFII、HK Connect、注册制) | jf |
| T1 金融 | JFE | Journal of Financial Economics | 中国主题最活跃接收刊;识别透明 + 控制变量逐项展示 | jfe |
| T1 金融 | RFS | Review of Financial Studies | 理论嵌入 + 中国独特机制 | rfs |
| T2 金融 | JFQA | Journal of Financial and Quantitative Analysis | 严谨实证;中等贡献中国识别清晰选题 | jfqa |
| T2 金融 | RCFS | Review of Corporate Finance Studies | CF 专门 OA 刊;中国论文比例上升 | rcfs |
| T2 金融 | RAPS | Review of Asset Pricing Studies | A 股资产定价;非纯 CF | raps |
| T2 金融 | JCF | Journal of Corporate Finance | 中国 CF 主流接收刊;中国选题占比高 | elsarticle-num |
| T2 金融 | JBF | Journal of Banking and Finance | 中国银行/信贷主流刊;中国选题接受度高 | elsarticle-num |
| T2 金融 | JFI | Journal of Financial Intermediation | 中国银行 / 信贷 / 中介 | jfi |
| T2 金融 | JFM | Journal of Financial Markets | A 股微观结构 / 流动性 | elsarticle-num |
| T2 金融 | FM | Financial Management | CF 应用导向 | apa |
| T1 会计 | JAR | Journal of Accounting Research | 中国披露 / 分析师 / 审计 / 信息环境 | jar |
| T1 会计 | JAE | Journal of Accounting and Economics | 中国契约 / 高管薪酬 / 经济后果 | jae |
| T1 会计 | TAR | The Accounting Review | 中国数据近年大量接收(治理、披露、审计) | tar |
| T2 会计 | RAST | Review of Accounting Studies | 中国估值 / 披露 / 信息环境 | rast |
| T2 会计 | CAR | Contemporary Accounting Research | 中国数据接受度高;与 TAR 平台相近 | car |
| 管理 | MS | Management Science | 中国数据友好;因果识别 + 跨学科创新 | informs |
| 管理 | SMJ | Strategic Management Journal | 中国治理 / 跨国并购 / 公司战略 | smj |
| 管理 | OS | Organization Science | 中国治理 + 组织 + CF 交叉 | orsc |
| 国际 | JIBS | Journal of International Business Studies | 跨国 / 制度差异 / Chinese MNEs / 跨境 M&A | jibs |
| 公共 | JPubE | Journal of Public Economics | 中国税收 / 监管的 CF 后果(营改增、金税工程) | elsarticle-num |
| 环境 | JEEM | Journal of Environmental Economics and Management | 环保税 / 双碳 / 排污权 × CF | elsarticle-num |
| 中国-friendly | CER | China Economic Review | 中国主题专刊;门槛中等;CF 接收量大 | elsarticle-num |
| 中国-friendly | PBFJ | Pacific-Basin Finance Journal | 亚太/中国 CF 中下游主流刊 | elsarticle-num |
| 中国-friendly | EMR | Emerging Markets Review | 中国/新兴市场 CF;制度差异比较 | elsarticle-num |
| 中国-friendly | CJAR | China Journal of Accounting Research | 中国会计实证主刊(Peking University & Elsevier) | elsarticle-num |
| 中国-friendly | CFRI | China Finance Review International | 中国 CF 应用导向 OA 刊 | apa |
| 中国-friendly | CAFR | China Accounting and Finance Review | 中国 CF / 会计;中文摘要双语 | apa |
| 跨学科 | JBE | Journal of Business Ethics | ESG / 治理 / 文化 × 中国 | apa |
| 国际财务 | JIFMA | Journal of International Financial Markets, Institutions and Money | 跨境 / 制度 / 资本流动 × 中国 | elsarticle-num |
若研究者指名列表外的期刊(如 British Accounting Review、Asia-Pacific Journal of Accounting and Economics、International Review of Economics and Finance、Finance Research Letters、Journal of International Money and Finance 等),照单选定即可,并比照同档期刊套用 bib style 与 Section 骨架。
3.4.2 匹配评分(skill 内部)
对每本候选按 4 维 1–5 打分:
T = topic_fit # CF 主题与期刊偏好对齐
M = method_fit # 识别策略与期刊门槛对齐
N = novelty_fit # 贡献边际能否打动该刊编辑(中国机制能否对国际读者讲得通)
S = sample_fit # 中国样本与期刊地理偏好(China-friendly 加分,纯美国偏好刊扣分)
score = 0.35 T + 0.30 M + 0.25 N + 0.10 S
匹配示例(仅作 skill 内部参考;不输出给研究者):
- "金税三期 × 企业避税与投资" → JFE / JAE / JPubE / TAR / JCF
- "Sci-Tech Innovation Board(科创板)注册制 × IPO 定价效率" → JFE / RFS / JFQA / JCF / PBFJ
- "沪港通 × 公司治理与信息环境" → JF / RFS / JAR / JFE / MS
- "Shanghai-Hong Kong Stock Connect × 分析师覆盖与盈余质量" → JAR / JAE / TAR / CAR / JFE
- "绿色信贷指引 × 重污染企业投资" → JFE / JEEM / JCF / CER / JBF
- "营改增 (B2V) × 企业组织重组" → JPubE / JAE / JFE / JCF / CER
- "QFII 持股 × 公司治理与盈余管理" → JFE / JAR / RFS / MS / JCF
- "数字经济试点 / 宽带中国 × 融资约束" → JFE / MS / JCF / CER / PBFJ
- "土地财政 × 企业投资行为" → JF / JFE / JPubE / MS / CER
- "中国民营/国有差异 × 信贷可得性" → JFE / JCF / JBF / CER / PBFJ
- "审计师法律责任改革 × 审计质量" → JAR / JAE / TAR / CAR / RAST
- "ESG 评级分歧 × 中国企业融资成本" → JFE / RFS / JCF / JBE / CER
3.4.3 推荐输出格式(必须按此格式呈现 5 本)
[J1] JFE — Journal of Financial Economics
Topic ★★★★★ Method ★★★★★ Novelty ★★★★☆ Sample ★★★★★ Score 4.70
Why it fits: {2 句话——对齐研究主题与识别方法;指本刊近 3 年发表的相近中国
主题论文(举 1 篇,作者-年份-标题缩写)}
Editorial preference: 偏好识别透明 + 表格规范严 + 控制变量逐项展示
Bibliography style: jfe
[J2] JCF — Journal of Corporate Finance
...
呈现完 5 本后,必须显式停下并询问(不要自动选定):
请从 [J1]–[J5] 中选定一本作为目标期刊;若不满意,请直接告知任一中国-context 英文 CF 顶刊名(如 JF / TAR / MS / China Economic Review 等)。
您的选择将决定 main.tex 的 \bibliographystyle{}、Section 骨架、Introduction 风格与表注最低长度。
研究者选定后,在 00_proposal.md 顶部追加(示例为 JFE):
---
target_journal: JFE
bibliography_style: jfe
writing_preferences:
identification_emphasis: high
table_format_strict: yes
introduction_style: "5 paragraphs, identification details surface early"
notes_paragraph_length: ">= 6 lines"
section_skeleton:
- Introduction
- Background (China's institutional setting)
- Data
- Empirical Strategy
- Results
- Robustness
- Conclusion
---
3.4.4 不同期刊触发的写作差异
| 期刊 | bib style | Section 骨架 | Intro 风格 | 表注最低 | 中国-context 特别要求 |
|---|
| JF | jf | Intro / Setting / Hypotheses / Data and Methodology / Results / Mechanism / Conclusion | 5–6 段,puzzle 驱动 | ≥ 8 行 | Setting 段须解释中国制度对国际读者;偏好简洁列头 |
| JFE | jfe | Intro / Background / Data / Empirical Strategy / Results / Robustness / Conclusion | 5 段,识别细节早出现 | ≥ 6 行 | Background 段须详述中国政策;表格规范最严;控制变量逐项展示 |
| RFS | rfs | Intro / Theoretical Motivation / Data / Identification / Empirical Findings / Conclusion | 4–5 段,理论 motivation 醒目 | ≥ 6 行 | 偏好理论嵌入;中国机制需有 model micro-foundation;正文 25–30 页 |
| JFQA | jfqa | 类 JFE | 类 JFE | ≥ 5 行 | 中国识别清晰即可;表格规范严 |
| JCF | elsarticle-num | Intro / Background / Data / Methodology / Results / Conclusion | 4–5 段,中国制度背景较多 | ≥ 5 行 | 中国 CF 主流刊;可较窄主题;中国读者也读,制度术语可保留拼音注释 |
| JBF | elsarticle-num | 类 JCF | 4 段 | ≥ 5 行 | 偏好中国银行/信贷/监管主题 |
| JAR | jar | Intro / Hypothesis Development / Sample and Data / Research Design / Results / Conclusion | 6 段,hypothesis 在 §2 独立 | ≥ 6 行 | Hypothesis section 必须独立;预测式 H1/H2/H3;中国制度在 §2 末尾或 §3 开头介绍 |
| JAE | jae | 类 JAR | 6 段 | ≥ 6 行 | 经济后果导向;中国契约/治理选题须有可检验对立预测 |
| TAR | tar | 类 JAR | 类 JAR | ≥ 5 行 | 类 JAR;偏好新 measure;中国数据近年大量接收 |
| CAR | car | 类 JAR | 类 JAR | ≥ 5 行 | 与 TAR 平台相近;中国会计接受度高 |
| RAST | rast | 类 JAR | 5 段 | ≥ 5 行 | 偏好估值 / 信息环境;可中国披露改革 |
| AER | aer | Intro / Background / Data / Empirical Strategy / Results / Mechanism / External Validity / Conclusion | 4 段,影响广泛 | ≥ 5 行 | 必须有外部有效性讨论;中国选题须有全球影响(如 China Shock) |
| QJE / JPE / REStud | qje / jpe / restud | 类 AER(结构更紧凑) | 4 段,puzzle + economic significance | ≥ 5 行 | 跨子学科可读性;中国 CF 须显著方法/概念创新 |
| MS | informs | Intro / Background / Hypotheses / Data and Methods / Results / Discussion / Conclusion | 4–5 段,跨学科 motivation | ≥ 5 行 | 必含 managerial implication;中国数据友好;强调因果识别 |
| SMJ | smj | 类 MS | 4–5 段 | ≥ 5 行 | 中国治理 / 跨国并购 / 战略选择 |
| JIBS | jibs | Intro / Theory and Hypotheses / Methods / Results / Discussion / Conclusion | 5 段,跨国比较视角 | ≥ 5 行 | 必含 international business 贡献;偏好 Chinese MNEs / 制度差异 |
| JPubE / JEEM | elsarticle-num | 类 JFE | 4 段 | ≥ 5 行 | 偏好中国税收/环保政策的 CF 后果 |
| CER | elsarticle-num | Intro / Background / Data / Methodology / Results / Conclusion | 3–4 段,中国制度可较详 | ≥ 4 行 | 中国主题专刊;中国制度术语可较密集;可中国读者视角 |
| PBFJ | elsarticle-num | 类 CER | 3–4 段 | ≥ 4 行 | 亚太/中国 CF;门槛低于 JCF |
| EMR | elsarticle-num | 类 CER | 3–4 段 | ≥ 4 行 | 中国/新兴市场对照;制度差异是 selling point |
| CJAR / CAFR / CFRI | elsarticle-num / apa / apa | 类 JAR / JCF | 3–4 段 | ≥ 4 行 | 中国主流接受度高;可中文摘要双语;制度术语可不解释过细 |
render_main_tex() 在生成 main.tex 时读取 00_proposal.md 的 target_journal / bibliography_style / section_skeleton,自动替换 \bibliographystyle{} 与 Section 命名;同时把目标期刊的 notes_paragraph_length 阈值传入各 render_*_tex() 函数,确保表注长度达到目标刊门槛。
3.A 自适应机制(Plan-B):结果未达预期时的切换逻辑
本 skill 的核心能力——当任一环节的实证结果与 00_proposal.md 中"(3) 预期结果"不符时,skill 不要求研究者干预,自主在以下备选方案树中选择并执行,直到研究项目闭环。
3.A.1 失败判据(每环节完成后立即触发)
| 环节 | 预期结果 | 失败判据(触发 Plan-B) |
|---|
| 平行趋势检验 | 所有 pre 期系数不显著 | 任一 pre 期 |t|>1.96 |
| 基准回归 | X 系数符号与预期一致且 p<0.1 | 符号反向 / 全部不显著 / 系数随控制变量/FE 添加大幅跳动 |
| 稳健 DID 估计量 | CS-DID / Sun-Abraham 结论方向与 TWFE 一致 | 符号反向或 p 值量级完全不匹配 |
| IV 第一阶段 | F 统计量 > 10、IV 显著 | F < 10 或 IV 不显著 |
| IV 第二阶段 | LATE 与 OLS 方向一致、可解释 | 符号反向且数量级异常 |
| 机制分析 | 预期渠道 M1/M2/M3 显著 | 所有渠道不显著 |
| 异质性 | 预期维度组间差异显著 | bdiff p > 0.1 |
| 稳健性 | X 系数符号/显著性在多数列稳定 | 超过 1/3 列翻转 |
| 安慰剂 (仅 DID / Staggered DID / PSM-DID 项目执行;纯 Panel FE+IV / RDD / DML / 合成控制 项目跳过本环节) | 真实系数在虚假分布之外 | 真实系数落在虚假分布的 [5%,95%] 内 |
3.A.2 Plan-B 决策树(按顺序尝试,每步可叠加)
失败环节 → 依次尝试:
【基准回归】系数不显著 / 符号反向
├─ B1. 替换 Y 度量(从 template/measures.tex 思路:Ln(...)、子维度拆分、行业调整)
├─ B2. 替换 X 度量(连续 vs 虚拟 / 强度 vs 0-1)
├─ B3. 替换 FE 规格(加 Industry×Year、Province×Year,高维交互)
├─ B4. 替换聚类层级(firm → city → province×year 双向)
├─ B5. 样本细化(剔除金融业、ST、IPO 当年;仅保留主要政策实施前已上市样本)
├─ B6. 换时间窗(缩短到政策前后 ±5 年)
└─ B7. 若仍不显著 → 考虑反向假设(Y→X 或 U 型/门槛),在 proposal 中注明假设修正
【平行趋势】pre 期显著
├─ B1. 重新定义政策时点(公布年 vs 实施年 vs 试点年)
├─ B2. 用 Sun-Abraham / CS-DID 替代 TWFE
├─ B3. 限制政策前窗口(仅保留 pre_3 到 las_K)
├─ B4. 加入 Group × linear trend 控制差异化趋势
└─ B5. 改为 PSM-DID 缓解选择偏差后重测
【IV 第一阶段弱】F < 10
├─ B1. 尝试 asset/计量方法+政策数据库.md §6.2 "X→IV 配对清单"中相同 X 的备选 IV,或 §12 政策大全中同维度的其他外生冲击(如 Broadband/TechFin/Court)
├─ B2. 构造 Bartik / Shift-Share IV(行业份额×全国冲击)
├─ B3. 用滞后变量 / 同伴平均 (peer mean) 作为 IV
├─ B4. 改为 DML-Partial(弱化 IV 依赖,用 ML 处理高维混淆)
└─ B5. 改用断点/匹配的自然实验替代 IV
【机制不显著】所有 M 均无效应
├─ B1. 换中介变量度量(同一渠道的不同代理)
├─ B2. 换渠道组合(从供给→需求→制度三维替换)
├─ B3. 拆分样本(分组后分别做机制,寻找条件性渠道)
├─ B4. 改用交互项检验(X × M → Y 是否有调节)
└─ B5. 若仍无渠道显著 → 在"进一步分析"中承认黑箱,改做异质性深挖
【异质性不显著】bdiff p > 0.1
├─ B1. 换分组切点(median → tertile/quartile)
├─ B2. 换分组变量(同维度其他代理)
├─ B3. 连续调节变量做交互项(企业级)
├─ B4. 换分组维度(经济→制度→文化→政策四大簇切换)
└─ B5. 保留为"null heterogeneity"——在论文正文中作为结论的边界条件陈述
【稳健性大面积翻转】
├─ B1. 回溯样本构造(检查缺失/极端值/行业代码)
├─ B2. 检查是否遗漏同期政策 → 加入 co-shock dummy
├─ B3. 重算处理组/对照组的定义口径
└─ B4. 若仍不稳健 → 核心结论弱化为"条件性证据",在正文强调边界
【安慰剂失败】真实系数落在虚假分布内
├─ B1. 增加 reps(500 → 1000 → 2000)
├─ B2. 换安慰剂设计(空间 → 时间 → 空间+时间双维度)
├─ B3. 回溯基准 → 基准本身可能有 confounder,返回【基准回归】的 B1-B7
3.A.3 切换时的强制记录
每次触发 Plan-B,必须在 {项目名}/DECISION_LOG.md 追加一条:
## YYYY-MM-DD HH:MM — 环节 {X} Plan-B
- **预期**(引自 proposal 第 3 条):...
- **实测**:系数 = ..., t = ..., p = ...
- **触发判据**:...
- **选择分支**:B{n} — {方案名}
- **后续调整**:...
- **再测结果**:...
3.A.4 终止条件
- 成功:基准回归 + 机制 + 异质性 + 稳健性 全部通过;DID 项目额外要求安慰剂通过(或部分以"边界条件"形式可解释)。非 DID 项目不要求安慰剂
- 降级闭环:Plan-B 深度超过 3 层仍无法收敛时,把研究降级为"零效应识别报告"或"条件性证据报告",产出仍完整:所有 .tex / 图 / 代码照常交付,正文结论段改写为 null-result 叙事
- 永不:放弃项目或向研究者"投降";skill 必须给出一份完整可交付的研究产出
4. 研究逻辑主线(严格按顺序,不可颠倒)
顺序来自 rule/通用实证研究逻辑与规范总结.docx 第 7.2 节。每一步都配有下文的 Python 代码骨架与 template/ 中的 LaTeX 对照模板。
| # | 环节 | 必做? | 对应 Python 产物 | 对应 LaTeX 模板 |
|---|
| 1 | 描述性统计 + 变量定义 + 样本构造 | 必做 | 01_clean.py → sample.tex;02_sumstat.py → sum_stat.tex + variables.tex | template/sum_stat.tex + variables.tex(+ 样本表按 psm_ddml.tex 的 Panel A/B 风格手写) |
| 2 | 平行趋势检验 | DID 必做;其他跳过 | 02_parallel.py → results/parallel.pdf | template/parallel.pdf |
| 3 | 异质性稳健 DID 估计量 | staggered DID 必做 | 03_csdid.py(CS-DID / Sun-Abraham / Stacked) | template/csdid-figure.pdf + estimator.pdf |
| 4 | 基准回归 | 必做(定海神针) | 04_baseline.py → baseline.tex | template/baseline.tex |
| 5 | 内生性检验 | Panel FE 必做;DID 推荐 | 05_iv.py + 05_dml.py | template/iv.tex + psm_ddml.tex Panel B |
| 6 | 因变量分解 / 替换度量 | 推荐 | 06_measures.py | template/measures.tex |
| 7 | 机制分析 | 必做 | 07_channel1.py, 07_channel2.py, 07_channel3.py | template/channel1/2/3.tex |
| 8 | 异质性分析 | 必做 | 08_hetero1.py, 08_hetero2.py, 08_hetero3.py | template/heterogeneity1/2/3.tex |
| 9 | 稳健性检验 | 必做 | 09_addctr.py, 09_spec.py, 09_sampling.py, 09_bunching.py | template/addctr/specification/sampling/bunching-did.tex |
| 10 | PSM-DID | DID 推荐 | 10_psm.py → psm_ddml.tex Panel A | template/psm_ddml.tex + psm-pre-post.pdf |
| 11 | 安慰剂检验 | DID 必做;非 DID 项目跳过 | 11_placebo.py → results/placebo.pdf | 参照 rule 第 5.2 节安慰剂分布图规范 |
| 12 | 进一步分析 / 规格曲线 | 可选 | 12_further.py, 12_specurve.py | template/further.tex + specurve.pdf |
5. Python 代码骨架(全部使用 Python,不使用 Stata)
铁律:本 skill 一律用 Python 实现计量。rule/ 中的 Stata 代码(esttab 等)仅作格式参考,最终 .tex 由 Python 函数按 template/ 的手写表壳格式直接渲染输出。
5.1 依赖与标准导入
import numpy as np
import pandas as pd
import statsmodels.api as sm
from linearmodels.panel import PanelOLS
from linearmodels.iv import IV2SLS
import pyfixest as pf
from doubleml import DoubleMLPLR, DoubleMLPLIV, DoubleMLData
from sklearn.linear_model import LassoCV, RidgeCV
from sklearn.ensemble import RandomForestRegressor
import lightgbm as lgb
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.family'] = 'Times New Roman'
mpl.rcParams['axes.facecolor'] = 'white'
mpl.rcParams['figure.facecolor'] = 'white'
mpl.rcParams['axes.edgecolor'] = 'black'
5.2 固定效应 + 聚类标准误的标准回归
def reg_hdfe(df, y, x, controls, fe, cluster):
"""
y: 因变量名 (str)
x: 核心解释变量名 (str)
controls: 控制变量名列表
fe: 固定效应列表, e.g. ['firm_id','year']
cluster: 聚类层级, e.g. 'firm_id'
返回 pyfixest.Feols 对象
"""
rhs = x + ' + ' + ' + '.join(controls)
fe_str = ' + '.join(fe)
formula = f"{y} ~ {rhs} | {fe_str}"
return pf.feols(formula, data=df, vcov={'CRV1': cluster})
5.3 工具变量 / 2SLS
def iv_2sls(df, y, x_endog, instruments, controls, fe, cluster):
"""
先做 within 变换(去掉 fe),再 IV2SLS,
报告 Kleibergen-Paap rk Wald F。
instruments: IV 列表(每列单独一列 + 合并一列交叉验证)
"""
rhs = ' + '.join(controls)
fe_str = ' + '.join(fe)
iv_str = f"({x_endog} ~ {' + '.join(instruments)})"
formula = f"{y} ~ {rhs} | {fe_str} | {iv_str}"
return pf.feols(formula, data=df, vcov={'CRV1': cluster})
5.4 Double Machine Learning(DML / DML-IV)
def dml_plr(df, y, d, controls, learner='lasso', n_folds=5, n_reps=10):
learners = {
'lasso': LassoCV(cv=5),
'ridge': RidgeCV(),
'rf': RandomForestRegressor(n_estimators=500, max_depth=8, n_jobs=-1),
'lgbm': lgb.LGBMRegressor(n_estimators=500, num_leaves=31),
}
dml_data = DoubleMLData(df, y_col=y, d_cols=d, x_cols=controls)
model = DoubleMLPLR(dml_data,
ml_l=learners[learner],
ml_m=learners[learner],
n_folds=n_folds, n_rep=n_reps)
model.fit()
return model
5.5 Staggered DID:Callaway-Sant'Anna / Sun-Abraham
def csdid_event_study(df, y, cohort, time, controls, cluster):
"""
cohort: 处理开始年份(未处理组为 NaN/Inf)
返回:{e: att, se, ci} 的字典,用于画动态效应图(event_study plot)
"""
...
5.6 PSM / Entropy Balancing
def psm_match(df, treat, covariates, k=4, caliper=0.002):
"""最近邻 1:k 匹配 + caliper。返回带权重的新 DataFrame。"""
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import NearestNeighbors
...
def entropy_balance(df, treat, covariates):
"""使用 ebalance / cvxpy 实现熵平衡重加权。"""
...
5.7 Bootstrap Fisher 置换检验(异质性组间差异)
def bdiff_bootstrap(df, y, x, controls, fe, cluster, group_var, reps=500, seed=42):
"""
对异质性分析的两组(High/Low)做 bootstrap Fisher 置换检验。
rule/ 回归表写作规范总结.docx 第 4.5 节要求 500 reps。
返回:p-value for (b_high - b_low)
"""
rng = np.random.default_rng(seed)
...
6. LaTeX 输出:严格遵循 template/ + rule/
所有 .tex 由 Python 函数手写生成,目标是让输出和 template/ 中对应文件视觉一致:相同的 \toprule / \midrule / \bottomrule、相同的 \sym{} 宏、相同的列头结构(&\multicolumn{1}{c}{(1)}…)、相同的表注 justifying 段。
6.1 铁律(出自 rule/ 两份文档)
- 不用竖线(
|),不在系数区加额外 \hline。三线表:\toprule / \midrule / \bottomrule 各一次。
- 控制变量必须逐一展示系数与 t 值,禁止 "Controls: Yes/No" 省略。
- 变量顺序固定:核心 X → (交互项)→ 控制变量 → Constant(通常省略)。
- 括号内是 t 值(不是标准误),表注首行固定写
t statistics in parentheses(若改为 SE,表注同步改)。
- 显著性符号固定为
*** p<0.01, ** p<0.05, * p<0.1,星号嵌于 \sym{} 宏。
- 数值格式:系数
%.4f,t 值 (%.2f),观测数 %,.0f,R² %.2f。
- 底部固定效应行:
Firm FE / Year FE / City FE / Ind × Year FE …,Yes/No 显式标注。
- 聚类层级匹配:聚类标准误层级必须与核心解释变量变异层级一致,表注中写清楚 "robust t-statistics clustered by the firm/city/..."。
- 表注(noindent + justifying 段)必须写全:样本范围("Chinese A-share listed firms from YYYY to YYYY")、因变量定义、核心 X 定义、控制变量逐一列出、FE 组合、聚类层级、交叉引用
Table \ref{definition}、显著性符号说明。
- 异质性表格必须含
\cmidrule(lr){i-j} 分组列头,并在表尾增加 p-value for Diff. (High-Low) 一行(bootstrap Fisher 置换检验,reps=500)。
6.2 Python 渲染函数(骨架)
def render_baseline_tex(models, labels_cols, var_order, var_labels,
fe_rows, nobs, r2, caption, label, note,
out_path):
"""
按 template/baseline.tex 的结构写出 .tex。
models: 列表,每个元素是 (coef_dict, t_dict);coef_dict 的 key 与 var_order 一致。
fe_rows: [('Firm FE', ['Yes','Yes',...]), ('Year FE', [...]), ...]
"""
lines = [r'\begin{table}[htbp]\centering\scriptsize',
r'\def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}',
rf'\caption{{\textbf{{{caption}}}}}',
rf'\label{{{label}}}',
'',
rf'\noindent{{\justifying{{{note}\par}}}}',
r'\bigskip',
'',
rf'\begin{{tabularx}}{{\textwidth}}{{l{"Y"*len(models)}@{{}}}}',
r'\toprule', '']
header1 = ' ' + ''.join([rf'&\multicolumn{{1}}{{c}}{{({i+1})}}'
for i in range(len(models))]) + r'\\'
lines.append(header1)
if labels_cols:
header2 = ' ' + ''.join([rf'&\multicolumn{{1}}{{c}}{{{c}}}'
for c in labels_cols]) + r'\\'
lines.append(header2)
lines.append(r'\hline\\')
for v in var_order:
vlab = var_labels.get(v, v)
coef_line = f'{vlab:<16}' + ''.join(
[rf'& {fmt_coef(m[0][v], m[2][v]):>17}' for m in models]) + r'\\'
t_line = ' ' * 16 + ''.join(
[rf'& {fmt_t(m[1][v]):>17}' for m in models]) + r'\\'
lines += [coef_line, t_line]
lines.append(r'\hline')
lines.append(f'Obs ' + ''.join([rf'&{n:>10,} ' for n in nobs]) + r'\\')
for name, vals in fe_rows:
lines.append(f'{name:<16}' + ''.join([rf'&{v:>10} ' for v in vals]) + r'\\')
lines.append(f'Adjusted $ R^2$ ' + ''.join([rf'&{r:>10.2f} ' for r in r2]) + r'\\')
lines += [r'\bottomrule', r'\end{tabularx}', r'\end{table}']
with open(out_path, 'w', encoding='utf-8') as f:
f.write('\n'.join(lines))
def fmt_coef(b, stars):
s = {3:r'\sym{***}', 2:r'\sym{**}', 1:r'\sym{*}'}.get(stars, '')
sign = ' ' if b >= 0 else ' '
return f'{sign}{abs(b):>7.4f}{s}'
def fmt_t(t):
return f'({t:>5.2f})'
render_sumstat_tex、render_iv_tex(含 First Stage/Second Stage 分组列头 + \cmidrule)、render_channel_tex(因变量行在第二层列头)、render_heterogeneity_tex(含 p-value for Diff. 行)、render_psm_ddml_tex(Panel A + Panel B 复合表)、render_variables_tex(p{2.0cm}p{13.5cm} 两列定义表)、render_sample_tex(附录用,Panel A + Panel B 两栏式样)按 template/ 中对应文件一一对应实现。
render_sample_tex 结构要求(附录 sample.tex):
- Panel A: Sample Construction —— 三列表:
Filtering Step | # Firm-Year Observations | # Unique Firms
- 示例行:
All CSMAR A-share firm-years (2003-2023) / Drop financial & insurance (CSRC=J) / Drop ST or *ST / Drop IPO year / Drop firm-years with missing controls / Final sample
- 每一步给出剔除数量与剩余数量,最终一行为最终样本量
- Panel B: Sample Distribution —— 两个子表并排或纵向堆叠:
- B1. By Year:year / N / % of total
- B2. By Industry(CSRC 2012 一位代码)或 By Region(东/中/西 或 省份):group / N / %
- 格式:沿用
template/psm_ddml.tex 的 Panel A / Panel B 两 tabularx 并列写法;三线表;列头居中;样本量 %,.0f 格式
- 表注(
\noindent{\justifying{...}}):说明样本起止年、排除条款、缩尾分位;给出 CSRC 2012 行业代码口径、东中西划分依据
6.3 图像绘制(matplotlib)
遵循 rule/回归表写作规范总结.docx 第五部分图像规范:白底、黑框、Times New Roman、.pdf + .png 双份输出。
- 事件研究图:
errorbar(rcap 样式) + axhline(0) + axvline(基准期, linestyle='--')
- 规格曲线:系数值排序散点 + 下方变量勾选矩阵
- 安慰剂分布:
hist + kde,真实系数 axvline(color='red')
- 森林图:横向
errorbar,按"经济/制度/文化/政策"分组,每组一个 subplot
- PSM 平衡:匹配前/后 |% bias| 散点或条形图
- Binscatter:
seaborn.regplot 或手写残差化后分 bin,散点 navy,拟合线 maroon
7. 数据来源与检索流程(asset/ 优先,但不限于 asset/)
7.1 数据来源优先级
数据来源不限于 asset/ 中的两份清单——asset/ 只是优先考虑的入口。实际研究中,研究者可(且应)按下述优先级补充其他来源:
- asset/计量方法+政策数据库.md(50 页精简版) + 两份 CSV 清单(马克数据网 + 皮皮慢数据)—— 最优先;md 提供"方法 × 政策 × 数据"三维交叉速查,CSV 提供数据集名匹配
1.5. asset/全网首发计量方法+政策数据库.pdf —— 仅当 md 精简版不足时打开(975 页完整版,按 md §14 索引定位到 PDF 页码)
- asset/MCP.docx 中登记的 MCP 服务器(如 CSMAR-MCP:https://lobehub.com/zh/mcp/yourusername-csmar-mcp-server)—— 次优先。MCP 服务器可通过 Claude Code 直接拉取数据,免手工下载
- 商业数据库:CSMAR(国泰安)、WIND、RESSET、CNRDS、BvD Osiris、Thomson Reuters
- 官方统计:国家统计局 / 人民银行 / 银保监会 / 证监会 / 海关总署 / 各级地方统计局年鉴
- 政府信息公开:生态环境部数据中心、国务院发展研究中心、各部委公报、裁判文书网
- 学术镜像:北京大学开放研究数据平台、CEIC、WGI、CGSS / CFPS / CHIP 微观调查
- 自建/手工整理:政策文本分词、公告解析、企业年报文本、专利申请文本、社交媒体
- 第三方开源:JoinQuant / Tushare / AkShare / BaoStock 等爬虫接口
- 境外对照:Compustat / CRSP(同行业国际对照),Worldscope(境外子公司)
MCP 服务器使用说明:asset/MCP.docx 登记的每个 MCP 服务器附有 lobehub 页面 URL,按页面中的安装指引(通常是 npx / uvx 命令配置到 ~/.claude.json 或 settings.json 的 mcpServers 字段)完成安装;安装后通过 mcp__<server-name>__<tool> 前缀工具调用。安装步骤由研究者或 skill 借助 update-config skill 辅助完成。
7.2 检索流程(优先→兜底)
- 研究者先给数据关键词(如"地级市数字经济""股权质押""绿色专利""环保税""金税工程""沪港通""注册制""营改增"…)或政策名。
- 第一轮:查 asset/ 清单。
- 方法 / 政策 / 数据三维检索:先用 Read / Grep 在
asset/计量方法+政策数据库.md(50 页精简版,首选入口)中按"方法(§2–§11)/ 政策(§12)/ 数据(§13)"三个维度交叉定位;
- 数据集名查询:用 pandas 在
asset/macrodatas_list.csv、asset/ppmandata_trade_list.csv 中搜索 title / keyword / data_intro / data_indicators 列,返回 top 5 候选;
- PDF 兜底:仅当 md 中的精简描述不足以判断时,才打开
asset/全网首发计量方法+政策数据库.pdf 查阅原始 800+ 实证研究的完整页(按 md 第 14 章索引定位到具体 PDF 页码)。
- 第二轮:查 asset/MCP.docx。若 asset/ 清单无匹配,查看
asset/MCP.docx 中登记的 MCP 服务器能否覆盖该变量(如 CSMAR-MCP 覆盖上市公司基本面 + 治理变量)。确认后按 docx 中的 URL 指引完成 MCP 安装,调用 MCP 工具取数。
- 第三轮:外部补充。清单与 MCP 均不覆盖时,提示研究者从 7.1 第 3–9 项其他来源补充。建议清单格式给研究者勾选:
- "需要我搜索 CSMAR 是否有此变量吗?"
- "这个政策可能需要手工整理政策文本 + LLM 抽取关键字段,是否继续?"
- "若 asset/ 与 MCP 都没有该城市面板,可用统计年鉴逐年拼接,请研究者下载后放入
data/raw/。"
- 第四轮:仍无法获取时,进入 Plan-B(§3.A):
- 替换因变量/自变量度量为 asset/ 或 MCP 已覆盖的近似代理
- 降级研究范围(如公司级 → 行业级、全国 → 长三角/珠三角)
- 或改用合成 / 二手数据拼接方案
7.3 数据来源透明化(强制)
无论数据来自 asset/、MCP 服务器还是外部来源,在 sample.tex 与论文 Data 小节必须标注每个变量的原始出处(数据库名 + 访问年份 + 是否手工整理):
- asset/ 清单:写明具体数据集条目 id(如
macrodatas_list.csv 第 1776761040 行)
- MCP:写明服务器名与调用工具(如
CSMAR-MCP / mcp__csmar__get_financials)与访问日期
- 商业库/外部:写明数据库全称 + 字段表名 + 下载日期
def search_asset(keyword, top=5):
"""三维检索:先扫精简 md,再扫两份 CSV。md hits 用于方法 / 政策 / 数据三维定位;
CSV hits 用于具体数据集名匹配。"""
md_path = 'asset/计量方法+政策数据库.md'
md_lines = open(md_path, encoding='utf-8').read().splitlines()
md_hits = [(i + 1, ln) for i, ln in enumerate(md_lines) if keyword in ln][:top]
if md_hits:
print(f"[md] 在 {md_path} 命中 {len(md_hits)} 行(行号+片段):")
for ln_no, ln in md_hits:
print(f" L{ln_no}: {ln.strip()[:120]}")
cols = ['title','data_source','keyword','data_intro','data_indicators','article_url']
csv_results = []
for csv in ['asset/macrodatas_list.csv','asset/ppmandata_trade_list.csv']:
df = pd.read_csv(csv, usecols=cols, encoding='utf-8', errors='ignore')
hit = df[df.apply(lambda r: keyword in str(r.to_dict()), axis=1)]
csv_results.append(hit.head(top))
out = pd.concat(csv_results)
if len(out) == 0 and not md_hits:
print(f"[!] asset/ 无匹配 '{keyword}'。建议来源:CSMAR / WIND / 统计年鉴 / 手工整理。")
return out
8. 中国公司金融研究的常见坑(必检)
| 陷阱 | 做法 |
|---|
| 样本未剔除金融业(证监会行业代码 J) | 默认剔除 |
| 未剔除 ST / *ST / IPO 当年 | 默认剔除 |
| 控制变量极端值 | 连续变量 1% / 99% 缩尾(winsor),在表注中说明 |
| 行业分类口径 | 优先 CSRC 2012(制造业 2 位代码),在稳健性中替换 SIC |
| 省/市合并问题 | 2011 前巢湖、2020 后区划调整等,需统一合并 |
| 聚类层级 | 基本单位聚类(firm/city),稳健性中替换 province × year 双向聚类 |
| staggered DID | 必配 CS-DID 或 Sun-Abraham 交叉验证,避免 TWFE 负权重 |
| 政策公布 vs 实施 | 区分"公布年""实施年",在稳健性中替换 |
| 同期政策混淆 | 检索 asset/计量方法+政策数据库.md 第 §12 节"中国政策大全"按主题域排查同期政策;在基准回归中加入同期政策的 dummy 控制 |
9. 输出项目目录(运行 skill 时自动建议)
在 CONTRACT 九字段确认后,自动生成如下骨架(所有 Python 脚本预埋 template/ 对照的 render_*_tex 调用):
{项目名}/
├── 00_proposal.md # 计划书固化版(**顶部 YAML:target_journal / bibliography_style / writing_preferences**;下接 CONTRACT 九字段)
├── DECISION_LOG.md # Plan-B 切换记录(3.A.3)
├── data/raw/ # 研究者放入原始数据
├── data/cleaned/sample.parquet # 清洗后样本
├── code/
│ ├── 00_config.py # 全局变量(样本年份、控制变量列表、FE 配置)
│ ├── 01_clean.py # → results/sample.tex(样本构造 Panel A + 样本分布 Panel B)
│ ├── 02_sumstat.py # → results/sum_stat.tex + results/variables.tex
│ ├── 03_parallel.py # → results/parallel.pdf [DID 专用]
│ ├── 04_baseline.py # → results/baseline.tex
│ ├── 05_iv.py # → results/iv.tex
│ ├── 05b_dml.py # → results/psm_ddml.tex Panel B
│ ├── 06_measures.py # → results/measures.tex
│ ├── 07_channel.py # → results/channel{1,2,3}.tex
│ ├── 08_hetero.py # → results/heterogeneity{1,2,3}.tex
│ ├── 09_robust.py # → results/{addctr,specification,sampling,bunching-did}.tex
│ ├── 10_psm.py # → results/psm_ddml.tex Panel A + results/psm-pre-post.pdf
│ ├── 11_placebo.py # → results/placebo.pdf [DID 专用,非 DID 项目不生成此脚本]
│ └── 12_further.py # → results/further.tex (+ results/specurve.pdf)
├── results/ # 最终交付物:.tex 表格 + .pdf/.png 图像 全部放此处
└── main.tex # 正文入口,preamble 照抄 template/main.tex;\input{results/xxx.tex}
main.tex 生成规则:
创建项目时从 template/main.tex 照抄三类块到 {项目名}/main.tex:
- Preamble:documentclass / usepackage / 自定义宏 / 页面设置 /
\def\sym{...}
- References 块:参考文献样式(
\bibliographystyle{...} + \bibliography{...} 或 thebibliography 环境)。\bibliographystyle{} 不照抄 template,而是按 00_proposal.md YAML 中的 bibliography_style 填入(如 JFE → \bibliographystyle{jfe}、JCF → \bibliographystyle{elsarticle-num}、CER → \bibliographystyle{elsarticle-num}、JAR → \bibliographystyle{jar},详见 §3.4.4)。
- Appendix 块:
\appendix 起始指令、附录标题样式、附录表/图的编号重置 \setcounter{table}{0}\renewcommand{\thetable}{A\arabic{table}} 等
此外,Section 骨架(\section{...} 命名与顺序)按 00_proposal.md YAML 中的 section_skeleton 字段渲染(不同期刊骨架不同,见 §3.4.4),不再机械照抄下文的"Introduction / Literature Review / Research Design / Empirical Results / Conclusion"五段式。
main.tex 整体结构(严格按此顺序):
<Preamble> % 来自 template/main.tex
\begin{document}
\maketitle
\begin{abstract}\end{abstract} % 摘要 body 留空
% ★ 以下 \section / \subsection 顺序与命名按 §3.4.4 的 section_skeleton 替换;
% 每个 \section / \subsection 下 body 一律留空(不写 prose)。
% 这是默认 JFE-style 骨架,其他期刊(JAR / JF / MS / CER…)按 §3.4.4 替换。
\section{Introduction}
\section{Background and Hypothesis Development}
\subsection{China's Institutional Setting}
\subsection{Hypothesis Development}
\section{Data and Sample}
\subsection{Sample Construction}
\subsection{Variable Definitions}
\subsection{Summary Statistics}
\section{Empirical Strategy}
\subsection{Baseline Specification}
\subsection{Identification Strategy} % 含 IV / DID / RDD / DML 等
\section{Empirical Results}
\subsection{Baseline Results}
\subsection{Parallel Trends and Dynamic Effects} % ★ 仅 DID 项目保留;非 DID 删除
\subsection{Endogeneity Concerns} % IV / DML / Heckman
\subsection{Mechanism Analysis}
\subsection{Heterogeneity Analysis}
\subsection{Further Analysis}
\section{Robustness Checks} % 正文只点题;完整稳健性表放附录
\subsection{Alternative Measures}
\subsection{Alternative Specifications}
\subsection{Subsample Analyses}
\subsection{Placebo Tests} % ★ 仅 DID 项目保留;非 DID 删除
\section{Conclusion}
%—— References(照抄 template/main.tex 的参考文献块格式)——
\bibliographystyle{...}
\bibliography{references}
%================================================================
% 正文图(Main-text Figures:图在前)
%================================================================
\clearpage
\begin{figure}[htbp]\centering
\includegraphics[width=0.9\textwidth]{results/parallel.pdf}
\caption{Parallel Trends}\label{fig:parallel}
\end{figure}
% 正文图依次(★ 仅 DID 项目):parallel / csdid-figure / estimator / placebo
% 非 DID 项目:本节不出现 parallel / csdid-figure / estimator / placebo,仅保留 §4 主线第 12 步可选图
%================================================================
% 正文表(Main-text Tables:表在后;内生性紧跟 baseline)
%================================================================
\clearpage
\input{results/sum_stat.tex} % 描述性统计
\input{results/baseline.tex} % 基准回归(定海神针)
\input{results/iv.tex} % ★ 内生性 —— 紧跟 baseline
\input{results/heterogeneity1.tex} % 异质性 1(异质性 先于 机制)
\input{results/heterogeneity2.tex} % 异质性 2
\input{results/heterogeneity3.tex} % 异质性 3
\input{results/channel1.tex} % 机制 1
\input{results/channel2.tex} % 机制 2
\input{results/channel3.tex} % 机制 3
\input{results/further.tex} % 进一步分析
%================================================================
% Appendix(附录;稳健性表格 + 附加图;格式照抄 template/main.tex)
%================================================================
\appendix
\section{Robustness Checks}
%—— 附录图 ——
\begin{figure}[htbp]\centering
\includegraphics[width=0.9\textwidth]{results/psm-pre-post.pdf}
\caption{PSM Balance: Pre vs. Post}\label{fig:psm-balance}
\end{figure}
\begin{figure}[htbp]\centering
\includegraphics[width=0.9\textwidth]{results/specurve.pdf}
\caption{Specification Curve}\label{fig:specurve}
\end{figure}
%—— 附录表(变量定义 + 样本构造 + 稳健性)——
\input{results/variables.tex} % ★ 变量定义表(附录首张)
\input{results/sample.tex} % ★ 样本构造与分布(Panel A 构造 / Panel B 分布)
\input{results/measures.tex} % 替换因变量度量
\input{results/addctr.tex} % 附加控制变量
\input{results/specification.tex} % 高维交互 FE
\input{results/sampling.tex} % 样本筛选稳健性
\input{results/bunching-did.tex} % Bunching-DID 稳健
\input{results/psm_ddml.tex} % PSM + DML(Panel A / Panel B)
\end{document}
强制规则:
- 正文章节(Introduction ~ Conclusion)不嵌入实物表图,只用
\ref{tab:baseline} / \ref{fig:parallel} 引用。
- References 之后依次放:正文 Figures → 正文 Tables → Appendix。
- 正文 Figures 在前,正文 Tables 在后(顺序不可颠倒)。
- 正文表排列顺序(固定):
sum_stat → baseline → iv(内生性)
→ heterogeneity1/2/3 → channel1/2/3 → further
内生性表(iv.tex)紧跟在 baseline.tex 之后;如有多张内生性表(如额外的 IV / 自然实验),也放在 baseline 与 heterogeneity 之间连续排列。异质性在机制之前。
- 附录表排列顺序(固定):
variables(变量定义) → sample(样本构造与分布)
→ measures → addctr → specification → sampling → bunching-did → psm_ddml
附录首张为 variables.tex(变量定义),紧随其后为 sample.tex(样本构造 Panel A + 样本分布 Panel B),然后是全部稳健性检验表。
- 附录图(如
psm-pre-post.pdf、specurve.pdf)与附录表一同放在 \appendix 之后;正文图只保留 parallel / csdid-figure / estimator / placebo 这类支撑主结论的图(这四张图仅 DID 项目出现,非 DID 项目正文区不放图)。
- 附录编号格式(Table A1 / Figure A1)由
template/main.tex 附录块中定义的 \setcounter + \renewcommand{\thetable}{A\arabic{table}} 等宏控制,严格照抄不自行发明。
- References 块格式同样严格照抄
template/main.tex。
- 不建
paper/ 子目录;所有 \input / \includegraphics 路径以 results/xxx 开头(相对于 main.tex 所在目录)。
- 正文 body 一律留空:
main.tex 正文章节区只填写 \section{...} 与 \subsection{...} 标题(按 §3.4.4 section_skeleton 调整命名),每个 \section / \subsection 之下不写任何 prose——正文 prose 由研究者后续撰写。\begin{abstract}\end{abstract} 同样留空。
- 不为任何章节单独建 .tex 文件:所有
\section / \subsection 标题直接写在 main.tex 内,禁止创建 introduction.tex / data.tex / results.tex / conclusion.tex 等"章节体"分文件。\input{} 只用于 results/*.tex(表格)。
- 安慰剂相关章节 / 图 / 表条件性出现:
\subsection{Placebo Tests}、results/placebo.pdf、\subsection{Parallel Trends and Dynamic Effects}、results/parallel.pdf / csdid-figure.pdf / estimator.pdf 这五项仅 DID / Staggered DID / PSM-DID 项目出现;纯 Panel FE+IV / RDD / DML / 合成控制项目从 main.tex 中删除上述章节/图引用。
最终交付物(仅两类):
- Python 代码:
code/ 目录下全部 .py 脚本,可从原始数据一键跑通到所有表图。
- 图表:
results/ 下的 .tex(LaTeX 表格,符合 template/ 格式)+ .pdf 与 .png(双份导出的图像)。表格与图像统一放入 results/,不再单独建 figures/ 目录。
另外附带 {项目名}/main.tex(preamble 照抄 template/main.tex,正文依次 \input{results/xxx.tex} 并 \includegraphics{results/xxx.pdf}),与 code/ 并列放在项目根,不嵌入 paper/ 子目录。
不交付 Word / Markdown 报告;不交付 Stata .do 文件;不交付中间数据集。
10. AI 在本 skill 下的行为准则
- 计划书驱动:无 proposal 不启动;proposal 即契约。执行中遇到任何判断岔路,先回查
00_proposal.md。
1.5. 🆕 启动后第二步是目标期刊推荐(§3.4),不可跳过、不可代选:CONTRACT 九字段补齐后,必须按 §3.4.3 输出格式呈现 [J1]–[J5] 5 本英文目标期刊(含 4 维星级 + Why it fits + Editorial preference + bib style),显式停下询问研究者;在收到选择前不进入项目骨架生成。研究者选定后立即将 target_journal / bibliography_style / writing_preferences YAML 块写入 00_proposal.md 顶部,后续 render_main_tex() 与各 render_*_tex() 均以此为准。
- 自主闭环,不卡壳:结果不达预期时,按第 3.A 节 Plan-B 决策树自行切换并继续执行,不停下等研究者拍板。切换即记录
DECISION_LOG.md。
- 小步快跑:一次只完成研究链条中的一个环节;完成后展示 .tex 摘要(前 10 行 + 后 10 行)与 proposal 预期的对比(✅/⚠️/❌),再进入下一环节。
- 格式一致性检查:每次写 .tex 前,先 Read 对应
template/*.tex,比对列数、列头、FE 行、Notes 段,再渲染。
- 不擅自改规则:
rule/ 中的规则是强制的;若研究者要求偏离,需要研究者明确书面说明(例如"审稿人要求改报告标准误")。
- 不跑 Stata:所有回归、PSM、DML、CS-DID、bdiff 均用 Python 实现。
rule/ 中的 Stata 代码只作为"输出格式参照"。
- 保护工作目录:
asset/ rule/ template/ 三个文件夹只读,不写入、不修改、不重命名。所有研究输出只放入 {项目名}/ 子目录。
- 生成表后自检:逐项核对
rule/回归表写作规范总结.docx 第九部分的"AI 写作检查清单"(三线表、控制变量全展示、t 值括号、\sym{} 星号、FE 行、聚类层级、表注完整)。
- 只交付代码与图表:最终产物限定为
code/*.py + results/*.tex + results/*.pdf|png(表与图同在 results/);不产出额外报告、摘要、PPT、Word。
- 中英文规范:变量名、表题、列头、FE 行用英文;表注(
\noindent{\justifying{...}})用英文;中英混排中英之间空一格、中文标点用全角。
- 🆕 安慰剂仅 DID 时做:当
00_proposal.md 第 (4) 条识别策略为 DID / Staggered DID / PSM-DID 时执行 §4 第 11 步安慰剂检验(11_placebo.py + results/placebo.pdf + \subsection{Placebo Tests} + 正文 placebo 图引用);当识别策略为 Panel FE+IV / RDD / DML / 合成控制 时整体跳过安慰剂——code/ 不生成 11_placebo.py,results/ 不出现 placebo.pdf,main.tex 中不出现 \subsection{Placebo Tests} 与对应 figure 块。平行趋势 / CS-DID / estimator 三图同样仅 DID 项目出现。
- 🆕 main.tex 正文只写标题,body 留空:
\section{...} 与 \subsection{...} 命名按目标期刊 section_skeleton 填齐,下面不写任何 prose(一行空行即可);\begin{abstract}\end{abstract} 也留空。研究者后续自行撰写正文。skill 完成后展示 main.tex 行数应与 §9 模板示例相当(章节标题层级 + \input{results/*} + figure 块,无段落 prose)。
- 🆕 不为章节单独建 .tex 文件:禁止生成
introduction.tex / background.tex / data.tex / methodology.tex / results.tex / conclusion.tex 之类的 section-body 分文件。所有正文 Section / Subsection 标题直接写在 main.tex 内;\input{...} 仅用于 results/*.tex(表格)。
11. 启动示例
最小计划书(文本形式)
研究计划书
题目:数字经济与企业融资约束
假设:城市数字经济发展 (X = DigiEcon) 降低本地企业融资约束 (Y = SA/KZ index)
预期:X 对 Y 的系数显著为负(p<0.05),渠道为"信息不对称下降 + 信贷可得性上升",
异质性上非国企、中小企业效应更强
识别:Panel FE + IV(IV: 光缆端口历史存量 × 时间 / Broadband China 试点)
样本:A 股非金融上市公司,2011–2023
数据:优先在 asset/ 检索"数字经济指数""宽带中国""融资约束";asset/ 未覆盖的(如
SA/KZ 指数、公司基本面)先看 asset/MCP.docx 的 CSMAR-MCP 能否直取;
仍未覆盖的(如光缆端口历史存量)从统计年鉴 / 手工整理补充
机制:M1 = 信息不对称(分析师关注/盈余同步性);M2 = 信贷可得(新增长贷/短贷比)
异质性:产权性质(SOE/非 SOE);规模(大/中/小);地区(东/中/西)
提交后 skill 立即:
- 解析 CONTRACT 九字段;若有缺项,一次性追问补齐
- 🆕 推荐 5 个最合适的英文目标期刊(如本例宽带中国 IV → JFE / MS / JCF / RFS / China Economic Review),按 §3.4.3 格式呈现 [J1]–[J5](含 4 维星级 + Why it fits + bib style),停下询问研究者
- 研究者选定(例如 JFE)→ 生成
数字经济_融资约束/00_proposal.md(CONTRACT 九字段 + 顶部 target_journal: JFE YAML 块)
- 按 §3.4.4 把目标期刊的
\bibliographystyle{jfe} 与 Section 骨架写入 {项目名}/main.tex
- 搜索 asset/ 返回候选数据集,等研究者选定
- 按第 4 节主线执行;若基准 X 系数方向反向,自动进入 3.A.2【基准回归】Plan-B B1→B7
- 最终交付:
code/ 全套 Python + results/*.tex 全套表 + results/*.pdf|png 全套图(表与图同在 results/)+ DECISION_LOG.md 追溯记录