stata考试do文件

stata考试do文件
stata考试do文件

*--------------------------Chapter 4--------------------------

*

*------------------4.1 存在异方差时的稳健估计-----

*****************************************************

*Example 8.1 Heteroscedastic Regression

insheet using tablef9-1.csv,clear

*

keep if avgexp>0 //有平均支出为零的去掉

generate incomesq=income^2

regress avgexp age ownrent income incomesq

*绘制残差

rvpplot income,xlabel(0(2)12) xline(2 4 6 8 10,lstyle(grid)) ylabel(-500(500)2000) /// yline(0 500 1000 1500,lstyle(grid))

*------------------------------------------------------------

*Example 8.2 The White Estimator

*OLS

regress avgexp age ownrent income incomesq

*Robust Standard Errors.

regress avgexp age ownrent income incomesq,vce(robust)

*注意:这里给出的稳健标准误是Davidson/MacKinnon提出的修正1,到这里就可以了。*要获得最初White稳健标准误将协方差矩阵再乘以(n-K)/n

matrix b=e(b)

matrix V=e(V)*((72-5)/72)

ereturn post b V

ereturn display //White Robust Standard Errors

*Davidson/MacKinnon修正2

regress avgexp age ownrent income incomesq,vce(hc2)

*-------Baum 6.1.2

use https://www.360docs.net/doc/3414654700.html,/data/imeus/fertil2,clear

regress ceb age agefbrth usemeth,vce(robust)

regress ceb age agefbrth usemeth,vce(cluster children)

*--------------------------------------

*Newey-West

*Example 19.4 Autocorrelation Consistent Covariance Estimation

insheet using TableF2-2.csv,clear

tsset year

*

generate t=_n

generate lnG=log(gasexp/(pop*gasp)) //蓩吖腔詬谢貞私?

generate lnY=log(income)

generate lnPG=log(gasp)

generate lnPNC=log(pnc)

generate lnPUC=log(puc)

generate lnPPT=log(ppt)

generate lnPN=log(pn)

generate lnPD=log(pd)

generate lnPS=log(ps)

*

regress lnG lnPG lnY lnPNC lnPUC

predict e,resid

tsline e,title("Autocorrelated Residuals from Gasoline Regression")

*Newey-West estimator

newey lnG lnPG lnY lnPNC lnPUC,lag(3)

*----------------------------------------------------------------------------

use https://www.360docs.net/doc/3414654700.html,/data/imeus/ukrates,clear

summarize rs r20

tsset month

regress D.rs LD.r20

display _N^(1/4)

newey D.rs LD.r20,lag(5)

*------------------------4.3 异方差的检验-----------------------

*Example 8.3 Testing for Heteroscedasticity

insheet using tablef9-1.csv,clear

keep if avgexp>0 //有平均支出为零的去掉

generate incomesq=income^2

*1.White's Test

quietly regress avgexp age ownrent income incomesq

*White 异方差检验有一个专门的程序。whitetst.通过下面的命令安装ssc install whitetst //安装White Test 程序.

whitetst

*2. Breusch–Pagan Test:

quietly regress avgexp age ownrent income incomesq

*使用estat hettest 命令,注意其选项对应于不同情形

*1.estat hettest,对因变量的拟合值进行检验

*2.estat hettest,rhs 对所有解释变量进行检验

*3.estat hettest varlist,iid 去除正态性假设的nR2得分检验

*4.estat hettest varlist,mtest 将依次估计几个自变量

estat hettest income incomesq //针对变量Income Incomesq

estat hettest income incomesq,iid

*是通过简单的附属回归获得其估计量

*Baum 6.2.1 WLS浼拌 鐨勪緥瀛?--------------

use https://www.360docs.net/doc/3414654700.html,/data/imeus/hprice2a,clear

regress lprice rooms crime ldist

estat hettest,iid

estat hettest rooms crime ldist,iid

whitetst

*Baum 6.2.1 加权最小二乘回归WLS

generate rooms2=rooms^2

regress lprice rooms crime ldist [aw=1/rooms2]

*----------------------------------------------------------------------

*Example 8.4 Multiplicative Heteroscedasticity.

insheet using tablef6-1.csv,clear

generate lnC=log(c)

generate lnQ=log(q)

generate lnQsq=lnQ^2

generate lnPf=log(pf)

*这里省略了企业和年份虚拟变量,并且将载重因素(LF)变量出现在方差项而非OLS regress lnC lnQ lnQsq lnPf //OLS regression

*Breusch-Pagan LM test or,"bpagan LF"

