经济学实证研究的AI Stata skill:操作指南

经济学实证研究的AI Stata skill:操作指南p span span span style font size 20px span 经济学实证研究的 AI Stata skill 操作指南 span span span span p

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



 

经济学实证研究的AI Stata skill:操作指南

本文主要针对Stata skill,给出一些相关资源,并且给出创建AI Stata skill的一些技巧以及模板。

关于AI Stata skill,可以参考Pedro H. C. Sant’Anna ClaudeCode工作流

  • https://psantanna.com/claude-code-my-workflow/
  • https://psantanna.com/claude-code-my-workflow/workflow-guide.html
  • https://github.com/pedrohcgs/claude-code-my-workflow

另外,Claude Code 对应Stata Skill 可以在如下市场网址进行检索

  • Skills Marketplace :https://skillsmp.com/
  • 官方 Skill 仓库 :https://github.com/anthropics/skills
  • Skills 市场(含 58925 个 Skills) :https://skillsmp.com/zh
  • 扣子商店(含 6 万 9 千多个 Skills) :https://skillsmp.com
  • 精选合集 awesome-claude-skills :https://github.com/ComposioHQ/awesome-claude-skills
  • Claude 中文社区 :https://claudecn.com/

另外计量云课堂一文里面也推荐了如何在Claude Code中创建Stata新技能,

AI Stata Skill 创建指南Stata-package:描述Deion安装 / Installationssc install Stata-package

* 或

net install Stata-package, from("https://...")

概述 / Overview

简要描述该软件包的功能及其适用场景。并说明它与内置替代方案的不同之处。

基本用法 / Basic Usage* Example

help cie

关键选项 / Key Options

选项

描述

option1

该选项的作用

option2

该选项的作用

常见工作流程 / Common Workflows

展示 2-3 个实际用例,并附上完整的代码示例。

注意事项

  • 列出常见错误、版本差异等
  • 说明该软件安装包对其他软件包的依赖关系
参见 / AlsoSee
  • 相关的内置命令
  • 相关的社区软件包
指南 / Guidelines
  • 保持实用性。专注于语法、选项和可运行的示例。跳过任何大型语言模型(LLM)已知的通用理论。
  • 包含注意事项。非直观的行为是您可以记录的最有价值的内容。
  • 每个文件对应一个软件包。不要将多个软件包合并到一个文件中。
  • 测试您的示例。确保代码块确实能在 Stata 中运行。
  • 为任何超过 100 行的文件添加目录 目录。在 H1 标题后添加一个章节,其中包含指向每个 H2 章节的 Markdown 链接。
  • 不要包含个人信息。不要在示例中包含特定电脑的路径、名称或凭证。请使用像 "$data/myfile.dta"这样的通用路径。
模板

下面给出VS-Code中创建psm.md的结果

# psmatch2: 倾向得分匹配

安装 / Installation

stata

ssc install psmatch2

* 或

findit psmatch2

概述 / Overview

`psmatch2` 是 Edwin Leuven 和 Barbara Sianesi 开发的 Stata 包,用于倾向得分匹配(Propensity Score Matching, PSM)。它通过匹配处理组和对照组在倾向得分或协变量距离上的相似性来估计平均处理效应。

与内置命令 `teffects psmatch` 相比的优势:

- 多种匹配算法(最近邻、核匹配、局部线性回归、半径匹配)

- 马氏距离匹配选项

- 可同时处理多个结果变量

- 详细的匹配诊断(通过创建的变量提供个体匹配信息)

- 灵活的共同支持控制

语法 / Syntax

stata

psmatch2 depvar [indepvars] [ifexp] [inrange] [, outcome(varlist)

pscore(varname) neighbor(integer) radius caliper(real)

mahalanobis(varlist) ai(integer) population altvariance

kernel llr kerneltype(type) bwidth(real) spline

nknots(integer) common trim(real) noreplacement

descending odds index logit ties quietly w(matrix) ate]

关键选项 / Key Options

| 选项 | 描述 |

|------|------|

| `depvar` | 处理变量(0=对照组,1=处理组) |

| `indepvars` | 协变量,用于估计倾向得分 |

| `outcome(varlist)` | 结果变量 |

| `logit` | 使用 logit 模型拟合(默认是 probit) |

| `neighbor(#)` | 指定最近邻匹配的邻居数,如 `neighbor(1)` 为 1:1 匹配 |

| `radius` | 半径匹配 |

| `kernel` | 核匹配 |

| `llr` | 局部线性回归匹配 |

| `spline` | 样条匹配 |

| `mahalanobis(varlist)` | 马氏距离匹配 |

| `caliper(real)` | 卡尺(最大倾向得分距离) |

| `common` | 限制在共同支持区域 |

| `ate` | 同时估计 ATE(平均处理效应) |

psmatch2 创建的变量

匹配后,psmatch2 自动生成以下变量:

- `_pscore`:每个观测值的倾向得分

- `_id`:自动生成的每个观测对象的唯一 ID

- `_treated`:指示某个对象是否为处理组

- `_n1`:匹配到的对照对象的 `_id`(如果是 1:3 匹配,还会生成 `_n2`、`_n3`)

- `_pdif`:一组匹配的观察对象倾向得分的差

- `_weight`:对照单元被用作匹配的次数

- `_support`:是否在共同支持区域内

常见工作流程 / Common Workflows

示例 1:LaLonde (1986) 数据应用

这是国家支持工作示范(NSW)处理组数据的子样本和当前人口调查(CPS)的比较样本。

