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]

Re: st: RE: overidentification test after treatreg

From   Xiang Ao <[email protected]>
To   "[email protected]" <[email protected]>
Subject   Re: st: RE: overidentification test after treatreg
Date   Fri, 22 Oct 2010 13:06:28 -0400

Thank you, Mark, for the prompt reply. I guess my question is still why this would tell you the robustness of instruments? The reason we can do a LR test is because of the nonlinearity of the selection process (probit). Think of a 2sls setting, we cannot do something like that since there has to be excluded instrument(s), otherwise it's unidentified. In treatreg, you can have no excluded instruments simply because it's nonlinear. The only identification is through the normality assumption. If your rationale holds, we should be able to do this LR test for any nonlinear model with endogenous regressors, as an overidentification test.

Also, do you have any idea what went wrong with my gmm codes?



On 10/22/2010 11:19 AM, Schaffer, Mark E wrote:


-----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

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} +
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,


*   For searches and help try:

*   For searches and help try:

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