Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at

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

st: RE: overidentification test after treatreg

From   "Schaffer, Mark E" <[email protected]>
To   <[email protected]>
Subject   st: RE: overidentification test after treatreg
Date   Fri, 22 Oct 2010 16:19:01 +0100


> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of Xiang Ao
> Sent: 22 October 2010 15:10
> To: [email protected]
> Subject: st: overidentification test after treatreg
> Dear Statalisters,
> I have a question on how to do a Sargan's test after 
> treatreg.  I found 
> Mark Schaffer's comments on this question from 2006:
> In the reply, Mark suggested using a LR test between a full 
> model with 
> all instruments in the second stage and a regular treatreg.  
> My question 
> is: this only tests the hypothesis that all excluded 
> instruments jointly 
> being zero, how would that tell us the robustness of instruments, as 
> Sargan's test would do in an ivreg setting?
> Mark kindly replied to my email to him and suggested posting to 
> statalist to get more inputs.
> I am thinking of using gmm to frame the treatreg problem, 
> then Jansen's 
> J would be a byproduct.  However, my code with gmm does not generate 
> consistent estimates with treatreg, which I am sure is due to 
> my lack of 
> knowledge on this.  I post my code here; any suggestion is greatly 
> appreciated.
> sysuse auto, clear
> global xb "{b1}*gear_ratio + {b2}*length + {b3}*headroom + {b0}"
> global phi "normalden($xb)"
> global Phi "normal($xb)"
> global lambda "foreign*$phi/$Phi - (1-foreign)*$phi/(1-$Phi)"
> global xb2 "{c1}*gear_ratio + {c2}*length + {c3}*headroom + {c0} + 
> {c5}*foreign"
> gmm (eq1: $lambda) (eq2: turn-$xb2), instruments(eq1: 
> gear_ratio length 
> headroom mpg)  instruments(eq2: gear_ratio length headroom  foreign ) 
> winitial(unadjusted, independent) wmatrix(unadjusted)
> This is to try to estimate the same model as:
> treatreg turn gear_ratio length headroom, treat(foreign=gear_ratio 
> length headroom mpg)

Here was my rationale for how to do an overid test using an LR
statistic.  As I wrote it in that Statalist post from 2006 that you
cite, I think I got it wrong.  Here's my next attempt:

Consider a slightly simplified version of your treatreg model:

treatreg turn, treat(foreign=mpg)

There are two overidentifying restrictions.  First, mpg appears in the
treatment equation (foreign) but not in the outcome equation (turn).
Second, normality is also an identifying restriction, much in the same
way as normality can be used in a Heckman selection model as an
identifying restriction.

Now consider your treatreg model, but with mpg as a regressor in the
outcome equation:

treatreg turn mpg, treat(foreign=mpg)

This second version is just-identified, with normality as the sole
identifying restriction.

So, the following should be an LR test of the overidentifying
restrctions in your original model:

treatreg turn, treat(foreign=mpg)
est store troverid
treatreg turn mpg, treat(foreign=mpg)
est store trjustid
lrtest troverid trjustid, df(1)

I should also note that this is a system test.  The overidentified
system is (pardon the terrible shorthand notation):

turn = a + b*foreign + c*mpg
foreign = d + e*mpg

The just-identified system is

turn = a + b*foreign
foreign = d + e*mpg

And your overid test is an LR test of c=0.

I *think* this is right, but perhaps you or others on the list could


> But they don't match.
> Thank you for your time,
> Xiang
> *
> *   For searches and help try:
> *
> *
> *

Heriot-Watt University is a Scottish charity
registered under charity number SC000278.

*   For searches and help try:

© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index