【统计学】stata 梳理输出命令逻辑关系 asdoc outreg2 logout esttab区别 优劣势

本文主要是介绍【统计学】stata 梳理输出命令逻辑关系 asdoc outreg2 logout esttab区别 优劣势,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、概述

初学stata的时候对于stata输出的逻辑颇为疑惑, 因为学python和cpp的时候输出函数就是那几个非常的简单,而statac的asdoc、outreg2、logout 和 esttab 这些常见的命令在跳出来的时候往往分不清楚,也不知道为什么代码里要这么用。
本文就是梳理常见的一些输出命令,在平时学习尤其是计量经济学这样的学科时能够降低理解难度。

本文主要梳理的命令包括但不限于 asdoc、outreg2、logout 和 esttab ,主要介绍其用法。以上命令都可以通过 ssc install 命令名称, replace 安装更新

二、结果输出的各种命令

一般来说,outreg2 只支持描述性统计输出和回归结果输出,logout 支持分组 T 均值检验和相关系数矩阵的输出,tabstat一般用于输出基本统计量,asdoc支持描述性统计输出,局限性较大;esttab在回归结果、描述性统计、分组T均值检验和相关系数矩阵的输出都较为实用,运用范围比较广。

总的来说就是 初学stata可以多关注关注logout和asdoc,注重研究的可以多学习esttab和outreg2。
脑图

三、统计量

  • 计算(想要得到多个数据的基本统计量)
    tabstat
    在这里插入图片描述
    从初学角度,stats是statistics的缩写,代表设置输出格式
  • statistics():可以输入的全部统计量有:N mean sd min median max p1 p5 p10 p25 p75 p90 p95 p99。若为空,则默认输入N mean sd min median max。
  • 上述命令的意思是输出这几个维度的mean sd min p50 和max几个统计量 数据格式为f(%6.2f)
    在这里插入图片描述
  1. 输出

logout将上述基本统计量表格输出至Word/EXCEL

*输出至word
logout ,save(table) word replace:  ///tabstat  price wei len mpg rep78, ///stats(mean sd min p50 max) c(s) f(%6.2f)
*输出至excel
logout ,save(table) excel replace:  ///tabstat  price wei len mpg rep78, ///stats(mean sd min p50 max) c(s) f(%6.2f)

asdoc是另外一个很有力的输出方法,sum代表summarize,像summarize、correlate、tabstat、cross-tabs、regressions、t-tests等命令的结果输出都可以通过这种方法,只要在前面加一个"asdoc“就可以了
asdoc也可以将多个回归结果融合成一个表格,不断滚雪球;也可以按照分类进行分组描述性统计
想了解更多的asdoc命令或者有看不懂的地方可以戳这个链接asdoc:Stata 结果输出又一利器!

local varlist "wage age race married grade collgrad south union occupation"
///这里你们要自己试验的话就把varlist里字符替换成自己的变量好了
asdoc sum `varlist', save(Myfile.rtf) replace ///stat(N mean sd min p50 max)  dec(3) ///title(asdoc_Table: Descriptive statistics)

esttab能分别设置每个统计量的小数点位数,通过在相应的统计量后面加(fmt(n))来实现控制n位小数位数

local varlist "wage age race married grade collgrad south union occupation"
estpost summarize `varlist', detail
esttab using Myfile.rtf, ///cells("count mean(fmt(2)) sd(fmt(2)) min(fmt(4)) p50(fmt(4)) max(fmt(4))") ///noobs compress replace title(esttab_Table: Descriptive statistics)

如果变量名字想用中文的可以试试sum2docx,它也可以像esttab一样控制小数位数,但是缺点在于没办法在命令界面看到结果。

local varlist "wage age race married grade collgrad south union occupation"
sum2docx `varlist' using Myfile.docx,replace ///stats(N mean(%9.2f) sd(%9.3f) min(%9.2f) median(%9.2f) max(%9.2f)) ///title(sum2docx_Table: Descriptive statistics)

以上命令在自己运行时将varlist局部变量""中的变量替换成自己的变量即可。
例如:

local varlist " prate mrate totpart totelg"
estpost summarize `varlist', detail
esttab using Myfile.rtf, ///cells("count mean(fmt(2)) sd(fmt(2))") ///noobs compress replace title(esttab_Table: My Descriptive statistics)

四、相关系数矩阵

asdoc命令比较简单,但是局限性很多,没办法自定义星号和p值输出,适合初学使用

local varlist "wage age race married grade collgrad"
asdoc cor `varlist', save(Myfile.doc) replace nonum dec(3) ///title(asdoc_Table: correlation coefficient matrix)

corr2docx支持中文,而其他命令不行。

local varlist "wage age race married grade collgrad"
corr2docx `varlist' using Myfile.docx, replace spearman(ignore) pearson(pw) ///star title(corr2docx_Table: correlation coefficient matrix)

在输出时logout会出现串行问题,也没办法输出标题,所以比较麻烦,不推荐使用

