-
Login or Register
- Log in with
. which ivreg2 *! ivreg2 4.1.12 14aug2024
xtdpdgmm L(0/1).n (yr1978-yr1984) w k, model(diff) twostep nolevel nocons gmm(L.n, l(1 1)) iv(yr1978-yr1984 w k) vce(cluster id)
estimate store m1_xtdpdgmm
capture drop iv*
quietly predict iv*, iv
ivreg2 n (L.n w k yr1978-yr1984 = iv*), gmm2s cluster(id) nocons nocollin
xtdpdgmm L(0/1).n (yr1978-yr1984) w k, model(diff) twostep nolevel nocons gmm(L.n, l(1 1)) iv(yr1978- yr1984 w k) vce(cluster id) wmatrix(separate) estimate store m2_xtdpdgmm capture drop iv* quietly predict iv*, iv local iv "`r(iv)'" matrix W = e(W) matrix roweq W = "" matrix coleq W = "" matrix rownames W = `iv' matrix colnames W = `iv' ivreg2 n (L.n w k yr1978-yr1984 = iv*), cluster(id) nocons nocollin wmatrix(W)
xtdpdgmm L(0/1).n (yr1978-yr1984) w k, model(diff) twostep nolevel nocons gmm(L.n, l(1 1)) iv(yr1978- yr1984 w k) vce(cluster id) wmatrix(separate) estimate store m2_xtdpdgmm capture drop iv* quietly predict iv*, iv local iv "`r(iv)'" quietly xtdpdgmm L(0/1).n (yr1978-yr1984) w k, model(diff) nolevel nocons gmm(L.n, l(1 1)) iv(yr1978- yr1984 w k) vce(cluster id) wmatrix(separate) onestep matrix W = e(W) matrix roweq W = "" matrix coleq W = "" matrix rownames W = `iv' matrix colnames W = `iv' ivreg2 n (L.n w k yr1978-yr1984 = iv*), gmm2s cluster(id) nocons nocollin wmatrix(W)
webuse abdata, clear /* xtdpdgmm with its defaults */ xtdpdgmm L(0/1).n (yr1978- yr1984) w k, model(diff) twostep nolevel nocons gmm(L.n , l(1 1)) iv(yr1978- yr1984 w k) vce(cluster id) estimate store m1_xtdpdgmm capture drop iv* quietly predict iv*, iv ivreg2 n (L.n w k yr1978- yr1984 = iv*), gmm2s cluster(id) nocons estimate store m1_ivreg2 /* xtdpdgmm with "wmatrix(separate)" */ xtdpdgmm L(0/1).n (yr1978- yr1984) w k, model(diff) twostep nolevel nocons gmm(L.n , l(1 1)) iv(yr1978- yr1984 w k) vce(cluster id) wmatrix(separate) estimate store m2_xtdpdgmm * Create "gmm-style" instruments by hand foreach var of varlist n { di "`var'" forvalues lag = 2(1)2 { display `lag' capture drop il`lag'`var' gen il`lag'`var' = L`lag'.`var' replace il`lag'`var' = 0 if il`lag'`var' ==. foreach year of varlist yr1978- yr1984 { capture drop i`year'l`lag'`var' gen i`year'l`lag'`var' = `year' * il`lag'`var' replace i`year'l`lag'`var' = 0 if i`year'l`lag'`var' == . } drop il`lag'`var' } } sum iyr* ivreg2 D.n yr1978 - yr1984 (D.L.n D.w D.k = iyr* w k), gmm2s nocons cluster(id) estimate store m2_ivreg2 esttab m1_xtdpdgmm m1_ivreg2 m2_xtdpdgmm m2_ivreg2, order(L.n LD.n w D.w k D.k) b(7) se(8) ----------------------------------------------------------------------------- (1) (2) (3) (4) n n n D.n ---------------------------------------------------------------------------- L.n 0.5506190 0.5506191** 0.4111800 (0.30921166) (0.20419585) (0.26059471) LD.n 0.4111800* (0.18245773) w -1.0048009** -1.0048008*** -1.0111454** (0.30828038) (0.24825200) (0.33363667) D.w -1.0111454*** (0.26820416) k 0.2998862 0.2998862 0.3981729 (0.21708074) (0.15620364) (0.22582202) D.k 0.3981729* (0.16615589) yr1978 -0.0309086* -0.0309086* -0.0351301* -0.0351301** (0.01374235) (0.01249613) (0.01521336) (0.01288389) yr1979 -0.0388346* -0.0388346* -0.0433236* -0.0081935 (0.01775684) (0.01648030) (0.02045487) (0.00863804) yr1980 -0.0585632*** -0.0585632*** -0.0630416*** -0.0197180 (0.01731379) (0.01627237) (0.01833015) (0.01054987) yr1981 -0.0950787*** -0.0950787*** -0.0925442*** -0.0295026 (0.02820044) (0.02412458) (0.02471889) (0.01662232) yr1982 -0.0621763* -0.0621763* -0.0631975* 0.0293467* (0.02868215) (0.02467994) (0.02990375) (0.01438922) yr1983 -0.0079399 -0.0079399 -0.0160096 0.0471880** (0.02561728) (0.02466424) (0.03242727) (0.01520720) yr1984 0.0218494 0.0218494 0.0080898 0.0240994 (0.03371198) (0.03195472) (0.04064090) (0.01903547) ---------------------------------------------------------------------------- N 891 891 891 751 ---------------------------------------------------------------------------- Standard errors in parentheses * p<0.05, ** p<0.01, *** p<0.001
clear input float(id year iv2 iyr1979l2n) 1 1977 . 0 1 1978 -1.6176045 0 1 1979 1.6176045 1.6176045 1 1980 0 0 1 1981 0 0 1 1982 0 0 1 1983 0 0 2 1977 . 0 2 1978 -4.267163 0 2 1979 4.267163 4.267163 2 1980 0 0 2 1981 0 0 2 1982 0 0 2 1983 0 0 3 1977 . 0 3 1978 -2.952616 0 3 1979 2.952616 2.952616 3 1980 0 0 3 1981 0 0 3 1982 0 0 3 1983 0 0 4 1977 . 0 4 1978 -3.2642314 0 4 1979 3.2642314 3.2642314 4 1980 0 0 4 1981 0 0 4 1982 0 0 4 1983 0 0
xtdpdgmm L(0/1).n w k, teffects model(diff) gmm(L.n, lag(1 2)) iv(w k) nocons nolevel vce(cluster id) twostep wmatrix(separate) xtdpdgmm L(0/1).n w k, teffects model(diff) gmm(L.n, lag(1 2)) iv(w k) nocons nolevel twostep wmatrix(separate)
gmm (D.n - {xb:DL.n D.w D.k yr1978-yr1984}), xtinstruments(L.n, lags(1 2)) instruments(w k yr1978-yr1984, nocons) winitial(xt L)
webuse abdata, clear xtabond2 L(0/1).n (yr1978 - yr1984) w k, /// gmm(L.n , lag(1 2) eq(diff) passthru) iv(yr1978 - yr1984 w k, eq(diff) passthru) /// nocons nolevel cluster(id) twostep ar(4) h(1) estimate store m_xtabond2 * Replicate above results using ivreg2 exclusively * Create gmm-style instruments foreach var of varlist n { forvalues lag = 2(1)3 { capture drop il`lag'`var' gen il`lag'`var' = L`lag'.`var' replace il`lag'`var' = 0 if il`lag'`var' ==. foreach year of varlist yr1978- yr1984 { capture drop i`year'l`lag'`var' gen i`year'l`lag'`var' = `year' * il`lag'`var' replace i`year'l`lag'`var' = 0 if i`year'l`lag'`var' == . } drop il`lag'`var' } } sum iyr* * Drop all gmm-style instruments that are always "0" findname, all(@==0) drop `r(varlist)' ivreg2 D.n yr1978 - yr1984 (D.L.n D.w D.k = iyr* w k), gmm2s nocons cluster(id) estimate store m_ivreg2_gmm2s esttab m_xtabond2 m_ivreg2_gmm2s, order(L.n LD.n w D.w k D.k) b(7) se(8)
-------------------------------------------- (1) (2) n D.n -------------------------------------------- L.n 0.1248564 (0.26002198) LD.n 0.1248564 (0.12566118) w -1.0278240** (0.32938896) D.w -1.0278240*** (0.19269549) k 0.6161085* (0.25809647) D.k 0.6161085*** (0.14412866) yr1978 -0.0490880** -0.0490880*** (0.01844949) (0.01429634) yr1979 -0.0608093* -0.0117213 (0.02464175) (0.00994148) yr1980 -0.0716865*** -0.0108772 (0.02055941) (0.01055265) yr1981 -0.0870178*** -0.0153313 (0.02482253) (0.01516805) yr1982 -0.0650888* 0.0219290 (0.03236609) (0.01593615) yr1983 -0.0343555 0.0307333* (0.04061727) (0.01495625) yr1984 -0.0190336 0.0153218 (0.04712421) (0.01630749) -------------------------------------------- N 751 751 -------------------------------------------- Standard errors in parentheses * p<0.05, ** p<0.01, *** p<0.001
net install xtdpdgmm, from(http://www.kripfganz.de/stata/) replace
----------------------------------------
Test | Statistic p-value
------+---------------------------------
CLR | stat(.) = 137.16 0.0000
K | chi2(32) = 99.89 0.0000
J | chi2(13) = 42.29 0.0000
K-J | <n.a.> 0.0000
AR | chi2(44) = 142.18 0.0000
------+---------------------------------
Wald | chi2(32) = 146.58 0.0000
----------------------------------------
Leave a comment: