聚热点 juredian

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

本期解答人:王群勇 赵梦阳 吴松彬

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

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

net install asciiplot, from(http://fmwww.bc.edu/RePEc/bocode/a) replace

asciiplot

gen tempvar = postcode

forvalues i = 0/47 {

local char=uchar(`i")

replace tempvar = subinstr(tempvar,`"`char""","",.)

}

forvalues i = 58/255 {

local char=uchar(`i")

replace tempvar = subinstr(tempvar,"`char"","",.)

}

这个问题我需要两个命令即可完成,即 subinstr和 asciiplot。

subinstr用于删除0-9以外的字符。

asciiplot是ASCII编码表,其中48-57为0-9的编码。这里需要特别注意的是,Stata15中需要使用 uchar()才能显示128-255的字符。同时,引号 "的编码为34,所以在 subinstr命令中使用 `""""才可以剔除引号。

问:上市公司的数据,以每年每行业进行分组,求各组在剔除掉本企业的其他企业的标准差 答:

webuse "grunfeld.dta", clear

egen id=group(year)

*egen id=group(industry year)

gen tempvar=.

gen invest_sd=.

qui forvalues i=1/200 {

replace tempvar=invest

replace tempvar=. in `i"

sum tempvar if id==id[`i"]

replace invest_sd=r(sd) in `i"

}

drop tempvar id

第一步,生成分组变量id。 第二步,生成临时变量tempvar和标准差变量investsd。 第三步,执行循环。首先,替换掉第i行数据;其次,用sum进行本企业所在分组的统计;最后,用r(sd)替换investsd变量第i行的数据。 第四步,删除多余变量。

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

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

搜索建议:
热博

 如何看待朱丹道歉事件?

抱歉,并不能够接受道歉。朱丹,著名主持人。曾经是浙江卫视一姐般的人物,后转到湖南卫视,我原以为会大放异彩,结果出现难以磨灭的现场错误,后来朱丹沉寂了。在沉寂的这...(展开)