Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: re: 3 equations, 2 endogenous Variables, 1 endogenous variable related to


From   Kit Baum <baum@bc.edu>
To   statalist@hsphsun2.harvard.edu
Subject   st: re: 3 equations, 2 endogenous Variables, 1 endogenous variable related to
Date   Wed, 2 Dec 2009 21:36:46 -0500

<>
Some of the issues here are d-f issues; -ivreg2- and -reg3, 3sls- assume no d.f. correction. Putting 'small' and 'dfk' options on causes the reg32sls and ivreg2 columns to agree perfectly. Likewise, the iq equation is the same in the second block, and the same as the 'byhand0' in the first block.  Why does this work? Because the 3sls system is recursive, in that iq enters each of the other equations, but contains no RHS endogenous variables. Thus the iq equation can be consistently estimated with OLS.

What does not agree is 'byhand1'. The IV formula in a very simple y = a + B x + u, z as instrument for x  does not say compute xhat and throw x away. The IV estimator is (Z'X)^-1 (Z'y), in matrix terms. Both Z and X enter the equation. At the bottom of the program below I compute the correct 'by hand' estimates for the lw equation, given the restrictions you have imposed on age and kww. They are not equal to the ivreg2 (or reg2, 2sls) estimates, nor should they be given the restrictione embedded in them. If you remove the comments on the FSR reg commands, the Mata coefficients match the ivreg2/reg3,2sls perfectly.

clear
est clear
use http://fmwww.bc.edu/ec-p/data/hayashi/griliches76.dta
quietly reg3 (lw=s expr med  iq tenure) (iq=s expr med kww ) (tenure = iq s expr med age), 2sls
est store reg32sls
quietly reg3 (lw=s expr med  iq tenure) (iq=s expr med kww ) (tenure = iq s expr med age), 3sls dfk
est store reg33sls
quietly ivreg2 lw s expr med (tenure iq=kww age), first small
est store ivreg2
quietly reg iq s expr med kww // age
est store byhand0
rename iq iq_was
predict double iq
quietly reg tenure iq s expr med age // kww
est store byhand1
rename tenure tenure_was
predict double tenure
quietly reg lw s expr med tenure iq
est store byhand2
estout *, cells(b(star fmt(3)) t(par fmt(2)))

g iota = 1
tomata lw s expr med tenure iq iq_was tenure_was iota
mata:
Z=(tenure, iq, s, expr, med, iota)
X=(tenure_was, iq_was, s, expr, med, iota)
"These are the correct 2SLS coefficients for the 'byhand' approach"
"To calculate them, you still need to use the original endogenous variables"
b = invsym(Z' * X) * (Z' * lw)
b
end


Kit Baum   |   Boston College Economics & DIW Berlin   |   http://ideas.repec.org/e/pba1.html
                              An Introduction to Stata Programming  |   http://www.stata-press.com/books/isp.html
   An Introduction to Modern Econometrics Using Stata  |   http://www.stata-press.com/books/imeus.html


*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index