查看原文
其他

软件应用 | 我的实证论文常用的STATA笔记

数据Seminar 2022-12-31

来源:文章来自网络

本文转载自公众号:经管定量笔记

STATA输出

1.安装estout。最简单的方式是在stata的指令输入:ssc install estout, replace EST安装的指导网址是:http://repec.org/bocode/e/estout/installation.html

2.跑你的regression

3.写下这行指令esttab using test.rtf,然后就会出现个漂亮的表格给你(WORD文档)。只要再小幅修改,就可以直接用了。这个档案会存在my document\stata下。如果你用打开的是一个stata do file,结果会保存到do文件所在文件夹中。如果要得到excel文件,就把后缀改为.xls或者.csv就可以了

4.跑多个其实也不难,只要每跑完一个regression,你把它取个名字存起来:est store m1。m1是你要改的,第一个model所以我叫m1,第二个的话指令就变成est store m2,依次类推。

5.运行指令:esttab m1 m2 ... using test.rtf就行了。

异方差检验

Breusch-Pagan test in STATA:

其基本命令是:estat hettest var1 var2 var3

其中,var1 var2 var3 分别为你认为导致异方差性的几个自变量。是你自己设定的一个滞后项数量。

同样,如果输出的P-Value 显著小于0.05,则拒绝原假设,即不存在异方差性。White检验:

其基本命令是在完成基本的OLS 回归之后,输入imtest, white

如果输出的P-Value 显著小于0.05,则拒绝原假设,即不存在异方差性

处理异方差性问题的方法

方法一:WLS

WLS是GLS(一般最小二乘法)的一种,也可以说在异方差情形下的GLS就是WLS。在WLS下,我们设定扰动项的条件方差是某个解释变量子集的函数。之所以被称为加权最小二乘法,是因为这个估计最小化的是残差的加权平方和,而上述函数的倒数恰为其权重。

在stata中实现WLS的方法如下:reg (被解释变量) (解释变量1) (解释变量2)…… [aweight=变量名] 其中,aweight后面的变量就是权重,是我们设定的函数。一种经常的设定是假设扰动项的条件方差是所有解释变量的某个线性组合的指数函数。在stata中也可以方便地实现:

首先做标准的OLS回归,并得到残差项;reg (被解释变量) (解释变量1) (解释变量2)…… predict r, resid 生成新变量logusq,并用它对所有解释变量做回归,得到这个回归的拟合值,再对这个拟合值求指数函数;gen logusq=ln(r^2) reg logusq (解释变量1) (解释变量2)…… predict g, xb gen h=exp(g)

最后以h作为权重做WLS回归;reg (被解释变量) (解释变量1) (解释变量2)…… [aweight=h] 如果我们确切地知道扰动项的协方差矩阵的形式,那么GLS估计是最小方差线性无偏估计,是所有线性估计中最好的。显然它比OLS更有效率。虽然GLS有很多好处,但有一个致命弱点:就是一般而言我们不知道扰动项的协方差矩阵,因而无法保证结果的有效性。

方法二:HC SE

There are 3 kinds of HC SE

(1)Huber-White Robust Standard Errors HC1, 其基本命令是:reg var1 var2 var3, robust White(1980)证明了这种方法得到的标准误是渐进可用(asymptotically valid)的。这种方法的优点是简单,而且需要的信息少,在各种情况下都通用。缺点是损失了一些效率。这种方法在我们日常的实证研究中是最经常使用。

(2)MacKinnon-White SE HC2,其基本命令是:reg var1 var2 var3, hc2

(3)Long-Ervin SE HC3,其基本命令是:reg var1 var2 var3, hc3


如果需要检验两个变量,比如x 与y,之间系数之间的关系,以检验两者系数相等为例,我们可以直接输入命令:

test x=y

再如检验两者系数之和等于1,我们可以直接输入命令:

test x+y=1

如果输出结果对应的P-Value 小于0.05,则说明原假设显著不成立,即拒绝原假设。


序列相关性问题的检验

