[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: ml bounds
Beatrice Crozza <email@example.com>
Re: st: ml bounds
Thu, 4 Mar 2010 19:20:37 +0000
I tried to write my likelihood with the following restrictions for
following there is my code.
However, I received as error message: estimates not found, so this
means that I made a mistake in how I imposed the restrictions.
Could you please help me to understand what I am doing wrong and how
to solve the problem?
Thank you very much for your help
program define myprog
args lnf a d m e g p
tempvar ma md mm me mg mp am dm omm em
quietly gen double `am'=exp(`a')/(1+exp(`a'))
quietly gen double `dm'=exp(`d')/(1+exp(`d'))
quietly gen double `omm'=exp(`m')
quietly gen double `em'=exp(`e')
quietly gen double `ma'=1-`am'
quietly gen double `md'=1-`dm'
quietly gen double `mm'=1-`omm'
quietly gen double `me'=1-`em'
quietly gen double `mg'=1-`g'
quietly gen double `mp'=1-`p'
ml model lf myprog (a:) (d:) (m:) (e:) (g:) (p:)
ml maximize, difficult
nlcom (a: exp([am]_b[_cons])/(1+exp([am]_b[_cons])))
nlcom (d: exp([dm]_b[_cons])/(1+exp([dm]_b[_cons])))
nlcom (e: exp([em]_b[_cons]))
nlcom (m: exp([omm]_b[_cons]))
2010/3/3 E. Paul Wileyto <firstname.lastname@example.org>:
> Please be aware that bounds only applies to search, and not to maximize.
> Search looks for plausible initial values, not for the final mle.
> One way to place bounds on parameters is to replace the parameter in your
> likelihood with a function that is bounded. For example, if you want to
> make sure that your parameter A does not fall below 0, then replace it with
> A=exp(b). ml will optimize parameter b, with bounds of minus to plus
> infinity, but the parameter of interest, A, remains above 0. You can then
> recover A and the standard error for A using nlcom.
> In a similar fashion, use a logistic function to create an upper and lower
> Beatrice Crozza wrote:
>> Dear All,
>> I am doing a maximum likelihood and I would like to specify some
>> bounds for my parameters.
>> ml model lf myprog (a:) (d:) (m:) (e:) (g:) (p:)
>> ml search
>> ml maximize, difficult
>> I read on the Stata manual that my bounds should be placed after ml
>> bounds(ml_search_bounds) specifies the search bounds. The command ml
>> model issues is ml search ml_search_bounds, repeat(#). Specifying
>> search bounds is optional.
>> My bounds should be:
>> 0< e m, 0<=a d <=1
>> How should I write this after ml search?
>> Thank you very much for your help.
>> * 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/
> E. Paul Wileyto, Ph.D.
> Assistant Professor of Biostatistics
> Tobacco Use Research Center
> School of Medicine, U. of Pennsylvania
> 3535 Market Street, Suite 4100
> Philadelphia, PA 19104-3309
> Fax: 215-746-7140
> * 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: