From "Martin Weiss" To Subject RE: st: Please help with maximum likelihood (method lf) Date Mon, 3 Nov 2008 13:18:37 +0100

```Most of the -trace- output is not relevant to the solution. In most cases, the 10 lines above the error and any below are most interesting...

HTH
Martin

-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Katia Bobulova
Sent: Monday, November 03, 2008 1:17 PM
To: statalist@hsphsun2.harvard.edu

Dear Marteen and Nick,

thank you very much for your suggestions.

Marteen, I tried to split my likelihood, but I am still receiving the
message that few variables are specified.

Nick, I set trace on, but I am absolutely not able to decode the
output, maybe it is too advanced for me.
The only thing that I have understood is that there is an error
198....but I don't have idea of how to solve it.

Thanks again,

Katia

2008/11/3 Nick Cox <n.j.cox@durham.ac.uk>:
> In addition earlier posts advised the use of -set trace- and queried the
> use of colons.
> If Katia searches the archives, she will find several attempts to help
> her.
>
> Nick
> n.j.cox@durham.ac.uk
>
> Maarten buis
>
> One thing that strikes me is that you haven't specified a dependent
> variable.
>
> Other than that I would split up the likelihood in smaller parts, with
> a bunch of -tempvars- (-doubles- of course), like so:
>
> tempvar part1 part2 part3 part4 part5
>
> gen double `part1' = (((`m')*(`g')+(`mu')*(`e')*(`eh')*(`p'))^bo)
> gen double `part2' = (((`m')*(`mg')+(`mu')*(`e')*(`eh')*(`mp'))^bq)
> gen double `part3' = (((`mu')*(`e')*(`eh')*(`p'))^so)
> gen double `part4' = (((`mu')*(`e')*(`eh')*(`mp'))^sq)
> gen double `part5' = (((`mu')*(`me'))^n))
> etc
>
> replace `lnf' = ln((`a')*(`d')* \\\
> `part1'*`part2'*`part3'*`part4'*`part5'+...)
>
> I would change part1 part2 etc in more substantively meaningful names.
> For example, I often create temprorary variables called num and denom
> (for the numerator and the denominator of a fraction). This does not
> change your likelihood, but it makes the code easier to read and debug.
>
> The third bit of advise I can give you is to start debugging a very
> much simplified version of your likelihood. Often when you restrict
> parameters of these likelihoods to certain values, the model collapses
> to a much simpler special cases (for which a official Stata command may
> exist). Debug your program for such a special case (and check against
> the result from the official Stata equivalent if it exists), and than
>
> Katia Bobulova
>>
>> I am trying to perform a maximum likelihood that it is a little bit
>> complicate for me.
>> I specified the model and after that I used the command ml check to
>> control that everything was fine, but I received the message that
>> there are too few variables specified.
>>
>> really need help!
>>
>> Following my program:
>>
>> program define myprogram
>> version 10.0
>> args lnf a d m e g p
>>
>> tempvar eh  mu ma me md mg mp
>>
>> quietly gen double `eh'=0.7*`e'
>> quietly gen double `mu'=1-`m'
>> quietly gen double `ma'=1-`a'
>> quietly gen double `me'=1-`e'
>> quietly gen double `md'=1-`d'
>> quietly gen double `mg'=1-`g'
>> quietly gen double `mp'=1-`p'
>>
>> quietly replace
>>
> `lnf'=ln((`a')*(`d')*((((`m')*(`g')+(`mu')*(`e')*(`eh')*(`p'))^bo)*(((`m
> ')*(`mg')+(`mu')*(`e')*(`eh')*(`mp'))^bq)*(((`mu')*(`e')*(`eh')*(`p'))^s
> o)*(((`mu')*(`e')*(`eh')*(`mp'))^sq)*(((`mu')*(`me'))^n))+(`a')*(`md')*(
> (((`mu')*(`e')*(`eh')*(`p'))^bo)*(((`mu')*(`e')*(`eh')*(`mp'))^bq)*(((`m
> ')*(`g')+(`mu')*(`e')*(`eh')*(`p'))^so)*(((`m')*(`mg')+(`mu')*(`e')*(`eh
> ')*(`mp'))^sq)*(((`mu')*(`me'))^n))+(`ma')*((((`e')*(`eh')*(`p'))^bo)*((
> (`e')*(`eh')*(`mp'))^bq)*(((`e')*(`eh')*(`p'))^so)*(((`e')*(`eh')*(`mp')
> )^sq)*((`me')^n))
>>
>> end
>>
>> ml model lf myprogram (a:) (d:) (m:) (e:) (g:) (p:)
>> ml check
>>
>> After this I receive the error message.
>
> *
> *   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/

*
*   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/
```