楼主: 暗夜0未央
11679 12

[编程问题求助] 合成控制法中安慰剂检验的代码 [推广有奖]

  • 0关注
  • 1粉丝

博士生

57%

还不是VIP/贵宾

-

威望
0
论坛币
277 个
通用积分
0.4505
学术水平
6 点
热心指数
6 点
信用等级
6 点
经验
824 点
帖子
51
精华
0
在线时间
591 小时
注册时间
2012-1-18
最后登录
2024-4-24

100论坛币
开个悬赏吧

synth help 的最后给的是这个,但是真的看不懂啊,有没有大神解释下,能运行的答案照样给
Example 5 ?Run placebo in space:
    . tempname resmat
        forvalues i = 1/4 {
        synth cigsale retprice cigsale(1988) cigsale(1980) cigsale(1975) , trunit(`i')
        trperiod(1989) xperiod(1980(1)1988)
        matrix `resmat' = nullmat(`resmat') \ e(RMSPE)
        local names `"`names' `"`i'"'"'
        }
        mat colnames `resmat' = "RMSPE"
        mat rownames `resmat' = `names'
        matlist `resmat' , row("Treated Unit")

最佳答案

卢永泉 查看完整内容

. tempname resmat //设定一个临时矩阵叫做resmat forvalues i = 1/4 { //这里的循环是指将1到4个州分别做一次合成控制,也就是把2-4州,分别当做处理组进行合成控制 synth cigsale retprice cigsale(1988) cigsale(1980) cigsale(1975) , trunit(`i') trperiod(1989) xperiod(1980(1)1988) matrix `resmat' = nullmat(`resmat') \ e(RMSPE) //临时矩阵等于每个州做处理进行合成控制时候 ...
关键词:安慰剂 控制法 forvalues forvalue example

回帖推荐

卢永泉 发表于2楼  查看完整内容

. tempname resmat //设定一个临时矩阵叫做resmat forvalues i = 1/4 { //这里的循环是指将1到4个州分别做一次合成控制,也就是把2-4州,分别当做处理组进行合成控制 synth cigsale retprice cigsale(1988) cigsale(1980) cigsale(1975) , trunit(`i') trperiod(1989) xperiod(1980(1)1988) matrix `resmat' = nullmat(`resmat') \ e(RMSPE) //临时矩阵等于每个州做处理进行合成控制时候 ...
沙发
卢永泉 学生认证  发表于 2018-3-23 22:35:19 |只看作者 |坛友微信交流群
    . tempname resmat  //设定一个临时矩阵叫做resmat
        forvalues i = 1/4 { //这里的循环是指将1到4个州分别做一次合成控制,也就是把2-4州,分别当做处理组进行合成控制
        synth cigsale retprice cigsale(1988) cigsale(1980) cigsale(1975) , trunit(`i')
        trperiod(1989) xperiod(1980(1)1988)
        matrix `resmat' = nullmat(`resmat') \ e(RMSPE) //临时矩阵等于每个州做处理进行合成控制时候的rmspe值
        local names `"`names' `"`i'"'"' //设定暂元names 为 1 2 3 4
        }
        mat colnames `resmat' = "RMSPE"  //临时矩阵的列名定义为RMSPE
        mat rownames `resmat' = `names'  // 临时矩阵的行名为names
        matlist `resmat' , row("Treated Unit") //展示临时矩阵,并在行的打头表示为“treated unit”

楼主快给俺币吧
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Lee_iris + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

藤椅
Tingzz2016 发表于 2018-5-17 11:22:57 |只看作者 |坛友微信交流群
请问一下,结果运行出来了吗

使用道具

板凳
胡晓蒙 学生认证  发表于 2018-11-11 10:15:24 |只看作者 |坛友微信交流群
请教,上述结果运行出来了,但想要得到随机置换检验的图,该怎么操作呢?

使用道具

报纸
哈论哈 发表于 2019-3-16 17:11:11 |只看作者 |坛友微信交流群
胡晓蒙 发表于 2018-11-11 10:15
请教,上述结果运行出来了,但想要得到随机置换检验的图,该怎么操作呢?
请问怎么运行上述代码,怎么输入都是错的

使用道具

地板
FWINIE 发表于 2020-1-30 17:30:10 |只看作者 |坛友微信交流群
请问stata总是提示 option trunit() required 是什么意思呢?代码是按照回答中的代码运行的。

使用道具

7
FWINIE 发表于 2020-1-30 17:30:57 |只看作者 |坛友微信交流群
卢永泉 发表于 2018-3-23 22:35
. tempname resmat  //设定一个临时矩阵叫做resmat
        forvalues i = 1/4 { //这里的循环是指将1 ...
请问stata总是提示 option trunit() required 是什么意思呢?代码是按照回答中的代码运行的。

使用道具

8
amwwyof 发表于 2020-2-7 17:02:05 |只看作者 |坛友微信交流群
FWINIE 发表于 2020-1-30 17:30
请问stata总是提示 option trunit() required 是什么意思呢?代码是按照回答中的代码运行的。
truint( )是控制组的id,在smoking的那个案例中,加州实施控烟,其id为3,所以案例中就为truint(3)

使用道具

9
Lee_iris 在职认证  学生认证  发表于 2020-5-1 20:09:00 |只看作者 |坛友微信交流群
FWINIE 发表于 2020-1-30 17:30
请问stata总是提示 option trunit() required 是什么意思呢?代码是按照回答中的代码运行的。
1.稳健性检验里面的trunit括号里是 `i' 先确认输入正确。

2.如果是直接从help里复制出来的,可能是把synth的命令分行了,trunit在下一行,所以stata找不到的你trunit()option,注意把synth放在同一行上。

3.也有可能是逗号没有用英文,option应该在英文逗号后面,如果逗号输错,也可能找不到option。

总之可能的原因很多,自己排查一下。

使用道具

10
721寕 学生认证  发表于 2021-7-30 17:32:41 |只看作者 |坛友微信交流群
Lee_iris 发表于 2020-5-1 20:09
1.稳健性检验里面的trunit括号里是 `i' 先确认输入正确。

2.如果是直接从help里复制出来的,可能是把s ...
你好,可以向学习安慰剂检验吗,有偿,万分感谢,毕业论文要用,

使用道具

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

本版微信群
加好友,备注jltj
拉您入交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 14:12