Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: st: -gmm- Heckman problem
From
shetty sandeep <[email protected]>
To
stata users <[email protected]>
Subject
RE: st: -gmm- Heckman problem
Date
Wed, 19 Sep 2012 02:42:58 +0530
Hello Nick,
I am sorry about not using the initial capitals for proper nouns. I will keep that in mind.
The $mills in the previous email is a typo only in the email and not in the code. In the code it is $mil - this I define. I am pasting the full code again.
When I run the code (pasted below) I get some errors. I describe them below.
---------------------
*Main code
global xb "{b1}*tage+{b2}*sqage+{b3}*child_less_18+{b4}*marry+{b5}*faminc+{b6}*efnp+{b7}*metro+{b8}*race+{b9}*firmsize+{b0}"
global phi "normalden($xb)"
global Phi "normal($xb)"
global mil "$phi/$Phi" // calculating the Inverse Mills ratio
global a1 "($phi/($Phi*(1-$Phi)))*(trad-$Phi)" // derivative of the selection likelihood. Here trad is the dummy for observed log(wage)
//eq 2
global xb2 "{beta1}*tage+{beta2}*sqage+{beta3}*marry+{beta4}*metro+{beta5}*race+{beta6}*firmsize+{beta0}" // wage equation
//First gmm command
gmm (eq1:$a1)(eq2:lnwage-$xb2-{gamma}*($phi/$Phi)), ///
instruments(eq1: tage sqage child_less_18 marry faminc efnp metro race firmsize) ///
instruments(eq2: tage sqage marry metro race firmsize $mil) winitial(identity)
------------------------
When I run the above gmm command where instruments for the second equation includes $mil, I get the following error
normalden({b1}*tage+{b2}*sqage+{b3}*rfoklt18+{b4}*marry+{b5}*faminc+{b6}*efnp+{b7}*metro+{b8}*r
> ace+{b9}*firmsize+{b0})/normal
numlist in operator invalid
I have checked the other parts of the code and this error is mainly to do with the $mil as an instrument in the gmm command.
Secondly,
When I run the gmm code replacing $mil with $phi and $Phi as instruments as below
gmm (eq1:$a1)(eq2:lnwage-$xb2-{gamma}*($phi/$Phi)), ///
instruments(eq1: tage sqage rfoklt18 marry faminc efnp metro race firmsize) ///
instruments(eq2: tage sqage marry metro race firmsize $phi $Phi) winitial(identity)
I get the following error as "{ Invalid name"
I would like to know why is this the case and how should I specify the Inverse Mills ratio ($mil) as an instrument in the -gmm- command?
Thank you for any help.
----------------------------------------
> From: [email protected]
> To: [email protected]
> Subject: Re: st: -gmm- heckman problem
> Date: Tue, 18 Sep 2012 21:02:20 +0100
>
> According to this, you define $mil, but don't use it, and try to use
> $mills, but don't define it. Otherwise put, what you are showing us
> appears to be incomplete at best, or even incorrect. Even if that's
> typos as far as you are concerned, nevertheless it's hard to figure
> out what you expect us to figure out if you don't show us code that
> should be expected to work.
>
> Pedantry corner: Heckman is a
> major figure, and Mills was a minor figure; either way their names get
> initial capitals.
>
> Nick
>
>
>
> On 18 Sep 2012, at 20:42, shetty sandeep <[email protected]> wrote:
>
>
>> I am trying to estimate a heckman wage model using gmm. But I am
>> facing a problem with the stata -gmm- command. I consistently get an
>> error as "{ invalid name". The inverse mills ratio in the second
>> stage moment condition seems to be the problem. My code is pasted
>> below. It is likely that I may have some conceptual issues with gmm
>> heckman. Any help is greatly appreciated.
>>
>> ~~~~~~~~~~~~code~~~~~~~~~~
>> global xb "{b1}*tage+{b2}*sqage+{b3}*child18+{b4}*marry+{b5}*faminc+
>> {b6}*famsize+{b7}*metro+{b8}*race+{b9}*firmsize+{b0}" //>0
>> global phi "normalden($xb)" //>0
>> global Phi "normal($xb)" //>0
>> global mil "$phi/$Phi" //>0
>> global a1 "($phi/($Phi*(1-$Phi)))*(trad-$Phi)" // derivative of the
>> selection likelihood
>> //eq 2
>> global xb2 "{beta1=0.02}*tage+{beta2=-0.0004}*sqage+{beta3=-0.007}
>> *marry+{beta4}*metro+{beta5}*race+{beta6=1}*firmsize+{beta0=1}" //
>> wage equation
>> gmm (eq1: $a1)(eq2: lwr1-$xb2-{gamma}*($phi/$Phi)), ///
>> instruments(eq1: tage sqage child18 marry faminc famsize metro race
>> firmsize) ///
>> instruments(eq2: tage sqage marry metro race firmsize $phi $Phi)
>> winitial(identity)
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> I have also tried using $mills as an instrument in which case I get
>> an error as "numlist in operator invalid". I figured out that the
>> division operator "/ " in instruments option of gmm is reserved for
>> lags.
> *
> * 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/