[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

From |
"Lenny Stoeldraijer" <lennystoeldraijer@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: RE: difficult ML program |

Date |
Fri, 7 Mar 2008 10:52:38 +0100 |

Hi again, I think I've seen the light...(Is that also an expression in english?) If the second parameter is not reparameterized as a function of covariates, I can use /b in the ml model-part. Is that correct? I'm trying it out now, but, as Maarten mentioned, I've a lot of parameters to be estimated, so it takes some time. I've ordered the book: I would like to learn more about this. It kept me busy for some time ;) Thanks anyway and I will let you know if it worked. Best regards, Lenny 2008/3/7, Lenny Stoeldraijer <lennystoeldraijer@gmail.com>: > Hello Nick, Maarten and other statalisters, > > I will try to put my question again. Just forget everything I've written. > > Is there a way to to put the following loglikelihood into a ml-code: > D*(b+X)-exp(b)*Y > where b is the parameter to be estimated, D is a dummy variable and X > and Y are vectors. > > Hopefully, my problem is more clear this way. I don't know how else to put it. > > Every help is much appreciated. > > Best, > Lenny > > [My program was working al the time, but with a wrong function. And > the constraint I tried to add to make it correct, gave the errors.] > > 2008/3/4, Nick Cox <n.j.cox@durham.ac.uk>: > > My point was not what do you know -- everyone has to learn -- but that > > you need to show > > enough for others to make sense of your problem. > > > > I can't comment on why your program wasn't working before but now is > > working, > > as you don't say what is different. That's history, however. > > Maarten has already responded to the concrete points here. > > > > Nick > > n.j.cox@durham.ac.uk > > > > Lenny Stoeldraijer > > > > Hi Nick, > > > > The problem is that I don't have much knowledge of maximum likelihood > > estimating. I've been told that it is a duration model (hazu is then > > the hazard function and survu the survivor function). Someone asked me > > if I could program some TSP programs in Stata for the use of students > > and I succeeded for some simpler programs. This one, however, is > > running okay, but (after more than half an hour) I stop the program, > > because it does not seem to work correctly. First of all, the > > likelihoods are positive and keeps on growing (to me, this looks > > wrong). And well, it keeps on calculating something (I'm using Stata > > 10 by the way). And the last thing why I think it is not calculating > > what it is supposed to be, is that the function ua needs only one > > coefficient to be calculated, whereas my program has two (in theta1 > > and in theta2). So I need some 'trick' to let Stata know that it is > > the same coefficient (some kind of constraint maybe). The TSP formula > > looks like this: frml ua exp(exit*(lu0000a+hazu)-exp(lu0000a)*survu); > > (where it is first defined: frml exit uncc; and the function covu, lu0 > > ... lu15, hazu and survu) > > > > Thanks for your comment. Unfortunately, it was not such a simple thing > > as a space. > > > > Best, > > > > Lenny > > > > > > clear > > set memory 300m > > use fi > > gen trt39t52=tr*(t39+t52) > > capture program drop myml > > program define myml > > args lnf covu lu0 lu1 lu2 lu3 lu4 lu5 lu6 lu7 lu8 lu9 lu10 > > lu11 lu12 lu13 lu14 lu15 theta1 theta2 > > tempvar hazu survu ua > > quietly gen double `hazu' = > > `covu'+`lu0'+dtu1*`lu1'+dtu2*`lu2'+dtu3*`lu3'+dtu4*`lu4'+dtu5*`lu5'+dtu6 > > *`lu6'+dtu7*`lu7'+dtu8*`lu8'+dtu9*`lu9'+dtu10*`lu10'+dtu11*`lu11'+dtu12* > > `lu12'+dtu13*`lu13'+dtu14*`lu14'+dtu15*`lu15' > > quietly gen double `survu' = > > exp(`covu'+`lu0')*(btu0+btu1*exp(`lu1') + btu2*exp(`lu2') + > > btu3*exp(`lu3') + > > btu4*exp(`lu4')+btu5*exp(`lu5')+btu6*exp(`lu6')+btu7*exp(`lu7')+btu8*exp > > (`lu8')+btu9*exp(`lu9')+btu10*exp(`lu10')+btu11*exp(`lu11')+btu12*exp(`l > > u12')+btu13*exp(`lu13')+btu14*exp(`lu14')+btu15*exp(`lu15')) > > quietly gen double `ua' = > > exp(`theta1'+uncc*`hazu'-`theta2') > > replace `lnf' = log(`ua') > > end > > ml model lf myml (covu: age married single divorced sfrau f_marr > > f_single f_divor lehre med_educ hi_educ lwage ein_zus bc seasonal > > manuf pnon ten72 y1988 y1989 y1990 y1991 q2 q3 q4, nocons) (lu0: tr > > t39 t52 trt39t52 after0 tr_a0 t39_a0 t52_a0 t39tra0 t52tra0, nocons) > > (lu1: tr t39 t52 trt39t52 after1 tr_a1 t39_a1 t52_a1 t39tra1 t52tra1) > > (lu2: tr t39 t52 trt39t52 after2 tr_a2 t39_a2 t52_a2 t39tra2 t52tra2) > > (lu3: tr t39 t52 trt39t52 after3 tr_a3 t39_a3 t52_a3 t39tra3 t52tra3) > > (lu4: tr t39 t52 trt39t52 after4 tr_a4 t39_a4 t52_a4 t39tra4 t52tra4) > > (lu5: tr t39 t52 trt39t52 after5 tr_a5 t39_a5 t52_a5 t39tra5 t52tra5) > > (lu6: tr t39 t52 trt39t52 after6 tr_a6 t39_a6 t52_a6 t39tra6 t52tra6) > > (lu7: tr t39 t52 trt39t52 after7 tr_a7 t39_a7 t52_a7 t39tra7 t52tra7) > > (lu8: tr t39 t52 trt39t52 after8 tr_a8 t39_a8 t52_a8 t39tra8 t52tra8) > > (lu9: tr t39 t52 trt39t52 after9 tr_a9 t39_a9 t52_a9 t39tra9 t52tra9) > > (lu10: tr t39 t52 trt39t52 after10 tr_a10 t39_a10 t52_a10 t39tra10 > > t52tra10) (lu11: tr t39 t52 trt39t52 after11 tr_a11 t39_a11 t52_a11 > > t39tra11 t52tra11) (lu12: tr t39 t52 trt39t52 after12 tr_a12 t39_a12 > > t52_a12 t39tra12 t52tra12) (lu13: tr t39 t52 trt39t52 after13 tr_a13 > > t39_a13 t52_a13 t39tra13 t52tra13) (lu14: tr t39 t52 trt39t52 after14 > > tr_a14 t39_a14 t52_a14 t39tra14 t52tra14) (lu15: tr t39 t52 trt39t52 > > after15 tr_a15 t39_a15 t52_a15 t39tra15 t52tra15) (theta1: uncc) > > (theta2: `survu'), technique(bhhh) > > ml check > > ml maximize > > > > > > 2008/3/4, Nick Cox <n.j.cox@durham.ac.uk>: > > > My guess is that you need to hide less and show and explain more. > > > > > > If you -set trace on- where does the program crash? > > > > > > The error code you cite, 111, is invalid syntax, which by itself is > > > not helpful. > > > > > > replace`lnf' = log(`ua') > > > > > > would very probably not work. There needs to be a space after > > -replace-. > > > > > > > > > Nick > > > n.j.cox@durham.ac.uk > > > > > > Lenny Stoeldraijer > > > > > > I'm trying to make my own maximum likelihood model, but I can't get it > > > right. The first part looks okay (I think), but then I have to define > > > the function which is called ua, which looks like: > > > exp(uncc*(b+hazu)-exp(b)*survu), where b is the coefficient to be > > > estimated. This coefficient is thus used twice but once with an > > > exponential. So far, my code looks like this (I've left some parts > > > out): > > > > > > program define myml > > > args lnf covu lu0 lu1 lu2 ... theta1 theta2 > > > tempvar hazu survu ua > > > quietly gen double `hazu' = `covu'+`lu0'+dtu1*`lu1'+dtu2*`lu2'+... > > > quietly gen double `survu' = > > > exp(`covu'+`lu0')*(btu0+btu1*exp(`lu1')+btu2*exp(`lu2')+... > > > quietly gen double `ua' = exp(`theta1'+uncc*`hazu'-`theta2') > > > replace`lnf' = log(`ua') > > > end > > > ml model lf myml (covu: ... , nocons) (luo: ... , nocons) (lu1:...) > > > (lu2:...) ... (theta1: uncc) (theta2: `survu'), technique(bhhh) > > > > > > In the code I thus have different estimates for the b (once in theta1 > > > and once in theta2). I've tried to include a constraint (e.g. > > > b1=log(b2)), but then I get errors (111 for example). > > > > * > > * For searches and help try: > > * http://www.stata.com/support/faqs/res/findit.html > > * http://www.stata.com/support/statalist/faq > > * http://www.ats.ucla.edu/stat/stata/ > > > * * For searches and help try: * http://www.stata.com/support/faqs/res/findit.html * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/

**References**:**st: difficult ML program***From:*"Lenny Stoeldraijer" <lennystoeldraijer@gmail.com>

**Re: st: RE: difficult ML program***From:*"Lenny Stoeldraijer" <lennystoeldraijer@gmail.com>

**RE: st: RE: difficult ML program***From:*"Nick Cox" <n.j.cox@durham.ac.uk>

**Re: st: RE: difficult ML program***From:*"Lenny Stoeldraijer" <lennystoeldraijer@gmail.com>

- Prev by Date:
**Re: st: RE: RE: RE: Re: Compositional data** - Next by Date:
**Re: st: RE: difficult ML program** - Previous by thread:
**Re: st: RE: difficult ML program** - Next by thread:
**Re: st: RE: difficult ML program** - Index(es):

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