楼主: 玄火小王
893 0

[学习心得] 合成控制法安慰剂检验出现treated unit appears among control units r(198)错误 [推广有奖]

  • 1关注
  • 2粉丝

已卖:468份资源

副教授

10%

还不是VIP/贵宾

-

威望
0
论坛币
4690 个
通用积分
21.2580
学术水平
5 点
热心指数
15 点
信用等级
5 点
经验
37304 点
帖子
284
精华
0
在线时间
957 小时
注册时间
2014-3-28
最后登录
2025-12-16

楼主
玄火小王 发表于 2022-7-25 20:50:42 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
最近用stata采用20年260个id面板数据开展合成控制法 (Synthetic Control Method)分析,进行安慰剂检验出现错误命令是
xtset id year
tempname resmat //设定一个临时矩阵叫做resmat
forval i=1/100{
qui synth y x1 x2 x3 x4 x5 x6, trunit(`i') trperiod(2018) counit(1(1)40 201(1)260) xperiod(2001(1)2010) keep(SCM_synth_`i',replace)
matrix `resmat' = nullmat(`resmat') \ e(RMSPE) //矩阵用来存放每个州进行合成控制的rmspe值
local names `"`names' `"`i'"'"'
}
mat colnames `resmat' = "RMSPE" //矩阵的列名定义为RMSPE
mat rownames `resmat' = `names' //矩阵的行名为names
matlist `resmat' , row("Treated Unit")
命令执行到这,就提示上述错误:treated unit appears among control units  - check co() and tr() r(198);

似乎是forval i=1/100,与counit(1(1)40 201(1)260),不能有交集,比如换成forval i=1/60,counit( 201(1)260)或者删掉counit这个命令会好一点。
选择项" counit(numlist) "用于指定潜在的控制地区(即 donor pool,其中 counit 表示 control units),默认为数据集中的除处理地区以外的所有地区。

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:control appears Contro appear treat stata 合成控制法 Synthetic Control Method

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-2-1 15:32