ardl模型stata命令_互助问答第5期:Stata中系统GMM模型的
稳健性检验和Sta。。。
本期解答⼈:王勇⽼师 赵梦阳博⼠ 吴松彬博⼠
问:Stata中系统GMM模型的稳健性检验和Stata命令 答: 模型的稳健性检验可以分为两种,⼀种是计量⽅法的稳健性检验,⼀种是计量数据的稳健性检验。 前者通常适⽤于所使⽤的计量⽅法⽐较新颖的研究,通常做法就是换计量⽅法,换⼀种相对可靠的计量⽅法。如果是⾯板数据的话,可⽤GMM进⾏稳健性检验(因为GMM不需要满⾜经典计量假设)。 后者通常适⽤于⼀般性地研究,通常的做法就是换数据。主要有以下⼏种⽅法换数据:1.蒙特卡洛或者拔靴(Bootstrapping),⽣成新数据或重复取样;2.把原来的样本分组,⽐如按地区东南西北中分组、按发达国家发展中国家分组、按⼤中⼩分组,分别回归;3.重新取样。 稳健性检验最起码需要保证的是:稳健性检验回归系数的正负号要和原研究回归系数的正负号相同。
问:⼯企库中邮编的位置是红⾊字体,经过sort ,drop 等命令后,去掉了⼀些异常值,但destring时仍显⽰“zipcode contains nonnumeric characters; no replace”,因为有200万+条数据 答:
1. net install asciiplot,from(fmwww.bc.edu/RePEc/bocode/a) replace
2. asciiplot
3. gen tempvar = postcode
4. forvalues i =0/47{
5. local char=uchar(`i')
6. replace tempvar = subinstr(tempvar,`"`char'"',"",.)
7. }
8. forvalues i = 58/255 {
9. local char=uchar(`i')
10. replace tempvar = subinstr(tempvar,"`char'","",.)
11. }
这个问题我需要两个命令即可完成,即 subinstr和 asciiplot。
subinstr⽤于删除0-9以外的字符。
asciiplot是ASCII编码表,其中48-57为0-9的编码。这⾥需要特别注意的是,Stata15中需要使⽤ uchar()才能显⽰128-255的字符。同时,引号 "的编码为34,所以在 subinstr命令中使⽤ `"""'才可以剔除引号。
问:上市公司的数据,以每年每⾏业进⾏分组,求各组在剔除掉本企业的其他企业的标准差 答:
1. webuse "grunfeld.dta", clear
2. egen id=group(year)
3. *egen id=group(industry year)
4. gen tempvar=.
5. gen invest_sd=.
6. qui forvalues i=1/200{
7. replace tempvar=invest
8. replace tempvar=.in`i'
9. sum tempvar if id==id[`i']
10. replace invest_sd=r(sd) in `i'
11. }
12. drop tempvar id
第⼀步,⽣成分组变量id。 第⼆步,⽣成临时变量tempvar和标准差变量investsd。 第三步,执⾏循环。⾸先,替换掉第i⾏数据;其次,⽤sum进⾏本企业所在分组的统计;最后,⽤r(sd)替换investsd变量第i⾏的数据。 第四步,删除多余变量。
问:在数据筛选的时候很多论⽂会剔除样本期间新上市和退市的公司,这样做是为了保持⾯板数据的平衡么?还有不这样做的话结果影响很⼤么?
答:退市是财务不⾏,影响实证结果;新上市是可能存在财务美化,使得部分指标过⾼
(欢迎转发,欢迎分享;转载请注明出处,引⽤和合作请留⾔。本⽂作者拥有所有版权,原创⽂章最早发表于“论⽂导向计量实证社区”。任何侵权⾏为将⾯临追责!)
bootstrap检验方法