首先,要保证所用的数据必须为时间序列数据。如果原数据不是时间序列数据,则需要进行必要的处理,最常用的方法就是:gen n=_n tsset n

这两个命令的意思是,首先要生成一个时间序列的标志变量n(或者t 也可以);然后通过tsset 命令将这个数据集定义为依据时间序列标志变量n定义的时间序 列数据。

最直观的检验方式是通过观察残差分布,其基本步骤是在跑完回归之后,直接输入Predict error, stdp

这样就得到了残差值;然后输入命令:plot error n 会得到一个error 随n变化的一个散点图。

D-W检验——对一阶自相关问题的检验:

D-W检验是对一阶自相关问题的常用检验方法,但是如果实际问题中存在高阶 序列相关性问题,则不能用这个检验方法。

D-W 检验的命令如下:

首先,输入回归命令,

reg Variable1 Variable2 Variable3…VariableM

输出一个简单的OLS估计结果。然后,再输入命令:

dwstat 这时会输出一个DW  统计量。通过与临界值之间的比较,可以得出结论。也可 以执行如下命令 estat durbinalt 直接进行Durbin检验。

Breusch-GodfreyTest in STATA——检验高阶序列相关性:在得到一个基本回归结果和error 之后,我们假设这样一个关系:et = α0 + α1 et-1 + α2 et-2 …+ αk et-p + β1 x1t + β2 x2t … +βk xkt +εt BG  检验的原假设是:H0  : α1 = α2 = … αp =0。其基本命令是:bgodfrey , lags(p) 其中p  是你自己设定的一个滞后项数量。如果输出的p-value 显著小于0.05,则 可以拒绝原假设,这就意味着模型存在p阶序列相关性;如果输出的p-value 显 著大于0.05  甚至很大,则可以接受原假设,即不存在p  阶序列相关性。

处理序列相关性问题的方法——GLS

常用的几种GLS方法:

(1) Cochrane-Orcutt estimator 和Prais-Winsten estimator 其基本命令是 prais var1 var2 var3, corc

(2) Newey-West standard errors 其基本命令是 newey var1 var2 var3, lag(3)

其中,lag(3)意思是对三阶序列相关性问题进行处理;如果需要对p  阶序列相关性问题进行处理,则为lag(p)

t因变量,g,f,c是自变量,_26存放了弟26个观测值,为需要预测的值 reg t g f c if _n!=26

点预测

predict taxpredict if _n==26

均值的区间预测

predictnl py=predict(xb),ci(lb ub) l(95)

因变量的区间预测

adjust g=117251.9 f=24649.95 c=99.9,stdf ci level(95)

Hausman检验是检验内生性的最常用的方法。它是通过比较一致估计量与有效估计量的Wald统计量。

命令格式为:.hausman name-constistent [name-efficent] [,options] 其中,name-cosistent指一致估计的结果, name-efficent 指有效估计的结果。注意,一致、有效估计量的先后顺序不能改变。

Option选项:

constant  计算检验统计量将常数也包括在内,默认值为排除常数

allegs 利用所有方程进行检验,默认只对第一个方程进行检验

skipeqs(eqlist) eqlist只能以方程名称而不能以方程序号表示

equation(matchlist) 比较设定的方程。

force 即使假设条件不满足仍进行检验