local varlist "wage age race married grade collgrad"
logout, save(Myfile) word replace : pwcorr_a `varlist', ///star1(0.01) star5(0.05) star10(0.1)

可以自定义星号的方法:pwcorr_aesttab(esttab的使用和引申可以具体看一下这篇文章,解释了一下命令的理解方法和逻辑)

pwcorr_a price weight mpg displ, star1(0.01) star5(0.05) star10(0.1)
sysuse auto, clearlogout, save(数量经济学) word replace: ///        
pwcorr_a price wei len mpg displ, star1(0.01) star5(0.05) star10(0.1)
///
///esttab
///
local varlist "wage age race married grade collgrad"
estpost correlate `varlist', matrix
esttab using Myfile.rtf, ///unstack not noobs compress nogaps replace star(* 0.1 ** 0.05 *** 0.01) ///b(%8.3f) p(%8.3f) title(esttab_Table: correlation coefficient matrix)

五、回归结果

最符合一般投稿、研究、各种文献的图表格式的命令esttab,做出的图是这样的(注意统计量和变量在表中的位置
在这里插入图片描述
命令如下:

reg wage age married occupation
est store r1
reg wage age married collgrad occupation
est store r2
reg wage age married collgrad occupation race_num*
est store r3
esttab r1 r2 r3 using Myfile.rtf, ///replace star( * 0.10 ** 0.05 *** 0.01 ) nogaps compress ///order(married) drop(occupation) b(%20.3f) se(%7.2f)  ///按married排序,同时舍弃occupationr2(%9.3f) ar2 aic bic obslast scalars(F)  ///indicate("race=race_num*") mtitles("OLS -1" "OLS-2" "OLS-3") ///title(esttab_Table: Regression result) 

asdoc命令输出的图片不如前者正规,且不能对变量排序,可理解为”滚雪球多次"

asdoc reg wage age married occupation, save(Myfile.doc) nest replace ///cnames(OLS-1) rep(se) add(race, no)
asdoc reg wage age married collgrad occupation, save(Myfile.doc) nest append ///cnames(OLS-2) add(race, no)
asdoc reg wage age married collgrad occupation race_num*, save(Myfile.doc) nest append ///add(race, yes) cnames(OLS-3) dec(3) drop(occupation race_num*) ///stat(r2_a, F, rmse, rss) title(asdoc_Table: regression result)

但是如果研究仅仅需要输出R^2,不需要F统计量不需要在第三次回归后增添统计量,可以使用asdoc,比较方便,结果如图。(详细请看asdoc:Stata 结果输出又一利器!

在这里插入图片描述

参考:

Stata:毕业论文大礼包 A——实证结果输出命令大比拼
Stata结果输出:logout、esttab、logout2

这篇关于【统计学】stata 梳理输出命令逻辑关系 asdoc outreg2 logout esttab区别 优劣势的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/192154

相关文章

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

C# Semaphore与SemaphoreSlim区别小结

《C#Semaphore与SemaphoreSlim区别小结》本文主要介绍了C#Semaphore与SemaphoreSlim区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、核心区别概览二、详细对比说明1.跨进程支持2.异步支持(关键区别!)3.性能差异4.API 差

Java中自旋锁与CAS机制的深层关系与区别

《Java中自旋锁与CAS机制的深层关系与区别》CAS算法即比较并替换,是一种实现并发编程时常用到的算法,Java并发包中的很多类都使用了CAS算法,:本文主要介绍Java中自旋锁与CAS机制深层... 目录1. 引言2. 比较并交换 (Compare-and-Swap, CAS) 核心原理2.1 CAS

Redis 命令详解与实战案例

《Redis命令详解与实战案例》本文详细介绍了Redis的基础知识、核心数据结构与命令、高级功能与命令、最佳实践与性能优化,以及实战应用场景,通过实战案例,展示了如何使用Redis构建高性能应用系统... 目录Redis 命令详解与实战案例一、Redis 基础介绍二、Redis 核心数据结构与命令1. 字符

交换机救命命令手册! 思科交换机排障命令汇总指南

《交换机救命命令手册!思科交换机排障命令汇总指南》在交换机配置与故障排查过程中,总会遇到那些“关键时刻靠得住的命令”,今天我们就来分享一份思科双实战命令手册... 目录1. 基础系统诊断2. 接口与链路诊断3. L2切换排障4. L3路由与转发5. 高级调试与日志6. 性能与QoS7. 安全与DHCP8.

故障定位快人一步! 华为交换机排障命令汇总

《故障定位快人一步!华为交换机排障命令汇总》在使用华为交换机进行故障排查时,首先需要了解交换机的当前状态,通过执行基础命令,可以迅速获取到交换机的系统信息、接口状态以及配置情况等关键数据,为后续的故... 目录基础系统诊断接口与链路诊断L2切换排障L3路由与转发高级调试与日志性能、安全与扩展IT人无数次实战

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

MySQL中VARCHAR和TEXT的区别小结

《MySQL中VARCHAR和TEXT的区别小结》MySQL中VARCHAR和TEXT用于存储字符串,VARCHAR可变长度存储在行内,适合短文本;TEXT存储在溢出页,适合大文本,下面就来具体的了解... 目录一、VARCHAR 和 TEXT 基本介绍1. VARCHAR2. TEXT二、VARCHAR

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自