合并输出回归结果和其他检验结果——esttab和estadd

2017-01-19 赵一&周鹏 爬虫俱乐部 爬虫俱乐部

在之前的RTF系列推文中,我们已经介绍了如何使用rtf相关命令新建和编辑文档,插入图片和利用esttabestpost输出相关系数表等方法,今天我们介绍如何使用esttabestadd将回归结果和其他检验结果合并输出的方法:


01 将豪斯曼检验结果添加在回归结果中

在处理面板数据时,我们可以使用豪斯曼检验来确定应该使用固定效应还是随机效应模型,但是怎么把检验结果和回归结果放一起导出呢?


clear

set more off

use http://www.stata-press.com/data/imeus/traffic.dta  //获取网络数据

xtset state year

est clear

xtreg fatal spircons unrate,fe  //固定效应估计

est store fe   //储存估计结果

xtreg fatal spircons unrate,re  //随机效应估计

est store re  //储存估计结果

hausman fe re  //进行豪斯曼检验




关键的一步:利用estadd命令将检验结果的p值添加到储存结果中(estadd命令请参考esttab功能挖掘:“Yes”or“No”我来存储估计结果,您来选择输出方式


estadd scalar Hausman_Test = r(p),replace




接下来,我们利用esttab命令中的scalars选项,导出我们所添加的标量


esttab fe re,scalars(N Hausman_Test) nonum mtitle(FE RE) b(%12.3f) 




如果需要将结果导入到RTF文档中,我们只需改写esttab命令环节,在输出之前,我们可以先利用程序在目标文档中设定表格标题:


tempname handle

rtfappend `handle' using d:/mytable.rtf,replace //如果需要新建一个RTF文档,可以使用rtfopen命令

file write `handle' _n "\page" _n       //另起一页

file write `handle' "{\pard\b Regression Table 1 \par}" _n

rtfclose `handle'


esttab fe re using ,scalars(N Hausman_Test) nonum mtitle(FE RE) b(%12.3f)




02 在回归结果中添加t检验结果

如果我们需要检验分组回归某一系数的差异,并希望将检验的结果和回归结果一并输出,我们仍然可以使用estadd命令,例如:


clear

set more off

sysuse auto


我们将样本分为国内制造和国外制造两组,并检验两组回归中length系数的差异


reg mpg weight price length if foreign  //外国制造组

local foreign_length=_b[length]  //保存这一组的回归系数

disp `foreign_length'




est store m1

reg mpg weight price length if !foreign  //国内制造组

disp _b[length]

test _b[length]=`foreign_length'  //对两个系数进行t检验




scalar coef_diff = `foreign_length'-_b[length],replace  //在回归结果中添加两个系数的差值

estadd scalar p_diff =r(p),replace  //在回归结果中添加t检验的p

est store m2

esttab m1 m2,scalars(N r2 coef_diff p_diff) nonum mtitle(foreign domestic) b(%12.3f) 




同理,我们也可以直接选择输出到RTF文档中:


tempname handle

rtfappend `handle' using d:/mytable.rtf,replace //新建一个RTF文档,可以使用rtfopen命令

file write `handle' _n "\page" _n       //另起一页

file write `handle' "{\pard\b Regression Table 2 \par}" _n

rtfclose `handle'

esttab m1 m2 using d:/mytable,rtf scalars(N r2 coef_diff p_diff) nonum mtitle(foreign domestic) b(%12.3f) append




03 用添加交互项方法检验系数差异并与回归结果合并输出

上面仅仅介绍了在回归结果中添加t检验等结果的方法,但是对分组回归系数差异检验并不能简单的对两个系数进行t检验。传统的做法是添加交互项,交互项的系数即为分组系数差异,具体如下:


clear

set more off

sysuse auto


同上,我们仍然检验国外和国内两组中lengthprice的回归系数的差异,


gen length_foreign=length*foreign

reg mpg weight price length foreign length_foreign

matrix diff=r(table)  //将回归结果储存在矩阵中




reg mpg weight price length if foreign

est store m1

reg mpg weight price length if !foreign

estadd scalar coef_diff =diff[1,5],replace   //将交互项的系数添加在输出结果中

estadd scalar p_diff =diff[4,5],replace    //将交互项的p值添加在输出结果中

est store m2

esttab m1 m2,scalars(N r2 coef_diff p_diff) nonum mtitle(foreign domestic) b(%12.3f) 




同理,我们也可以直接选择输出到RTF文档中:


tempname handle

rtfappend `handle' using d:/mytable.rtf,replace

file write `handle' _n "\page" _n       //另起一页

file write `handle' "{\pard\b Regression Table 3 \par}" _n

rtfclose `handle'

esttab m1 m2 using d:/mytable,rtf scalars(N r2 coef_diff p_diff) nonum mtitle(foreign domestic) b(%12.3f) append




以上就是我们今天的分享,希望对诸位读者在导出实证结果中有些许的帮助,爬虫酱就很开心啦。

接下来我们关注一下全国空气质量

全国空气质量如下



山东的西部小伙伴要保护好自己!



以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~,点赞打赏随您心意,么么哒~

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

编辑 by强宇曦



往期推文推荐:

1.独家Stata技术培训,千呼万唤始出来

2.关于RTF你不知道的命令

3.关于RTF你不知道的命令之番外篇

4.免费事件研究,一片片从邮局寄来

5.免费的股价同步性,一片片从邮局寄来

6.Stata叫你回家听音乐了!

7.一言不合就用stata写邮件(Outlook/Foxmail)

8.玩转stata之调用浏览器

9.I have a Stata, I have a python

10.I have a Stata, I have a Python之二——pdf转word




关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。


此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:xueyuan19920310@163.com

投稿要求:

1)必须原创,禁止抄袭;

2)必须准确,详细,有例子,有截图;

注意事项:

1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。

2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。

3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


欢迎关注爬虫俱乐部

微信扫一扫
关注该公众号