stata

* 1. 加载数据并查看结构

use "ldw_exper.dta", clear

describe

* 2. 描述性分析

tabstat age edu black hisp married re74 re75 u74 u75, statistics(mean) by(t)

* 3. 使用 psmatch2 进行倾向得分匹配

psmatch2 t age edu black hisp married re74 re75 u74 u75,

out(re78) neighbor(1) ate ties logit common

* 4. 查看匹配后数据

list _id _treated _n1 _pscore _pdif _weight in1/20

* 5. 均衡性检验

localv2 "age edu black hisp married re74 re75 u74 u75"

* 6. 共同取值范围图示

psgraph

* 7. 核密度函数图 - 匹配前

twoway (kdensity _pscore if_treat==1, legend(label(1 "Treat")))

(kdensity _pscore if_treat==0, legend(label(2 "Control"))),

xtitle(Pscore) title("Before Matching")

* 8. 核密度函数图 - 匹配后

twoway (kdensity _pscore if_treat==1, legend(label(1 "Treat")))

(kdensity _pscore if_weight!=1 & _weight!=., legend(label(2 "Control"))),

xtitle(Pscore) title("After Matching")

示例 2:多种匹配方法对比

stata

localv1 "t"

localv2 "age edu black hisp married re74 re75 u74 u75"

global x "`v1' `v2'"

* 最近邻匹配,k=1

psmatch2 $x, out(re78) neighbor(1) ate ties logit common

display "1:1 匹配 ATT = "r(att)

* 最近邻匹配,k=4

psmatch2 $x, out(re78) neighbor(4) ate ties logit common

display "1:4 匹配 ATT = "r(att)

* 半径匹配

psmatch2 $x, out(re78) radius caliper(0.01) ate ties logit common

display "半径匹配 ATT = "r(att)

* 核匹配(默认核函数和带宽)

psmatch2 $x, out(re78) kernel ate ties logit common quietly

display "核匹配 ATT = "r(att)

示例 3:使用 teffects 对比

stata

* psmatch2 方法

psmatch2 t age edu black hisp married re74 re75 u74 u75,

out(re78) neighbor(1) ate ties logit common

* teffects psmatch 方法

teffects psmatch (re78) (t age edu black hisp married re74 re75 u74 u75, logit),

atet nneighbor(1)

完整分析模板

stata

*-------------------------------------------------------------------------------

* 倾向匹配得分完整分析模板

*-------------------------------------------------------------------------------

* 1. 外部命令配置

ssc install psmatch2, replace

whichpsmatch2

* 2. 加载范例数据

use "ldw_exper.dta", clear

describe

* 3. 描述性分析

tabulate t, summarize(re78) means standard

* 4. 设定宏变量

localv1 "t"

localv2 "age edu black hisp married re74 re75 u74 u75"

global x "`v1' `v2'"

* 5. 倾向匹配得分 - 1:1 匹配

psmatch2 $x, out(re78) neighbor(1) ate ties logit common

* 6. 均衡性检验

* 7. 共同取值范围

psgraph

* 8. 最近邻匹配,k=4

psmatch2 $x, out(re78) neighbor(4) ate ties logit common

* 9. 计算倾向得分

sum _pscore

* 10. 半径匹配

psmatch2 $x, out(re78) neighbor(4) caliper(0.01) ate ties logit common

* 11. 核匹配,使用默认的核函数和带宽

psmatch2 $x, out(re78) kernel ate ties logit common quietly

*-------------------------------------------------------------------------------

注意事项

- 匹配方法选择:

- 最近邻匹配(Neighbor):最常用,`neighbor(1)` 为 1:1 匹配

- 半径匹配(Radius):匹配所有在卡尺内的对照

- 核匹配(Kernel):使用加权平均,效率更高

- 局部线性回归匹配(LLR):边界性质更好

- 模型选择:

- 默认使用 probit 模型

- 使用 `logit` 选项指定 logit 模型

- 均衡性检验:

- `pstest` 主要对连续变量有效

- 对分类变量建议使用 χ² 检验或秩和检验

- 匹配后标准化偏差应 < 5%

- 卡尺选择:

- 常见经验法则:卡尺 = 0.25 × 倾向得分标准差

- 可通过敏感性分析测试不同卡尺值

参见 / Also See

- 相关内置命令:`teffects psmatch`

- 相关社区软件包:

- `pscore`:倾向得分估计

- `nnmatch`:最近邻匹配

- `cem`:广义精确匹配(Coarsened Exact Matching)

- `rbounds`:敏感性分析

图片

图片

AI+Stata2.0红宝书系统介绍AI辅助高级数据分析与因果推断的Stata实现方法,涵盖从工具配置到实操应用的全流程:

  • 核心内容:包括AI大模型基础、提示工程、借助AI写代码、Markdown学术应用、AI+Stata/Python工作流程等;
  • 技术适配:Stata、Python、VS Code、Jupyter Notebook及Anaconda环境配置与使用指南;
  • 案例导向:通过实证案例演示AI在因果推断分析(如合成控制法、断点回归、渐进DID、机器学习)和政策评估中的应用,附提示词与代码示例;
  • 资源配套:提供AI大模型集合、提示词速查、代码模板及科研实操手册等实用附录;
  • 适用群体:计量经济学研究者、高校师生等群体,既可作为AI辅助学术应用入门教程,也可作为进阶研究的参考手册。
小讯
上一篇 2026-03-22 09:30
下一篇 2026-03-22 09:28

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/247259.html