ardl模型stata命令_互助问答第5期:Stata中系统GMM模型的稳健性检验和Stata命令等...

本期解答人:王群勇老师 赵梦阳博士 吴松彬博士

问:Stata中系统GMM模型的稳健性检验和Stata命令 答: 模型的稳健性检验可以分为两种,一种是计量方法的稳健性检验,一种是计量数据的稳健性检验。 前者通常适用于所使用的计量方法比较新颖的研究,通常做法就是换计量方法,换一种相对可靠的计量方法。如果是面板数据的话,可用GMM进行稳健性检验(因为GMM不需要满足经典计量假设)。 后者通常适用于一般性地研究,通常的做法就是换数据。主要有以下几种方法换数据:1.蒙特卡洛或者拔靴(Bootstrapping),生成新数据或重复取样;2.把原来的样本分组,比如按地区东南西北中分组、按发达国家发展中国家分组、按大中小分组,分别回归;3.重新取样。 稳健性检验最起码需要保证的是:稳健性检验回归系数的正负号要和原研究回归系数的正负号相同。

问:工企库中邮编的位置是红色字体,经过sort ,drop 等命令后,去掉了一些异常值,但destring时仍显示“zipcode contains nonnumeric characters; no replace”,因为有200万+条数据 答:

  1. net install asciiplot, from(http://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. }

这个问题我需要两个命令即可完成,即 subinstrasciiplot

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行的数据。 第四步,删除多余变量。

问:在数据筛选的时候很多论文会剔除样本期间新上市和退市的公司,这样做是为了保持面板数据的平衡么?还有不这样做的话结果影响很大么?

答:退市是财务不行,影响实证结果;新上市是可能存在财务美化,使得部分指标过高

(欢迎转发,欢迎分享;转载请注明出处,引用和合作请留言。本文作者拥有所有版权,原创文章最早发表于“论文导向计量实证社区”。任何侵权行为将面临追责!)


版权声明:本文为weixin_39753674原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。