Stata : 论文中数据分析的一把利剑
计量经济学服务中心,专注于人文社科和经济管理,专注于论文指导、软件操作、研究方法、建模分析、数据服务,请不要轻易关注,请保证按照您的姿态关注和学习!
由于 Stata 软件把 EViews, SPSS 的傻瓜式菜单和 SAS 的命令、编程完美结合起来,所以它受到了初学者和高级用户的普遍欢迎。Stata 软件体积小巧、简单易懂且功能强大,相信它会帮助你完成数据分析及报告的任务,让你得到一篇高水准的论文。
关于stata软件版本,12.0,中心微信公众号,直接回复关键词,妥妥的!
下面本文着重介绍下stata的简介以及两种操作方法,其余精彩部分,未完待续!
1、Stata 简介
Stata 与 SPSS、SAS 并称为当今三大统计软件。与后者相比,Stata 体积小巧、简单易懂且功能强大。Stata 把 EViews, SPSS 的傻瓜式菜单和 SAS 的命令、编程完美结合起来,所以它一推出就受到了初学者和高级用户的普遍欢迎。Stata 不仅在统计方面功能齐全,其在计量分析领域更是有着深刻影响,以至于有人一言以蔽之:“ 关于学习 Stata 的意义,大家只需知道:目前,Stata 是计量经济学,特别是微观计量经济学的主流软件。”
2 Stata 软件的安装及界面介绍
下载好的 Stata 一般是绿色版压缩包,解压好后出现图 1 的文件夹即可。选中的 Stata SE.exe 图标即为Stata 软件,双击后得到图 2 的界面则说明打开了软件。
3 、Stata 操作方法介绍
在 Stata 中既可以使用类似 EViews, SPSS 的傻瓜式菜单的操作方式,也可以使用类似 SAS 的命令、编程的操作方式。
以多元线性回归为例(见图 3),Stata 在进行回归时的三种操作方式如下:
1. 菜单式操作,即在菜单栏中选择 Statistics 选项,然后在里面选择相应的统计分析项目。此处做的是多元线性回归,那么在下拉菜单中选 Linear models and related 中的 Linear regression,然后填入相应的因变量 (price)、自变量 (mpg, eight) 即可。故只要知道统计项目的英文名称,那么使用起来还是比较方便
的;
2、命令式操作,即在 Stata 软件界面下方的 Command 命令窗口直接输入命令进行操作。由于 Stata 的命令简洁方便,所以很多用户在一开始就接受了这种操作方式。同时,在使用菜单式操作时,Stata 会在结果的上方输出对应的命令,所以这也帮助用户熟悉其命令格式。此处对于 price = β0+ β1mpg + β2weight + ε的回归模型,Stata 命令为:
. regress price mpg weight
关于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
序列相关性问题的检验与处理
序列相关性问题的检验:
首先,要保证所用的数据必须为时间序列数据。如果原数据不是时间序列数据,
则需要进行必要的处理,最常用的方法就是:
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+b*educ+c*exper+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)