estat hettest lf

*

predict double e,resid

*robust std err

regress lnC lnQ lnQsq lnPf,vce(robust)

*FIGURE 8.2 Plot of Residuals Against Load Factor

twoway scatter e lf,xlabel(0.4(0.05)0.7) yline(0,lcolor(1))xline(0.45 0.5 0.55 0.6 0.65,lstyle(grid)) ///

|| function y=0.8-2*x,range(0.4 0.61) lcolor(1) lpattern(longdash) ///

|| function y=-0.8+2*x,range(0.4 0.61) lcolor(1)lpattern(longdash) legend(off) ///

title("FIGURE 8.2 Plot of Residuals Against Load Factor") xtitle("Load Factor")

*-----------FGLS----------

generate double lne2=log(e^2)

regress lne2 lf //也可以使用非线性回归直接估计exp(z'a)

predict double s2hat

generate wi=exp(-s2hat)

regress lnC lnQ lnQsq lnPf [aweight=wi]

*------------------------------------------------------------------------------

*Example 8.5 Groupwise Heteroscedasticity

*数据整理

quietly infile str20 COUNTRY YEAR LGASPCAR LINCOMEP LRPMG LCARPCAP /// using gasoline.dat,clear

drop in 1

gen ID=ceil(_n/19) // country ID

label variable COUNTRY "Name of country"

label variable YEAR "Year,1960-1978"

label variable LGASPCAR "Log of consumption per car"

label variable LINCOMEP "Log of per capita income"

label variable LRPMG "Log of real price of gasoline"

label variable LCARPCAP "Log of per capita number of cars"

label variable ID "Country"

quietly tab COUNTRY,gen(id) // generate country dummy variables

*-------

*OLS Regression

regress LGASPCAR LINCOMEP LRPMG id2-id18

predict residual,resid

scatter residual ID,ylabel(-0.4(0.2)0.8) title("OECD石油消费数据中的群组异方差") /// xline(5 10 15,lstyle(grid))

*检验所有虚拟变量联合显著性

testparm id*

*绋冲仴鏍囧噯璇?

regress LGASPCAR LINCOMEP LRPMG id2-id18,vce(robust) //OLS with Robust Std.Err regress LGASPCAR LINCOMEP LRPMG id2-id18,vce(cluster ID) //OLS with Clustered Robust Std.Err

*

*群组异方差的FGLS估计

generate ressq=residual^2 //OLS残差的平方

by ID,sort:egen s2g=mean(ressq) //(8-36) 获得每个组的估计方差

generate wi=1/s2g

regress LGASPCAR LINCOMEP LRPMG id2-id18 [aw=wi]

*----------------------------------------------------------------

*异方差的检验

quietly regress LGASPCAR LINCOMEP LRPMG id2-id18

estat hettest id2-id18 //LM test 。注意书上结果有误

*White-test 见书上的说明

predict e,resid

generate e2=e^2

quietly regress e2 id2-id18

display "White-Statistics = " e(N)*e(r2)

*---------------------------------------------------------------

*----------------4.3 序列相关-----------------------------------

*Example 19.2 Autocorrelation Induced by Misspecification of the Model

insheet using TableF2-2.csv,clear

tsset year

*

generate t=_n

generate lnG=log(gasexp/(pop*gasp)) //人均汽油消费数量

generate lnY=log(income)

generate lnPG=log(gasp)

generate lnPNC=log(pnc)

generate lnPUC=log(puc)

generate lnPPT=log(ppt)

generate lnPN=log(pn)

generate lnPD=log(pd)

generate lnPS=log(ps)

*

quietly regress lnG lnPG

predict e1,resid

tsline e1,saving(figure1,replace) subtitle("lnG={&beta}{subscript:0}+{&beta}{subscript:1}*lnPG+{&epsilon}")

quietly regress lnG lnPG lnY

predict e2,resid

tsline e2,saving(figure2,replace) subtitle("lnG={&beta}{subscript:0}+{&beta}{subscript:1}*lnPG+{&beta}{subscript:2}*lnY+{& epsilon}")

quietly regress lnG lnPG lnY lnPNC lnPUC lnPPT lnPN lnPD lnPS t

predict e3,resid

tsline e3,saving(figure3,replace) subtitle("Full Model")

quietly regress lnG lnPG lnY lnPNC lnPUC lnPPT lnPN lnPD lnPS t in 1/22

predict e4 if e(sample)==1,resid

quietly regress lnG lnPG lnY lnPNC lnPUC lnPPT lnPN lnPD lnPS t in 23/52

