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

st: Re: Method lf evaluator code for heckman model

From   "Vincent, David" <>
To   "" <>
Subject   st: Re: Method lf evaluator code for heckman model
Date   Mon, 18 May 2009 20:06:41 +0000

I would be most grateful if someone could advise me how to code method lf for evaluating the log-likelihood function for the Heckman model. I need to compute the MLE's for a range of sample selection type models (options not available in STATA) and being new to programming, wanted to start off with this well known model. The latent variable specifications are:

yi*=x1i'b1+e1   (coded $ML_y1)
ti*=x2i'b2+e2   (coded $ML_y2)

And the code I have written is:

program dv2mle_lf
args lnf theta1 theta2 sd2 rho
tempvar A B C D 
quietly {
      gen double `A'=ln(1-normal(`theta1'))
      gen double `B'=`theta1'-`rho'*(1/`sd2')*($ML_y2-`theta2')
      gen double `C'=sqrt(1-`rho'^2)
      gen double `D'=ln(normalden(($ML_y2-`theta2')/`sd2'))
      replace `lnf'=(1-$ML_y1)*`A'+$ML_y1*ln(normal(`B'/`C'))-$ML_y1*ln(`sd2')+$ML_y1*`D'

When I type:   ml model lf dv2mle_lf (theta1: y t = x1 x2 x3) (x1 x2)  () ()   STATA reports that the log likelihood = infinity and cannot be evaluated. Any help would be gratefully appreciated!

Many thanks,

*   For searches and help try:

© Copyright 1996–2017 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index