查看原文
其他

命令更新之reg2docx:将回归结果输出到word

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:田志凡

文字编辑:李钊颖

技术总编:薛   原

重磅!!!爬虫俱乐部将于2019年10月2日至10月5日在湖北武汉举行Python编程技术培训,本次培训采用理论与案例相结合的方式,旨在帮助零基础学员轻松入门Python,由浅入深学习和掌握Python编程技术,尤其是爬虫技术和文本分析技术。该培训目前在火热招生中,点击《爬虫俱乐部2019十一Python编程技术培训报名啦!》或点击文末阅读原文,了解培训详细信息,抓紧时间报名吧!

往期推文介绍了更新后的sum2docxcorr2docxt2docx等结果输出命令,将描述性统计结果、相关系数矩阵、均值t检验结果等输出到word。本文将介绍更新后的reg2docx,该命令可将reg、ivreg、ivreg2、probit、tobit、logit、oprobit、ologit、ivprobit、ivtobit、xtivreg2等命令的回归结果输出到word。
更新后的reg2docx命令基于最新的putdocx命令,仅支持Stata15.1及以上版本,读者可通过下述任一方式来安装。
①从SSC下载安装
ssc install reg2docx, replace

②从爬虫俱乐部云端下载安装

net install reg2docx, from("https://stata-club-1257787903.cos.ap-chengdu.myqcloud.com/reg2docx") replace
更新后的reg2docx命令,基本语法结构不变,“选项”有所改变,读者可查看旧版介绍《用reg2docx报告你的实证结果吧!》来对比变化。如下,我们分两方面举例介绍。
一、新增选项scalars( ),可指定输出回归以后的e类返回值,替代了原来的r2、ar2、pr2、aic、bic等选项,可输出的信息也更丰富。
如下,我们以auto数据集为例介绍:
clear allcap mkdir D:/tempcd D:/tempsysuse auto.dta, clearreg price mpg rep78, r

查看e类返回值,关于返回值的介绍可看往期推文朝花夕拾| stata返回值》。

ereturn list

如上图,ols回归后,scalars下存储有N、df_m、df_r、F、r2、r2_a等e类返回值。使用新版reg2docx命令输出回归结果时,可将这些统计量放入scalars( )选项中输出,不同统计量用空格隔开。

若不指定scalars( )选项,默认仅输出样本量。如下,我们设定输出N、r2、r2_a的值。

est store m1 //保存回归结果reg2docx m1 using 回归结果1.docx, replace scalars(N r2 r2_a)  //replace表示若已存在同名文件(回归结果1.docx),则替换掉该文件

结果如上:除指定输出的样本量、R平方、调整R平方外,其他都是默认的输出格式。
使用不同的回归命令,其返回值也不完全一致,但均可输出。与旧版相比,这一改变,增加了更多可输出的回归信息。

 

二、同更新后的sum2docx、corr2docx、t2docx命令一致,新增note( )、pagesize( )、font( )、landscape选项。
note( )选项:添加注释。
pagesize( )选项:设置页面大小,可设置letter、legal、A3、A4、B4JIS等类型,默认情况为A4。
font( )选项:设置字体、字号、颜色。默认情况为Times Newroman、11号、黑色。
landscape选项:将页面设置为横放。
使用方法同往期推文《命令更新之sum2docx:将描述性统计输出至Word文档》中的介绍一致。
 
举例如下,我们使用随机数生成数据:
clearset obs 1000set seed 12345 //设置种子数,保证程序结果可重复gen x1 = uniform()gen x2 = uniform()gen x3 = uniform()gen x4 = uniform()gen x5 = uniform()gen x6 = uniform()gen ind = mod(_n,10) //生成行业虚拟变量gen y1=0.1*x1+0.2*x2+0.3*x3+runiform() //生成被解释变量y1egen median_y1 = median(y1) //生成变量median_y1,等于变量y1的中位数gen y2 = 1 if y1 > median_y1replace y2 = 0 if y2 == .

两个ols回归:

reg y1 x1 x2 x3 x4 x5 x6, rest store m1reg y1 x1 x2 x3 x4 x5 x6 i.ind, rest store m2

两个logit回归:

logit y2 x1 x2 x3 x4 x5 x6, rest store m3logit y2 x1 x2 x3 x4 x5 x6 i.ind, rest store m4

将回归结果输出:

reg2docx m1 m2 m3 m4 using 回归结果2.docx, replace ///scalars(N r2_a(%9.2f) r2_p(%9.2f)) ///indicate("Industry=*ind") /// drop(x4 x5) /// noconstant ///order(x2 x3) ///b(%9.3f) t(%7.2f) ///title("表2:回归结果") ///mtitles("y1" "y1" "y2" "y2") ///star(* 0.1 ** 0.05 *** 0.01) ///note("括号中输出t值或z值;*** p<0.01,** p<0.05,* p<0.1") ///pagesize(A4) ///font("楷体","12","black") /// landscape

上述命令中,除新增选项scalars( )、note( )、pagesize( )、font( )、landscape外,其他选项的含义与旧版保持不变,读者也可参考往期推文《reg2docx报告你的实证结果吧!》的介绍,如下:

replace:若已存在同名文件(即:回归结果2.docx),则替换掉该文件;当用append时,表示将回归表格,追加到已有文件“回归结果2.docx”中。
indicate("Industry=*ind"):将所有符合*ind命名的变量从表格中删除,改为报告变量Industry,用Yes和No表示是否控制这些变量。其中“*”为通配符,“*ind”表示所有以“ind”结尾的变量。
drop(x4 x5):将回归表格中的变量x4 x5删除。
noconstant:不报告常数项。
order(x2 x3):将x2 x3这两个变量放在表格靠前两行。
b(%9.3f)  t(%7.2f):分别设置回归结果输出中,回归系数和t(z)统计量的数值格式,其中(%9.3f)表示保留小数点3位,总长度为9的固定格式。
若读者想输出标准误或p值,而不是t(z)统计量的值,则选项中的t改为se或p即可,但t(z)、se、p只能选择一个输出,不能同时多个。
title("表2:回归结果"):定义表格标题。
mtitles("y1" "y1" "y2" "y2"):定义各列标题,各列标题之间,用空格隔开。此外,depvar选项也可定义列标题,表示将各个模型的被解释变量设置成列标题,但不能与mtitles( )选项同时使用,两者冲突。
star(* 0.1  ** 0.05  *** 0.01):表示在回归系数右侧标*,p<0.1时,标注*;p<0.05时,标**;p<0.01时,标***。这也是默认情况,读者可根据需要修改。


结果截图如下,r2_a为调整R方、r2_p为伪R方。


以上就是新版reg2docx命令的介绍,将回归结果直接输出至word文档,更新后的reg2docx帮我们实现了更加多样化的输出结果,读者也可通过help reg2docx进一步了解!


对爬虫俱乐部的推文累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫!

往期推文推荐

命令更新之t2docx——报告分组均值t检验
爬虫俱乐部2019十一Python编程技术培训报名啦!
数据类型——Dict、Set与Frozenset简析

数据类型介绍——tuple、list和range对象

把pdf文件批量转成docx文件

格式化字符串方法的比较

       朝花夕拾—— 如何输出内存中的矩阵与绘图

       Stata16新功能——定义图形元素的绝对大小

       将数值型计算“一网打尽”——(1)

       Stata16新功能之“框架”——读入多个数据集(1)

      手持Python,斗图不输!

      朝花夕拾——cnstock与cntrade强强联合

       Stata16之do-file更新(1)——再见外部文本编辑器~

关于我们

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


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

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存