predict e42 if e(sample)==1,resid

replace e4=e42 in 23/52

tsline e4,saving(figure4,replace) subtitle("Seperated Model")

*合并四个残差图

graph combine figure1.gph figure2.gph figure3.gph figure4.gph,rows(2) ///

title("FIGURE 19.2 Unstandardized Residuals")

*-----------------------------------------------------------------------

*--------------自相关的检验--------------------------------------------------

*检验自相关:汽油市场

insheet using TableF2-2.csv,clear

tsset year

*

generate t=_n

generate lnG=log(gasexp/(pop*gasp)) //人均汽油消费数量

generate lnY=log(income)

generate lnPG=log(gasp)

generate lnPNC=log(pnc)

generate lnPUC=log(puc)

generate lnPPT=log(ppt)

*

*1.普通最小二乘估计

regress lnG lnY lnPG lnPNC lnPUC t

predict e,resid

*Figure 19.4 Least Squares Residuals

tsline e,title("最小二乘残差")

*Newey-West 自回归稳健标准误

newey lnG lnY lnPG lnPNC lnPUC t,lag(3)

*残差的自相关系数

corrgram e,lag(5)

*Box-Pierce Q 统计由于Box-Ljung Q的修正,基本不怎么使用,这里将计算列在下面matrix ac=r(AC)

matrix ac=ac[1,1..5]

matrix Q=ac*ac'*52

matrix list Q

*Box-Ljung Q 统计量,实际上corrgram中也已列出.

wntestq e,lag(5)

*Bresuch and Godfrey LM

quietly regress lnG lnY lnPG lnPNC lnPUC t

estat bgodfrey,lags(5)

*也可以lags(1/5),列出1-5阶每一个

*这里下面是计算的步骤,如下OLS回归和F联合检验,实际应用不需要

forvalues i=1/5 {

quietly generate e`i'=L`i'.e

replace e`i'=0 in 1/`i'

}

regress e lnY lnPG lnPNC lnPUC t e1-e5

display "Bresuch and Godfrey LM = " e(N)*e(r2)

*Durbin-Watson.注意,上面进行了一个回归。要针对初始的估计进行检验

quietly regress lnG lnY lnPG lnPNC lnPUC t

estat dwatson

*d

*-------------------------------------------------------------------------

*Baum,6.3.1 英国政府长期和短期债券利率

use https://www.360docs.net/doc/3414654700.html,/data/imeus/ukrates,clear

regress D.rs LD.r20

predict double eps,r

estat bgodfrey,lags(6)

wntestq eps

ac eps

*

*-----------------------应用:对自相关模型的估计

insheet using TableF2-2.csv,clear

tsset year

*

generate t=_n

generate lnG=log(gasexp/(pop*gasp)) //蓩吖腔詬谢貞私?

generate lnY=log(income)

generate lnPG=log(gasp)

generate lnPNC=log(pnc)

generate lnPUC=log(puc)

generate lnPPT=log(ppt)

*

prais lnG lnY lnPG lnPNC lnPUC t

*结果与书上不同。stata软件进行多次迭代,直到结果收敛,书上的结果未经迭代。

*MLE

arima lnG lnY lnPG lnPNC lnPUC t,ar(1)

*非线性估计

nl (lnG={rho=0.8}*L.lnG+{b0}*(1-{rho})+{b1}*(lnY-{rho}*L.lnY)+{b2}*(lnPG-{rho}*L.lnPG) ///

+{b3}*(lnPNC-{rho}*L.lnPNC)+{b4}*(lnPUC-{rho}*L.lnPUC)+{b5}*(t-{rho}*L.t)) /// ,variables(lnG L.lnG lnY L.lnY lnPG L.lnPG lnPNC L.lnPNC lnPUC L.lnPUC t L.t)

*-------

*------------------------Chapter 6 面板数据模型---------------

*---------------------- 为何使用面板数据---------------------------

* 面板数据的组织:

*Cornwell and Rupert(1988)年数据

insheet using tablef8-1.csv,clear

*生成一个id变量标注观测的个体

gen id=ceil(_n/7)

by id,sort:gen year=_n

xtset id year

*

summarize

list id year lwage ed in 1/20,sep(7)

xtdescribe

xtsum lwage ed fem blk

*面板数据分析的结构

*平衡和非平衡面板数据。德国医疗数据

quietly insheet using healthcare.csv,clear

by id ,sort:gen Ni=_N

collapse (count) Ni,by(id)

tab Ni

