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: Simultaneous Ordered Probit and Linear Equation Model, Unbalanced Data, ML Programming
From
Hendrik M <[email protected]>
To
Statalist <[email protected]>
Subject
RE: st: Simultaneous Ordered Probit and Linear Equation Model, Unbalanced Data, ML Programming
Date
Wed, 21 Sep 2011 16:52:12 +0200
Hi Maarten, hi all
I agree and hope, that Stata does not invent any values...
And yes, the 200 obs, in which y2 isn't available are missing values.
I think this isn't the problem.
if I programme:
args lnf bx1 theta1 theta2 theta3 bx2 sigmaR sigmaE sigmaER
replace `lnf' = ln(1-normal((`theta1'-x1-`bx1')/`sigmaE')) if $ML_y1==0
replace `lnf' = -ln(`sigmaR')+ln(normalden(($ML_y2-`bx2')/`sigmaR')) + ln(normal((-`bx1'-x1+`thetaE2'-`sigmaER'/`sigmaR'^2*($ML_y2-`bx2'))/sqrt(`sigmaE'^2-`sigmaER'^2/`sigmaR'^2))-normal((-`bx1'-x1+`thetaE1'-`sigmaER'/`sigmaR'^2*($ML_y2-`bx2'))/sqrt(`sigmaE'^2-`sigmaER'^2/`sigmaR'^2))) if $ML_y1==1
replace `lnf' = -ln(`sigmaR')+ln(normalden(($ML_y2-`bx2')/`sigmaR')) + ln(normal((-`bx1'-x1+`thetaE3'-`sigmaER'/`sigmaR'^2*($ML_y2-`bx2'))/sqrt(`sigmaE'^2-`sigmaER'^2/`sigmaR'^2))-normal((-`bx1'-x1+`thetaE2'-`sigmaER'/`sigmaR'^2*($ML_y2-`bx2'))/sqrt(`sigmaE'^2-`sigmaER'^2/`sigmaR'^2))) if $ML_y1==2
replace `lnf' = -ln(`sigmaR')+ln(normalden(($ML_y2-`bx2')/`sigmaR')) + ln(1-normal((-`bx1'-x1+`thetaE3'-`sigmaER'/`sigmaR'^2*($ML_y2-`bx2'))/sqrt(`sigmaE'^2-`sigmaER'^2/`sigmaR'^2))) if $ML_y1==3
Then the ML function calls all observations because all 1000 obs are available and there are no missing values for y1.
It only "replaces"/uses the observations of y2 if y1={1,2,3}. the first line should be untouched by the fact whether y2 is missing or not.
So, in fact y2 does not appear in the first "replace 'lnf'"-line, but Stata treats my ML function as this line would not exist.
I hope I did not misunderstand you. Or do you want to add i.e. "if $ML_y2!=." for the cases/obs where y2 is available ("replace"-lines 2-4)?
Happy to discuss
Hendrik
----------------------------------------
> Date: Wed, 21 Sep 2011 16:26:42 +0200
> Subject: Re: st: Simultaneous Ordered Probit and Linear Equation Model, Unbalanced Data, ML Programming
> From: [email protected]
> To: [email protected]
>
> On Wed, Sep 21, 2011 at 3:54 PM, Hendrik M wrote:
> > If I programme the function, Stata keeps on refusing to use all 1000
> > observations. It only uses 800 (all obs for which also y2 is availbale).
>
> Your likelihood (the linear part) needs y2. So what is Stata supposed
> to use for y2 in those 200 observations where you told it that you
> don't know what y2 is (i.e. assigned a missing value)? It is a good
> thing that Stata refuses to "invent" data for you.
>
> Hope this helps,
> Maarten
>
> --------------------------
> Maarten L. Buis
> Institut fuer Soziologie
> Universitaet Tuebingen
> Wilhelmstrasse 36
> 72074 Tuebingen
> Germany
>
>
> http://www.maartenbuis.nl
> --------------------------
>
> *
> * 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/