stata结果导出

资料来源微信公众号:爬虫俱乐部、 stata连享会

结果输出##

clear all //清空内存

set more off // 关闭more选项。

webuse nlswork,clear //导入网上数据

xtset idcode year //设置面板标识

tab year,gen(yd) //生成年份虚拟变量

*回归1:未控制年份的OLS,对标准误进行聚类修正

     reg ln_w age ttl_exp tenure not_smsa south, vce(cluster idcode)

     est store m1

*回归2:控制年份的OLS,对标准误进行聚类修正

     reg ln_w age ttl_exp tenure not_smsa south yd*, vce(cluster idcode)

     est store m2

*回归3:控制年份的面板固定效应模型,对标准误进行聚类修正

      xtreg ln_w age ttl_exp tenure not_smsa south yd*, fe vce(cluster idcode)

      est store m3


   local s "using $Out\Table11.csv"     // 指定存储结果的 Excel  文档名称

   local m " m1 m2 m3 "               //指定"m1 m2 m3 " 为m


   esttab  `m' `s' , star(* 0.1 ** 0.05 *** 0.01) b(%6.3f) t(%6.3f) 
   compress nogap ///
   drop(yd*) stats(N r2_a, fmt(%12.0f  %9.3f)) varwidth(20) ///
    title("Table1 Wage") mtitle("OLS" "OLS" "FE")

注1:star选项可以对显著性进行调整,此处表示10%,表示5%,*表示1%。

*注2:b(),t()选项分别为调整输出系数和t值的格式,%6.3f表示,长度为6,小数3位。

*注3:compress和nogap选项可以压缩行距和列距。

*注4:由于year是控制变量,我们也不想观察其系数,故在输出时使用drop()选项删除。

*注5:stats()选项可以在输出结果中增加行注释或者回归存储值;这里我们输出了观测值个数N和调整后的R2,并为其设置显示格式。

*注6:为了避免输出时变量名缺省,我们使用varwidth()选项,设定输出变量名长度为20。

*注7:title()和mtitle()选项可以设置表格标题以及模型的标题。

*输出的表格很精美,然而仍有不足:1)没有显示是否控制年份;2)没有显示cluster;3)没有显示是否控制个体效应(Fixed Effect)。

*对于第一个问题,我们可以选择使用indicate()选项来解决,命令和输出结果如下:

    esttab  m* using $Out\Table12.csv , star(* 0.1 ** 0.05 *** 0.01) 
     b(%6.3f) t(%6.3f) compress nogap ///
      stats(N r2_a, fmt(%12.0f  %9.3f)) varwidth(20) indicate("Year 
     FE=yd*") ///
     title("Table1 Wage") mtitle("OLS" "OLS" "FE")

*对于第2和第3个问题,我们可以结合estadd命令来解决。其实esttab和estout是一个很强大的结果输出命令系列,其选项是通用的,如果能够灵活的搭配使用则会事半功倍。使用estadd对以上程序进行修改,具体细节请help estadd,修改后的程序如下:

clear

set more off

webuse nlswork,clear

xtset idcode year  

tab year,gen(yd)     

reg ln_w age ttl_exp tenure not_smsa south, vce(cluster idcode)

estadd local Cluster "Yes",replace      //显示是否cluster

estadd local Fixed_Effect "No",replace  //显示是否控制个体效应(Fixed 
Effect)

est store m1

reg ln_w age ttl_exp tenure not_smsa south yd*, vce(cluster idcode)

estadd local Cluster "Yes",replace      // 显示是否cluster

estadd local Fixed_Effect "No",replace  //显示是否控制个体效应(Fixed 
Effect)

est store m2

xtreg ln_w age ttl_exp tenure not_smsa south yd*, fe vce(cluster 
idcode)

estadd local Cluster "Yes",replace      //显示是否cluster

estadd local Fixed_Effect "Yes",replace  //显示是否控制个体效应(Fixed 
Effect)

est store m3


esttab  m* using $Out\Table20.csv , star(* 0.1 ** 0.05 *** 0.01) 
b(%6.3f) t(%6.3f) ///
compress nogap stats(Fixed_Effect Cluster N r2_a, fmt(%3s %3s 
%12.0f  %9.3f)) varwidth(20) ///
indicate("Year FE=yd*") title("Table1 Wage") mtitle("OLS" "OLS" "FE")

描述性统计、相关系数矩阵、组建均值差异检验和回归结果四张常用表格如何快速输出?

help sum2docx // 将描述性统计量表直接输出到一个 docx 文件中;

help corr2docx // 将相关系数矩阵直接输入到一个 docx 文件中;

help t2docx // 将分组均值t检验结果导出到一个 docx 文件中;

help reg2docx // 将回归结果导出至 docx 文件中,用法类似于 esttab。

*下载只需在 Stata 命令窗口执行 ssc install **2docx, replace 即可。

*第一:输出基本统计量: sum2docx 命令
语法结构
sum2docx varlist [if] [in] using ///
filename , [options]
*其中, varlist 指数值型变量列表, filename 指的是输出的文件名,该命令的 options 非常丰富,可以根据需要选择。

范例
sysuse auto,clear
sum2docx price-foreign using ///
    1.docx, append obs ///
    mean(%9.2f) sd min(%9.0g)///
    median(%9.0g) max(%9.0g) ///
    title("表 1: 描述性统计")