histogram Ni, freq title("Group Sizes for an Unbalanced Panel") ///

xlabel(1(1)7)

*----------------------------------------------------

*------------------------------------------------------------

*例9.1 工资方程(greene,edited 6)混合模型的面板稳健异方差

*Cornwell and Rupert(1988)年数据

insheet using tablef8-1.csv,clear

gen id=ceil(_n/7)

by id,sort:gen year=_n

xtset id year

*

generate exp2=exp^2

global xlist exp exp2 wks occ ind south smsa ms union ed fem blk

*OLS

regress lwage $xlist

*White std .err

regress lwage $xlist,vce(robust)

*cluster std.err

regress lwage $xlist,vce(cluster id)

/*bootstrap std.err

tsset,clear

*这个tsset,clear是清除掉前面xtset的设置,面板bootstrap要这一步。bootstrap,reps(100) cluster(id): regress lwage $xlist

*/

*可以使用xtreg,pa命令针对误差项可能存在的相关性进行设定。xtset id year

xtreg lwage $xlist,pa corr(ind)

xtreg lwage $xlist,pa corr(ar 2) vce(robust)

matrix list e(R)

*----------------------------------------------------

*例9.2

*组间估计量,接上例

xtreg lwage $xlist,be

*or

preserve

xtdata,be clear

regress lwage $xlist // n=595

*注意两者估计结果相同

restore

*------------------------------------------------------------

*一阶差分估计

xtset id year

regress D.(lwage $xlist),vce(cluster id) noconstant

*------------------------------------------------------------

*-------------------------6.3 固定效应模型---------------------

*Baum 9.1.1 One-Way FE MODEL

use https://www.360docs.net/doc/3414654700.html,/data/imeus/traffic,clear

xtset state year

xtdescribe

xtsum fatal beertax spircons unrate perincK state year

*FE MODEL

xtreg fatal beertax spircons unrate perincK,fe

*-------

*Example 2:LSDV估计(E.9.4) 固定效应工资方程

insheet using tablef8-1.csv,clear

gen id=ceil(_n/7)

by id,sort:gen year=_n

xtset id year

generate exp2=exp^2

global xlist exp exp2 wks occ ind south smsa ms union

*解释变量中去掉了不随时间变化的ed,fem,blk三个变量。

*使用虚拟变量估计FEM,应用中部要使用该方法

areg lwage $xlist,absorb(id) //use areg do LSDV

*应当使用xtreg命令估计FE模型

xtreg lwage $xlist,fe //FE model

*个体固定效应的值alpha

predict alphai,u

replace alphai=alphai+_b[_cons] //注意stata中FE包含常数项,因此固定效应是常数项+ui preserve

collapse (mean) alphai,by(id)

list alphai in 1/20

histogram alphai,title("Fixed Effects from Cornwell and Rupert Wage Equation") kdensity restore

*Robust std.errs

xtreg lwage $xlist,fe vce(cluster id) //Robust FEM

*应该用xtreg进行估计。

*------------------------------------------------------------

*--------固定时间与群组效应-two way fixed effects

*Two-Way FE,Baum 9.1.2

use https://www.360docs.net/doc/3414654700.html,/data/imeus/traffic,clear

xtset state year

*One Way FE MODEL

xtreg fatal beertax spircons unrate perincK,fe

*Two Way FE

quietly tabulate year,gen(yr)

*year dummy variables,7-1

xtreg fatal beertax spircons unrate perincK yr1-yr6 ,fe

testparm yr*

*Baum ,PP 198

local j 0

forvalues i=82/87 {

local ++j

rename yr`j' yr`i'

quietly replace yr`i'=yr`i'-yr7

}

xtreg fatal beertax spircons unrate perincK yr82-yr87 ,fe

testparm yr*

*RE Model Output,Baum 9.1.4

xtreg fatal beertax spircons unrate perincK ,re

*-----------------------

*Example 9.4,Greene(6)

insheet using tablef8-1.csv,clear

gen id=ceil(_n/7)

by id,sort:gen year=_n

xtset id year

generate exp2=exp^2

global xlist exp exp2 wks occ ind south smsa ms union

regress lwage $xlist,vce(cluster id) //OLS with cluster het

*Time Effects

*可以生成虚拟变量,然后使用F统计计算,F(6.4149)=191.11

quietly tab year,gen(yr)

regress lwage $xlist yr2-yr7

testparm yr*

*

*个体效应模型使用xtreg,fe,下方直接报告F(594,3561)=38.25

xtreg lwage $xlist,fe //Individul effects only

