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 14:09:53 -0400

Hi Mark,

Thanks for the explanation.  One other question I have on your example

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

The just-identified system is

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

is that here we have only one excluded instrument (mpg). My understanding of overidentification test is that you'll have to have multiple excluded instruments to do it. But I might be wrong.

Regarding to my gmm code, I thought about it: it could be that the two moment conditions I specified:
E(lambda*z)=0 (for probit)
E(residual*x)=0 (for second stage OLS)
They do not specify the relationship between two equations. In MLE, the two equations are related by rho (correlation between two errors). That might be problematic.


On 10/22/2010 01:37 PM, Schaffer, Mark E wrote:

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Xiang Ao
Sent: 22 October 2010 18:06
To: [email protected]
Subject: Re: st: RE: overidentification test after treatreg

Thank you, Mark, for the prompt reply.  I guess my question
is still why this would tell you the robustness of
It tells you only what any overidentification test tells you, namely,
are the identifying restrictions supported by the data?

The reason we can do a LR test is because of
the nonlinearity of the selection process (probit).
True.  The probit selection equation means there's only one way to
specify a just-identified model.

Think of
a 2sls setting, we cannot do something like that since there
has to be excluded instrument(s), otherwise it's
Not so.  The standard Hansen-Sargan overid test is the same thing as a
GMM distance test between an overidentified model and a just-identified
model.  We're doing the same thing, transplanted to

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.
True!  But I'd be interested to know if others agree.

Also, do you have any idea what went wrong with my gmm codes?
Sorry, I had only a quick look but couldn't work it out.




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

*   For searches and help try:

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