df(#) 默认值为一致估计与有效估计的协方差矩阵的差的估计

sigmamore 协方差矩阵采用有效估计量的协方差矩阵

sigmaless   协方差矩阵采用一致估计量的协方差矩阵

tconsistent(string)  一致估计量的标题

tefficient(string) 有效估计量的标题

工具变量估计

命令格式:

.ivregress esitimator depvar [varlist1] [varlist2=varlist_iv] [if] [in] [weight][,options] 其中,estimator包括2sls,gmm,liml三种。varlist1为模型中的外生变量,varlist2为模型中的内生变量,varlist_iv为模型中的工具变量。

Nonconstant  不包括常数项

Hascons  用户自己设定常数项

CMM 选项:

wmatrix(wmtype)  robust,cluster clustvar,hac kernel, unadjusted

center  权数矩阵采用中心矩

igmm 采用迭代GMM估计

eps(#) 参数收敛标准。默认值为eps(le-6)

weps(#)  权数矩阵的收敛标准。默认值为w eps(le-6)

Vce(vcetype) unajusted,robust,cluster clustvar,bootstrap,jackknife,hac kernel

level(#)置信区间

First 输出第一阶段的估计结果

Small 小样本下的自由度调整

.estat firststage [,all forcenonrobust]

该命令给出第一阶段的估计结果以及各种统计量,包括排除外生变量的相关性检验。All选项给出所有的拟合优度统计量。如果模型存在多个内生变量,则stata给出R2、偏R2、调整的R2 、F统计量;如果模型存在多个内生变量,则stata给出Shea偏R2和调整的偏R2。

forcenonrobust给出最小特征值统计量及其临界值,即使采用稳健估计(这一检验的假设条件是误差项为独立正态分布)。

estat overid[,lag(#) forceweights forcenonrobust]

该命令给出了过度识别约束检验。如果使用2sls估计估计,则Stata给Sargan’s(1958)和Basman’s(1960)卡方统计量,这也是Wooldridge’(1995)稳健得分检验。如果采用liml估计方法,则stata给出Anderson and Rubin’s(1950) 卡方统计量以及Basmann F统计量;如果采用GMM估计,则stata给出hansen’s(1982)J统计量。Lags(#)用于计算得分检验的HAC(异方差自相关一致)统计量的过程中进行去噪时设定滞后阶数。如果设定lag(0),则表示不进行去噪处理。默认选择为lag(1)。这一选择仅使用于2sls估计方法和设定vce(hac)选项情况。

Forceweight 表示即使采用aweights,pweights或iweights也进行检验。Stata仅对于fweights的情况进行检验,其他权数所得到临界值可能不准确。

Forcenonrobust 指在2sls或LIML估计中即使采用稳健标准差也进行Sargan and Basmann检验(这一检验的假设的假设条件是误差项为独立正态分布)。

例子:

log(wage)=a+beduc+cexper+d*expersq+u

怀疑模型教育(educ)具有内生性问题,利用父母接受教育的年数(fatheduc,motheduc)作educ的工具变量估计上述模型。

(1)利用2SLS估计模型

.ivregress 2sls lwage exper expersq (educ=fatheduc motheduc),first

第一阶段回归结果为:educhat=9.1+0.19fatheduc+0.16motheduc+0.05exper (21.34)      (5.62)       (4.39)       (1.12) - 0.001expersq (-0.84)

第二阶段的估计结果为:lwagehat=0.05+0.06educ+0.04exper-0.001expersq (0.12)     (1.95)      (5.29)       (-2.24)

(2)检验educ的内生性 .quietly  ivreg  iwage exper expersq {educ=fatheduc motheduc} .est store IV_reg .quietly regress lwage exper expersq educ .est store LS_reg .hausman IV_reg LS_reg 可以得到hausman估计量=2.7,P值=0.44。接受原假设,即educ是外生的。

(3)进行过度识别的约束检验 .estat overid 可得Sargan统计量=0.38,P值=0.54接受原假设。

面板数据估计

首先对面板数据进行声明:

前面是截面单元,后面是时间标识:

tsset company year

tsset industry year

产生新的变量:gen newvar=human*lnrd

产生滞后变量Gen fiscal(2)=L2.fiscal

产生差分变量Gen fiscal(D)=D.fiscal

描述性统计:

xtdes :对Panel Data截面个数、时间跨度的整体描述

Xtsum:分组内、组间和样本整体计算各个变量的基本统计量

xttab 采用列表的方式显示某个变量的分布

Stata中用于估计面板模型的主要命令:xtreg

xtreg depvar [varlist] [if exp] , model_type [level(#) ]

Model  type              模型

be             Between-effects estimator

fe              Fixed-effects estimator

re             GLS Random-effects estimator

pa           GEE population-averaged estimator

mle        Maximum-likelihood Random-effects estimator

主要估计方法:

xtreg:  Fixed-, between- and random-effects, and population-averaged linear models

xtregar:Fixed- and random-effects linear models with an AR(1) disturbance

xtpcse :OLS or Prais-Winsten models with panel-corrected standard errors

xtrchh :Hildreth-Houck random coefficients models

xtivreg :Instrumental variables and two-stage least squares for panel-data models

xtabond:Arellano-Bond linear, dynamic panel data estimator

xttobit :Random-effects tobit models

xtlogit :Fixed-effects, random-effects, population-averaged logit models

xtprobit :Random-effects and population-averaged probit models

xtfrontier :Stochastic frontier models for panel-data xtrc gdp invest culture edu sci health social admin,beta

xtreg命令的应用:

声明面板数据类型:tsset  sheng t

描述性统计:xtsum gdp invest sci admin

1.固定效应模型估计:

xtreg  gdp invest culture sci health admin techno,fe 固定效应模型中个体效应和随机干扰项的方差估计值(分别为sigma u 和sigma e),二者之间的相关关系(rho) 最后一行给出了检验固定效应是否显著的F 统计量和相应的P 值

2.随机效应模型估计:

xtreg  gdp invest culture sci health admin techno,re 检验随机效应模型是否优于混合OLS 模型:在进行随机效应回归之后,使用xttest0 检验得到的P 值为0.0000,表明随机效应模型优于混合OLS 模型

3.最大似然估计Ml:

xtreg  gdp invest culture sci health admin techno,mle

Hausman检验

Hausman检验究竟选择固定效应模型还是随机效应模型:

第一步:估计固定效应模型,存储结果

xtreg  gdp invest culture sci health admin techno,fe est store fe

第二步:估计随机效应模型,存储结果

xtreg  gdp invest culture sci health admin techno,re est store re

第三步:进行hausman检验

hausman fe

Hausman检验量为:

H=(b-B)′[Var(b)-Var(B)]-1(b-B)~x2(k)

Hausman统计量服从自由度为k的χ2分布。当H大于一定显著水平的临界值时,我们就认为模型中存在固定效应,从而选用固定效应模型,否则选用随机效应模型 如果hausman检验值为负,说明的模型设定有问题,导致Hausman 检验的基本假设得不到满足,遗漏变量的问题,或者某些变量是非平稳等等

可以改用hausman检验的其他形式:

hausman fe, sigmaless

对于固定效应模型的异方差检验和序列相关检验:

Xtserial gdp invest culture sci health admin techno

异方差检验:

xtreg  gdp invest culture sci health admin techno,fe xttest3 (Modified Wald statistic for groupwise heteroskedasticity in fixed effect model)

随机效应模型的序列相关检验:

xtreg  gdp invest culture sci health admin techno,re Xttest1

Xttest1用于检验随机效应(单尾和双尾) 、一阶序列相关以及两者的联合显著 检验结果表明存在随机效应和序列相关,而且对随机效应和序列相关的联合检验也非常显著

可以使用广义线性模型xtgls对异方差和序列相关进行修正:

xtgls  gdp invest culture sci health admin techno, panels(hetero),修正异方差

xtgls  gdp invest culture sci health admin techno, panels(correlated),修正依横截面而变化的异方差

xtgls  gdp invest culture sci health admin techno, panels(hetero) corr(ar1),修正异方差和一阶序列相关ar(1)






星标⭐我们不迷路!
想要文章及时到,文末“在看”少不了!

点击搜索你感兴趣的内容吧

往期推荐


推荐 | 分析195篇实证研究论文,发现期刊编辑喜欢这样的文章!

资讯 | 2021高校经济学研究力评估:北大、上财、清华表现突出!

推荐 | C刊(各学科)2021年重点选题方向汇总!

推荐 | 钱颖一:培养“问题意识”,做有意义的研究

统计计量 | Stata论文专题-经济学实证研究的“三大法宝”






数据Seminar




这里是大数据、分析技术与学术研究的三叉路口


推荐 | 谈佳辉


    欢迎扫描👇二维码添加关注    

点击下方“阅读全文”了解更多

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

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