Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

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

From |
Xiang Ao <xao@hbs.edu> |

To |
"statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> |

Subject |
Re: st: RE: overidentification test after treatreg |

Date |
Mon, 25 Oct 2010 09:58:54 -0400 |

Thanks, Mark, that's a good explanation. Xiang On 10/22/2010 02:36 PM, Schaffer, Mark E wrote:

Xiang,-----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Xiang Ao Sent: 22 October 2010 19:10 To: statalist@hsphsun2.harvard.edu Subject: Re: st: RE: overidentification test after treatreg 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.In linear models, the only kind of identifying restrictions are exclusion restrictions, in which case you are right. But with treatreg, the assumption of normality is also an identifying restriction. One exclusion restriction + normality means the model is overidentified, so an overid test is possible.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.Still haven't had a chance to look at it properly. But let us know if you solve it. --MarkXiang On 10/22/2010 01:37 PM, Schaffer, Mark E wrote:Xiang,-----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Xiang Ao Sent: 22 October 2010 18:06 To: statalist@hsphsun2.harvard.edu Subject: Re: st: RE: overidentification test after treatreg Thank you, Mark, for the prompt reply. I guess myquestion is stillwhy this would tell you the robustness of instruments?It tells you only what any overidentification test tellsyou, namely,are the identifying restrictions supported by the data?The reason we can do a LR test is because of thenonlinearity of theselection 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 sincethere has tobe excluded instrument(s), otherwise it's unidentified.Not so. The standard Hansen-Sargan overid test is the samething as aGMM distance test between an overidentified model and a just-identified model. We're doing the same thing, transplanted to treatreg/probit/LR-land.In treatreg, you can have no excluded instruments simplybecause it'snonlinear. The only identification is through the normality assumption. If your rationale holds, we should be able todo this LRtest 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. --MarkThanks, Xiang On 10/22/2010 11:19 AM, Schaffer, Mark E wrote:Xiang,-----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On BehalfOf Xiang AoSent: 22 October 2010 15:10 To: statalist@hsphsun2.harvard.edu Subject: st: overidentification test after treatreg Dear Statalisters, I have a question on how to do a Sargan's test aftertreatreg. Ifound Mark Schaffer's comments on this question from 2006: http://www.stata.com/statalist/archive/2006-08/msg00804.html In the reply, Mark suggested using a LR test between afull modelwith 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 withgmm does notgenerate consistent estimates with treatreg, which I amsure is dueto my lack of knowledge on this. I post my code here; anysuggestionis 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 headroomforeign )winitial(unadjusted, independent) wmatrix(unadjusted) This is to try to estimate the same model as: treatreg turn gear_ratio length headroom,treat(foreign=gear_ratiolength 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 from2006 that youcite, 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, mpgappears in thetreatment equation (foreign) but not in the outcomeequation (turn).Second, normality is also an identifying restriction, muchin the sameway as normality can be used in a Heckman selection model as an identifying restriction. Now consider your treatreg model, but with mpg as aregressor in theoutcome equation: treatreg turn mpg, treat(foreign=mpg) This second version is just-identified, with normality asthe soleidentifying 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. Theoveridentifiedsystem 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 thelist couldcomment. Cheers, MarkBut they don't match. Thank you for your time, Xiang * * 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/* * 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/* * 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/

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

**References**:**st: overidentification test after treatreg***From:*Xiang Ao <xao@hbs.edu>

**st: RE: overidentification test after treatreg***From:*"Schaffer, Mark E" <M.E.Schaffer@hw.ac.uk>

**Re: st: RE: overidentification test after treatreg***From:*Xiang Ao <xao@hbs.edu>

**RE: st: RE: overidentification test after treatreg***From:*"Schaffer, Mark E" <M.E.Schaffer@hw.ac.uk>

**Re: st: RE: overidentification test after treatreg***From:*Xiang Ao <xao@hbs.edu>

**RE: st: RE: overidentification test after treatreg***From:*"Schaffer, Mark E" <M.E.Schaffer@hw.ac.uk>

- Prev by Date:
**RE: st: How does Stata calculate percentiles?** - Next by Date:
**st: model comparison in a complex survey data analysis setting** - Previous by thread:
**RE: st: RE: overidentification test after treatreg** - Next by thread:
**st: generate multi-level dummy** - Index(es):