xtreg lwage $xlist,fe vce(robust)//Individul effects with robust std.err.

*利用test进行Wald检验

xtreg lwage $xlist yr*,fe

testparm yr*

*--------------------------------------------------------------

*--------------------------------------------------------------

*固定效应中不随时间变化的变量估计问题

*数据接上例

xtreg lwage $xlist ed fem blk,fe

**(1)y~x估计FE,得到ai;(2)ai对z不随时间变量进行回归,得到残差hi; *(3) y~x,z,hi估计

global zlist fem ed blk //性别、教育、种族虚拟变量

xtset id year

*(1)

xtreg lwage $xlist,fe

predict ai,u

replace ai=ai+_b[_cons]

*(2)

regress ai $zlist if year==7

predict hi,resid

*(3)

regress lwage $xlist $zlist hi

*

*------------------------- Random Effects-------------------

*

*---------------------------------------------------------------------------

*注:随机效应的结果与书上存在差异。原因在于stata 方差分解的方法与Nlogit不同。*如下例所示:

insheet using tablef10-4.csv,clear

xtset firm year

xtreg i f c,re

/*下面的是Nlogit估计随机效应的命令

import;file="e:\greene7ed\tablef10-4.csv" $

setpanel;group=firm;pds=year $

regress;lhs=i;rhs=one,f,c ;panel;random effects $

*/

*----------------------------------------------------------------------------

* Example 9.5 Testing for Random Effects

insheet using tablef8-1.csv,clear

gen id=ceil(_n/7)

by id,sort:gen year=_n

xtset id year

generate exp2=exp^2

global xlist exp exp2 wks occ ind south smsa ms union

*

regress lwage $xlist,vce(cluster id) //Pooled OLS

xtreg lwage $xlist,fe //Fixed Effects

xtreg lwage $xlist,re //Random Effects

* xttest0 实施Breusch-Pagan LM test for random effects, a test that Var(v_i)=0.

xttest0

*随机效应模型的极大似然估计

xtreg lwage $xlist,mle

**----Mundlak's approach-----

*Example 9.8 Variable Addition Test for Fixed versus Random Effects

*Hausman-Wu test.matrix.首先生成组均值变量

foreach x of varlist $xlist {

by id,sort:egen `x'bar=mean(`x')

}

global xlistbar *bar

xtreg lwage $xlist $xlistbar,re

matrix b=e(b)

matrix V=e(V)

matrix r=b[1,10..18]'

matrix V=V[10..18,10..18]

matrix H=r'*invsym(V)*r

matlist H

*

display invchi2tail(9,.05)

*use test

test expbar exp2bar wksbar occbar indbar southbar smsabar msbar unionbar *or

testparm *bar

*Mundlak’s 方法处理FE中不随时间变化的变量

xtreg lwage $xlist $xlistbar fem ed blk,re

*-----------------------------------------------------------------

*Example 9.7 Hausman Test for Fixed versus Random Effects

*数据接上

quietly xtreg lwage $xlist,fe

est store FE

quietly xtreg lwage $xlist,re

est store RE

hausman FE RE

*注意:(V_b-V_B is not positive definite)由于两个协方差矩阵的差不是正*定的。

hausman FE RE,sigmamore

*sigmamore 后缀意味着两个协方差矩阵使用相同的GLS的s2估计值。*或者使用Wu-附加变量检验,如上面Mundlak方法估计所示。

*--

*Hausman Robust Test

xtreg lwage $xlist,re

scalar theta=e(theta)

foreach x of varlist $xlist {

by id:egen mean`x'=mean(`x')

gen md`x'=`x'-mean`x'

gen red`x'=`x'-theta*mean`x'

}

global mdlist md*

global redlist red*

*

by id:egen meanlwage=mean(lwage)

gen rlwage=lwage-theta*meanlwage

*

regress rlwage $redlist $mdlist,vce(cluster id)

testparm md*

*--------------------------------------------------------

*----------------------------------------------------------------

/*Example 9.6 Estimates of the Random Effects Model

*求出来theta的值

insheet using tablef8-1.csv,clear

gen id=ceil(_n/7)

by id,sort:gen year=_n

xtset id year

generate exp2=exp^2

global xlist exp exp2 wks occ ind south smsa ms union

quietly regress lwage $xlist

scalar s2=e(rss)/e(df_r)

quietly xtreg lwage $xlist,fe

scalar s2e=e(rss)/e(df_r)

scalar s2u=s2-s2e

display s2 " "s2e " "s2u

scalar theta=1-sqrt(s2e/(s2e+7*s2u))

display "Theta = " theta

*

*利用FGLS计算随机效应,应用中不需要这样做。

global yandX lwage exp exp2 wks occ ind south smsa ms union

foreach x of varlist $yandX {

by id,sort:egen `x'bar=mean(`x')

quietly generate `x'star=`x'-theta*`x'bar

}

*随机效应

regress lwagestar expstar exp2star wksstar occstar indstar southstar ///

smsastar msstar unionstar

*/

