Ai
1 Star 0 Fork 0

张剑/python_learn

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
tempCodeRunnerFile.do 2.14 KB
一键复制 编辑 原始数据 按行查看 历史
zj 提交于 2025-05-28 08:21 +08:00 . feat: 添加差异处理时间DID分析示例代码
/* - id=2: 处理效应为2
- id=3: 处理效应为4
- id=4: 处理效应为3
- id=5: 处理效应为5
- id=6: 处理效应为1
- 这展示了处理效应的异质性,更符合现实情况
*/
clear // 清除内存中的所有数据
local units = 3 // 定义局部宏变量units为3,表示3个单位/个体
local start = 1 // 定义局部宏变量start为1,表示时间序列的起始点
local end = 10 // 定义局部宏变量end为10,表示时间序列的结束点
local time = `end' - `start' + 1 // 计算时间跨度,从start到end共有多少个时间点
local obsv = `units' * `time' // 计算总观测数,即单位数乘以时间点数
set obs `obsv' // 设置数据集的观测数量
egen id = seq(), b(`time') // 生成面板ID变量,每个ID重复time次
egen t = seq(), f(`start') t(`end') // 生成时间变量,从start到end
lab var id "Panel variable" // 为id变量添加标签,表示这是面板变量
lab var t "Time variable" // 为t变量添加标签,表示这是时间变量
sort id t // 按id和t排序数据
xtset id t // 声明数据为面板数据,id为面板变量,t为时间变量
gen D = 0 // 生成处理变量D,初始值全部设为0
replace D = 1 if id>=2 & t>=5 // 当id>=2且t>=5时,将D设为1,表示这些观测接受了处理
lab var D "Treated" // 为D变量添加标签,表示这是处理变量
cap drop Y // 如果Y变量已存在则删除它
gen Y = 0 // 生成结果变量Y,初始值全部设为0
replace Y = cond(D==1, 2, 0) if id==2 // 对id=2的单位,如果D=1则Y=2,否则Y=0
replace Y = cond(D==1, 4, 0) if id==3 // 对id=3的单位,如果D=1则Y=4,否则Y=0
lab var Y "Outcome variable" // 为Y变量添加标签,表示这是结果变量
twoway ///
(connected Y t if id==1) ///
(connected Y t if id==2) ///
(connected Y t if id==3) ///
, ///
xline(4.5) ///
xlabel(1(1)10) ///
legend(order(1 "id=1" 2 "id=2" 3 "id=3"))
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/jefeerzhang/python_learn.git
git@gitee.com:jefeerzhang/python_learn.git
jefeerzhang
python_learn
python_learn
master

搜索帮助