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

From |
Maarten buis <maartenbuis@yahoo.co.uk> |

To |
statalist@hsphsun2.harvard.edu |

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

Date |
Tue, 4 Mar 2008 21:14:41 +0000 (GMT) |

A quick count reveals that you are trying to estimate 187 parameters! I am not surprised that Stata is strugling. Does your model have a name? Other than duration model, which is a family of models. -- Maarten --- Lenny Stoeldraijer <lennystoeldraijer@gmail.com> wrote: > 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(`lu12')+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/ > ----------------------------------------- Maarten L. Buis Department of Social Research Methodology Vrije Universiteit Amsterdam Boelelaan 1081 1081 HV Amsterdam The Netherlands visiting address: Buitenveldertselaan 3 (Metropolitan), room Z434 +31 20 5986715 http://home.fsw.vu.nl/m.buis/ ----------------------------------------- __________________________________________________________ Sent from Yahoo! Mail. A Smarter Inbox. http://uk.docs.yahoo.com/nowyoucan.html * * 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**:**Re: st: RE: difficult ML program***From:*"Lenny Stoeldraijer" <lennystoeldraijer@gmail.com>

- Prev by Date:
**Re: st: RE: difficult ML program** - Next by Date:
**Re: st: xmelogit error message** - Previous by thread:
**Re: st: RE: difficult ML program** - Next by thread:
**st: dirifit** - Index(es):

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