*--------------嵌套随机效应模型(不介绍)--

*GREENE ,ed 6 P216,example 9.9

*import dataset and label variable

infile str20 STATE str20 ST_ABB YR P_CAP HWY W A TER UTIL PC GSP EMP UNEMP /// using PRODUC.txt,clear

drop in 1/1

label variable STATE "State name "

label variable ST_ABB "State abbreviation"

label variable YR "Year"

label variable P_CAP "Public capital"

label variable HWY "Highway capital"

label variable WATER "Water utility capital"

label variable UTIL "Utility capital"

label variable PC "Private capital"

label variable GSP "Gross state product"

label variable EMP "Employment"

label variable UNEMP "Unemployment rate"

*Generate log variable

global yandx GSP PC HWY WATER UTIL EMP

foreach x of varlist $yandx {

quietly generate ln`x'=log(`x')

label variable ln`x' "LOG(`x')"

}

*生成州ID

generate SID=ceil(_n/17)

*生成地区ID

generate RID=.

replace RID=1 if ST_ABB=="AL"|ST_ABB=="FL"|ST_ABB== "LA"|ST_ABB=="MS" replace RID=2 if ST_ABB=="IL"|ST_ABB=="IN"|ST_ABB== "KY"|ST_ABB=="MI" /// |ST_ABB=="MN"|ST_ABB=="OH"|ST_ABB=="WI"

replace RID=3 if ST_ABB=="DE"|ST_ABB=="MD"|ST_ABB== "NJ"|ST_ABB=="NY" /// |ST_ABB=="PA"|ST_ABB=="V A"

replace RID=4 if ST_ABB=="CO"|ST_ABB=="ID"|ST_ABB=="MT"|ST_ABB=="ND" /// |ST_ABB=="SD"|ST_ABB=="WY"

replace RID=5 if ST_ABB=="CT"|ST_ABB=="ME"|ST_ABB=="MA"|ST_ABB=="NH" /// |ST_ABB=="RI"|ST_ABB=="VT"

replace RID=6 if ST_ABB=="GA"|ST_ABB=="NC"|ST_ABB=="SC"|ST_ABB=="TN" /// |ST_ABB=="WV"

replace RID=7 if ST_ABB=="AZ"|ST_ABB=="NV"|ST_ABB=="NM"|ST_ABB=="TX" /// |ST_ABB=="UT"

replace RID=8 if ST_ABB=="AR"|ST_ABB=="IA"|ST_ABB=="KS"|ST_ABB=="MO" /// |ST_ABB=="NE"|ST_ABB=="OK"

replace RID=9 if ST_ABB=="CA"|ST_ABB=="OR"|ST_ABB=="WA"

tab RID

*Label value RID

label define REGION 1 "Gulf" 2 "Midwest" 3 "Mid Atlantic" 4 "Mountain" ///

5 "New England"

6 "South"

7 "Southwast"

8 "Tornado Alley"

9 "West Coast"

label values RID REGION

save PROD.dta,replace

*

global xlist lnPC lnHWY lnWATER lnUTIL lnEMP UNEMP

quietly regress lnGSP $xlist,vce(cluster SID)

estimates store OLS

quietly xtreg lnGSP $xlist,fe

estimates store FE

quietly xtreg lnGSP $xlist,re

estimates store RE_FGLS

estout OLS FE RE_FGLS ,cells(b se(par))

hausman FE RE_FGLS,sigmamore

xtreg lnGSP $xlist,mle //MLE 方法估计随机效应

estimates store RE_ML

scalar ll_ML=e(ll)

xtmixed lnGSP $xlist ||RID: ||SID: //嵌套随机效应模型

estimates store NESTED_RE

scalar ll_NEST=e(ll)

display "LR-test = " -2*(ll_NEST-ll_ML)

*-------------------6.4 随机参数模型---------------------

*数据接上例.OLS估计与前面相同

use PROD.dta,clear

regress lnGSP $xlist //此处未给出稳健标准误

xtset SID YR //declare panel data