shellout 1.docx
  • 第二:输出相关系数矩阵:corr2docx 命令
    语法结构
    corr2docx varlist [if] [in] using filename, [options]
    其中, varlist 指数值型变量列表, filename 指的是输出的文件名。

    sysuse auto,clear
    corr2docx price-foreign using ///
      2.docx, star(* 0.05) ///
      fmt(%4.2f) ///
      title("表 2:相关系数矩阵")
    shellout 2.docx
    

    *第三:组间均值差异检验:t2docx 命令
    语法结构
    corr2docx varlist[if] [in] using filename [, options]
    其中, varlist 指数值型变量列表, filename 指的是输出的文件名
    范例
    sysuse auto,clear
    t2docx price weight length mpg ///
    using 3.docx,replace ///
    by(foreign) ///
    title("表 3: t 检验")
    shellout 3.docx

*第四:reg2docx 命令可以将回归结果保存到 .docx 文件中,用法类似于 esttab。先逐项回归后再汇总至一个文件中。
范例
*-调入数据
sysuse "auto.dta", clear
//比如先做两个线性回归
reg price mpg weight length
est store m1
reg price mpg weight length foreign
est store m2
*-然后再做一个 Probit 回归
probit foreign price weight length
est store m3
*-输出结果至 Word 文档
reg2docx m1 m2 m3 using result.docx, ///
ar2(%9.2f) b(%9.3f) t(%7.2f) r2(%9.3f) ///
title("表4: 回归结果") replace
*-查看 Word 文档
shellout result.docx

*第五:将上述四张表输出至一个 Word 文档中
基本思路
*(1) 用putdocx命令生成一个空白 Word 文档 - [My_Table.docx],进而使用putdocx text等命令设定文档属性;

*(2) 用sum2docx生成「表 1」, 并使用sum2docx命令的append 选项将这张表追加到 [My_Table.docx] 文档尾部;

*(3) 按第二步的方法, 依次使用 corr2docx, t2docx, reg2docx 命令添加后续表格.

*第六 写作建议
*(1)写论文正文时,新建一个 Word 文档, 命名为: [My_Paper.docx]
*在需要插入表格的地方写上[---------Table # Here--------],其中,# 表示表格编号;

*(2)Stata 自动生成的 表格 则存放于 另一个 Word 文档: [My_Table.docx],
*里面存放 [Table 1], [Table 2], …..

*Stata 范例
*我们需要把上述四个基本表格汇总至一份 word 文档里。

clear all
set more off
putdocx begin                     //新建 Word 文档
putdocx paragraph, halign(center) //段落居中
*-定义字体、大小等基本设置
putdocx text ("附:文中待插入表格"), ///
    font("华为楷体",16,black) bold linebreak  
*-保存名为 My_Table.docx 的 Word 文档        
putdocx save "My_Table.docx", replace

*-调入数据
sysuse "auto.dta", clear

*-----Table 1-----
 sum2docx price-length using "My_Table.docx", append ///
     obs mean(%9.2f) sd min(%9.0g) median(%9.0g) max(%9.0g) ///
     title("表 1: 描述性统计")
*-Note: 选项 append 的作用是将这张新表追加到 "My_Table.docx" 尾
部, 下同.

   *-----Table 2-----
putdocx begin
putdocx pagebreak
putdocx save "My_Table.docx", append

 corr2docx price-length using "My_Table.docx", append ///
      star(* 0.05) fmt(%4.2f) ///
      title("表 2:相关系数矩阵")

*-----Table 3-----
 putdocx begin
putdocx pagebreak
 putdocx save "My_Table.docx", append

t2docx price-length using "My_Table.docx", append ///
   by(foreign) title("表 3:组间均值差异 t 检验")

*-----Table 4-----
putdocx begin
putdocx pagebreak
putdocx save "My_Table.docx", append

reg price mpg weight length
est store m1
reg price mpg weight length foreign
est store m2
probit foreign price weight length
 est store m3
  reg2docx m1 m2 m3 using "My_Table.docx", append ///
     r2(%9.3f) ar2(%9.2f) b(%9.3f) t(%7.2f) ///
     title("表4: 回归结果")

shellout "My_Table.docx"  //大功告成!打开生成的 Word 文档

基本统计量

sysuse "nlsw88.dta", clear 
des //describe,  数据形态
des2 // 外部命令,很好用
sysuse "auto", clear // 调入 Stata 自带数据文件
codebook // 数据概览
compress // 自动精简资料的存储格式
sum //summarize, 基本统计量
fsum, s(mean sd p50 min max) cat(rep78 foreign) label // 外部命令 , 很
好用
bysort foreign: fsum price wei len // 分组统计
logout, save("$Out\Table1_sum") excel replace: ///
tabstat price wei len mpg turn foreign, ///
stat(mean sd p50 min max) format(%7.2f) column(statistic)

Note: (1) 上述三行要一起执行 ;
(2) logout 那一行的作用是把结果输出到 excel 表格中 ;
(3) /// 是换行符

相关系数矩阵 , 官方命令

sysuse auto//导入数据
pwcorr price headroom mpg displacement
//  Estimate all pairwise correlations
 pwcorr price headroom mpg displacement, sig
 //Add significance level to each entry
 pwcorr price headroom mpg displacement, star(.01) bonferroni
 //Add   stars to correlations significant at the 1% level after Bonferroni 
adjustment
graph matrix  price headroom mpg displacement // 相关系数矩阵 ( 散点图 )
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 230,362评论 6 544
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,577评论 3 429
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 178,486评论 0 383
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,852评论 1 317
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,600评论 6 412
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,944评论 1 328
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,944评论 3 447
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 43,108评论 0 290
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,652评论 1 336
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,385评论 3 358
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,616评论 1 374
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 39,111评论 5 364
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,798评论 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 35,205评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,537评论 1 295
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,334评论 3 400
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,570评论 2 379

推荐阅读更多精彩内容