1. xtdpdsys是stata10以后官方发布的命令,语法格式更为简洁;而xtabond2则是Roodman(2009)发布的个人编写的命令,语法格式较为繁复。 2. xtdpdsys可以通过pre()选项将部分解释变量设定为predetermined(前定变量),亦可通过endog()选项将部分解释变量设定为内生变量;而xtabond2则只能通过gmm()选项将部分解释变量设定为内生变量,并未能支持前定变量的设定; 3. xtdpdsys执行后无法直接报告sargan统计量和AR2统计量(需要进一步使用estat sargan和estat abond 来报告这两个统计量),而xtabond2则可以,且该命令会同时报告hansen统计量。 xtabond2是默认把ivstyle里面的变量都取滞后项同时作为差分、水平方程的工具变量;xtdpdsys默认只用于差分方程。 1)最大的区别是,xtabond2将外生变量(iv中给出)的滞后项也作为了level equation的工具变量,而xtdpdsys不这么做。 好像 xtabond2可以设定内生变量和前定变量。如果x是内生变量,GMM里面填写L.X如果x是前定变量,GMM里面就填写x。 这两个命令都可以用来做系统GMM,但xtabond2更加灵活一些和手动一些,作为官方命令的xtdpdsys更加简洁。 clear set more off infile exp wks occ ind south smsa ms femunion ed blk lwage /// using 'D:软件培训资料动态面板aa.txt' drop in 1 describe summarize generate person=group(595) bysort person: generate period=group(7) * panel data definition xtset person period xtdes xtsum generate exp2=exp^2 local x1 exp exp2 wks occ ind south smsa msunion local x2 ed blk fem * panel data regression: y=lwage * x1=[1 exp exp2 wks occ ind south smsa msunion], * x2=[ed blk fem] (time-invariant regressors) xtdpdsys lwage occ ind south smsa, lags(1)maxldep(3) vce(robust) /// endogenous(ms union,lag(0,2))pre(wks,lag(1,2)) twostep estimates store ABB1 xtdpdsys lwage occ ind south smsa, lags(2)maxldep(3) vce(robust) /// endogenous(ms union,lag(0,2)) pre(wks,lag(1,2))twostep estimates store ABB2 xtdpdsys lwage occ ind south smsa, lags(3)maxldep(3) vce(robust) /// endogenous(ms union,lag(0,2))pre(wks,lag(1,2)) twostep estimates store ABB3 estimates table ABB1 ABB2 ABB3, b se t p * hypothesis testing quietly xtdpdsys lwage occ ind south smsa,lags(2) maxldep(3) /// endogenous(ms union,lag(0,2))pre(wks,lag(1,2)) twostep artest(4) estat abond // test for autocorrelation estat sargan // test for IVoveridentification xtabond2 df age age2 ed12 nwe12 perd2perd3 perd4 lnrtb3 /// dna dnk dms dhrsw dhrsh dyu2, gmm(L.(lnrtb3dms dna dnk dfu dyu2 dhrsh dhrsw), lag(3) collapse) /// iv(age age2 edCol edColp ednoHS)twostep robust /// noconstant small orthogonal art(3) *直接复制help中的例子 use http://www./data/r7/abdata.dta xtabond2 n l.n l(0/1).(w k) yr1980-yr1984, gmm(l.n w k)iv(yr1980-yr1984, passthru) noleveleq small xtabond2 n l.n l(0/1).(w k) yr1980-yr1984, gmm(l.n w k)iv(yr1980-yr1984, mz) robust twostep small h(2) xtabond2 n l(1/2).n l(0/1).w l(0/2).(k ys) yr1980-yr1984, gmm(l.n w k)iv(yr1980-yr1984) robust twostep small * Next two are equivalent, assuming id is the panel identifier ivreg2 n cap (w = k ys rec) [pw=_n], cluster(ind) orthog(rec) xtabond2 n w cap [pw=_n], iv(cap k ys, eq(level)) iv(rec, eq(level))cluster(ind) h(1) * Same for next two regress n w k xtabond2 n w k, iv(w k, eq(level)) small h(1) * And next two, assuming xtabond updated since May 2004 with updatecommand. xtabond n yr*, lags(1) pre(w, lags(1,.)) pre(k, endog) robust smallnoconstant xtabond2 n L.n w L.w k yr*, gmm(L.(w n k)) iv(yr*) noleveleq robustsmall * And next two xtdpd n L.n L(0/1).(w k) yr1978-yr1984, dgmm(w k n) lgmm(w k n)liv(yr1978-yr1984) vce(robust) two hascons xtabond2 n L.n L(0/1).(w k) yr1978-yr1984, gmm(L.(w k n))iv(yr1978-yr1984, eq(level)) h(2) robust twostep * Three ways to reduce the instrument count xtabond2 n L.n L(0/1).(w k) yr1978-yr1984, gmm(L.(w k n))iv(yr1978-yr1984, eq(level)) h(2) robust twostep pca xtabond2 n L.n L(0/1).(w k) yr1978-yr1984, gmm(L.(w k n), collapse)iv(yr1978-yr1984, eq(level)) h(2) robust twostep xtabond2 n L.n L(0/1).(w k) yr1978-yr1984, gmm(L.(w k n), lag(1 1))iv(yr1978-yr1984, eq(level)) h(2) robust twostep |
|