xtrc lnGSP $xlist //随机系数模型

*

*图9.1 私有资本系数估计值的直方图

matrix bmat=e(beta_ps) //e(beta_ps) 是存储了所有个体估计值的矩阵,这里是个48x7矩阵matrix b2=bmat[1...,1] //提取48个州lnPC的系数

svmat b2,names(b_lnPC) //将矩阵转换成变量进行绘图

histogram b_lnPC ,bin(40) title("私有资本系数的估计量")

*

*最后一列标准误,协方差矩阵保存于e(Sigma)矩阵

matrix b=e(b)

matrix V2=e(Sigma)

ereturn post b V2

ereturn display

*---------------------------------------------------------------

*多层混合线性模型:假设one,educ,female 为随机系数变量

insheet using healthcare.csv,clear

generate income=hhninc

drop if income==0

generate loginc=log(income)

generate age2=age*age

*

xtset id year

xtmixed loginc age age2 educ female ||id:educ female

insheet using dairy.csv,clear

xtset farm year

xtmixed yit x1 x2 x3 x4 || farm:x1 x2 x3 x4

/*Nlogit 命令

?潜类别模型:3类

import;file="E:\greene7ed\dairy.csv" $

create;p1=0;p2=0;p3=0 $

namelist;cp=p1,p2,p3 $

regress;lhs=yit;rhs=one,x1,x2,x3,x4;LCM;pts=3;parameters;pds=6;Classp=cp;Group=class $ ?先验概率依赖于变量

reset $

import;file="E:\greene7ed\healthcare.csv" $

create;income=hhninc $

reject;income=0 $

create;loginc=log(income) $

setpanel;group=id;pds=year $

regress;Lhs=loginc;Rhs=one;Pts=2;LCM $

regress;Lhs=loginc;Rhs=one;Pts=2;LCM=female $

*/

*-----------------------------------------------------------------------------

**-------------Dynamic Panel Data Model

*Anderson and Hsiao IV estimator

webuse abdata,clear

xtivreg n l2.n l(0/1).w l(0/2).(k ys) yr1981-yr1984 (l.n = l3.n), fd

*xtabond command

*Panel AR(2)

insheet using tablef8-1.csv,clear

gen id=ceil(_n/7)

by id,sort:gen t=_n

xtset id t

*

xtabond lwage ,lags(2) noconstant vce(robust)

*Two-step

xtabond lwage ,lags(2) twostep noconstant vce(robust)

*-----------------------------------------------

*Example: Arellano-Bond estimator without constant term

*Arellano and Bover(1995) Dynamic Panel Regression

webuse abdata,clear

*arrellano and Bond(1991):

* n_it=rho*n_it-1+b1*w_it+b2*w_it-1+b3*k_it+b4*k_it-1+u_i+e_it

*

*two-step estimator

*gmm two-step

gmm (D.n-{rho}*LD.n-{xb:D.w LD.w D.k LD.k}),xtinstruments(n,lags(2/.)) /// instruments(D.w LD.w D.k LD.k,noconstant) winitial(xt D)

*note the warning below the output

xtabond n L(0/1).(w k),lags(1) noconstant twostep

*

xtabond n L(0/1).(w k),lags(1) noconstant twostep vce(robust)

*----------------------------------------------------------------

*Example: Wage equation

insheet using tablef8-1.csv,clear

gen id=ceil(_n/7)

by id,sort:gen t=_n

xtset id t

*Two-step

generate exp2=exp*exp

xtabond lwage wks south smsa ms fem blk exp exp2 occ ind union ed,lags(1) twostep vce(robust)

*A two-step estimator with Windmeijer bias-corrected robust VCE

xtabond lwage wks south smsa ms exp exp2 occ ind union ,lags(1) twostep vce(robust)

estat abond

estat sargan

*

*Predetermined and Endogeous variables included

xtabond lwage occ south smsa ind,lags(2) maxldep(3) pre(wks,lag(1,2)) ///

endogenous(ms,lag(0,2)) endogenous(union,lag(0,2)) twostep vce(robust)

*Specification test

estat abond

*

estat sargan

xtabond lwage occ south smsa ind,lags(2) maxldep(3) pre(wks,lag(1,2)) ///

endogenous(ms,lag(0,2)) endogenous(union,lag(0,2)) twostep

estat sargan

*-----------------------------------------------------------------------------

*SYS-GMM

xtdpdsys lwage occ south smsa ind,lags(2) maxldep(3) pre(wks,lag(1,2)) ///

endogenous(ms,lag(0,2)) endogenous(union,lag(0,2)) twostep vce(robust)

estat abond

*

xtdpdsys lwage occ south smsa ind,lags(2) maxldep(3) pre(wks,lag(1,2)) ///

endogenous(ms,lag(0,2)) endogenous(union,lag(0,2)) twostep

estat sargan

*use xtdpd to reproduce the outcome above

xtdpd L(0/2).lwage L(0/1).wks occ south smsa ind ms union,div(occ south smsa ind) /// dgmmiv(lwage,lagrange(2 4)) dgmmiv(ms union,lagrange(2 3)) dgmmiv(L.wks,lagrange(1 2)) ///

lgmmiv(lwage wks ms union) twostep vce(robust)

*

*-------More Example, help xtdpd

*

use https://www.360docs.net/doc/3414654700.html,/data/r14/abdata,clear

*xtabond ,difference gmm ,no level equation

xtabond n L(0/1).w L(0/2).(k ys) yr1980-yr1984 year,lags(2) noconstant

xtdpd L(0/2).n L(0/1).w L(0/2).(k ys) yr1980-yr1984 year,noconstant ///

div(L(0/1).w L(0/2).(k ys) yr1980-yr1984 year) dgmmiv(n)

*predetermined variables w k

xtabond n w k L(0/1).ys yr1980-yr1984 year,lags(2) pre(w,lag(1,.)) pre(k,lag(2,.)) /// vce(robust) twostep noconstant

xtdpd L(0/2).n L(0/1).(w ys) L(0/2).k yr1980-yr1984 year,div(L(0/1).ys yr1980-1984) year) /// dgmmiv(n)

*Baum 9.3

use https://www.360docs.net/doc/3414654700.html,/data/imeus/traffic,clear

xtset state year

xtabond2 fatal L.fatal spircons year,gmm(beertax spircons unrate perincK) iv(year) twostep robust noleveleq

xtdpd fatal L.fatal spircons year,dgmmiv(beertax spircons unrate perincK,lag(1 .)) div(year) noconstant twostep vce(robust)

*

xtabond2 fatal L.fatal spircons year,gmm(L.fatal beertax spircons unrate perincK) iv(year) twostep robust noleveleq

*-----------------------------------------------------------------------------

*---------------------Long Panel----------------------------------

/*

Table F10.4: Grunfeld Investment Data, 200 Yearly Observations On 10 Firms For 1935-1954 Sources: Moody's Industrial Manual, Survey of Current Business

I = Gross investment, from Moody's Industrial Manual and annual reports of corporations;

F = Value of the firm from Bank and Quotation Record and Moodyos Industrial Manual;

C = Stock of plant and equipment, from Survey of Current Business.

*/

insheet using tablef10-4.csv,clear

label variable i "Investment"

label variable c "Capital Stock"

label variable f "Firm Value"

*Scatter Plot

scatter i c, msize(medsmall) title("Plot of Investment Against Capital")

*xtpcse

xtset firm year

*Model 1:pooled OLS with i.i.d errors

xtpcse i c f ,corr(ind) independent nmk //等同于regress 命令,或xtgls i c f,panel(iid) nmk est store OLS_iid

*Model 2:pooled OLS with standard errors assuming correlation over firm

xtpcse i c f ,corr(ind)

est store OLS_cor

*Model 3:允许高阶相关(假设4阶)

ssc install xtscc

*下面三行验证存在面板相依

ssc install xtcsd

xtreg i c f,fe

xtcsd,pesaran

*

xtscc i c f,lag(4)

est store OLS_DK

*Model 4:AR1 误差项以及个体相关

xtpcse i c f,corr(ar1)

est store AR1_cor

*Model 5:FGLS 估计AR1误差项

xtgls i c f,corr(ar1) panels(iid)

est store FGLSAR1

*Model 6:FGLS 估计AR1并且个体相关

xtgls i c f,corr(ar1) panels(correlated)

est store FGLSCAR

*使用estout输出结果

ssc install estout

*

estout OLS_iid OLS_cor OLS_DK AR1_cor FGLSAR1 FGLSCAR , ///

cells(b(star fmt(%9.3f)) se(par)) collabels(none)

*

*SUREG

insheet using tablef10-4.csv,clear

label variable i "Investment"

label variable c "Capital Stock"

label variable f "Firm Value"

*

reshape wide i f c,i(year) j(firm) forvalues j=1/10 {

local eqn "`eqn' (i`j' f`j' c`j')" }

sureg `eqn',corr

相关主题
相关文档
最新文档