# Re: st: Defining variables for the ml procedure

 From Ed Blackburne To statalist@hsphsun2.harvard.edu Subject Re: st: Defining variables for the ml procedure Date Mon, 10 Oct 2005 14:22:08 -0500

```Bjorn,

I am perhaps misunderstanding your model.

Here is a code snippet you can paste into to Stata and run.

****************Begin do file********************

webuse lutkepohl

*** Estimate consumption=a+b*(c*income[_n-1]+invest)
*** The reduced form is consumption=a + d*l.income + b*investment
*** This is what we will estimate with Stata

regress consu l.income invest

*** From these estimates, we can recover parameter c.
*** Since d=b*c, we have c=d/b
*** In Stata speak this is _b[l.income]/_b[investment]

nlcom (_b[l.income]/_b[investment])

*************End do file

Let me know.

Ed

On Mon, 2005-10-10 at 13:47 -0400, bpersson@bu.edu wrote:
> Hi Ed,
>
> would be very grateful for any hints and advice you might have on how
> to use it.
>
> (As I understand it, I cannot use Option 1 because the variable Z is
> unobserved. Since it depends on the unknown coefficient c, the
> variable Z must somehow be generated as a part of (that is,
> simultaneously as) the estimation of the regression equation
>
> y = a + b*(c*Z[_n-1] + x))
>
> Please let me know if this is not clear, and thanks for your help!
>
> Best Regards
> Bjorn
>
>
>
> Quoting Ed Blackburne <blackburne@shsu.edu>:
>
> > Bjorn,
> >
> > My understanding is that you want to estimate an equation of the form
> > (it doesn't much matter whether it is Z or Z[_N-1] for this post):
> >
> > y=a+b(cZ+x)
> >
> > Is this correct?
> > If so, I see two options.
> >
> > Option 1: Estimate y=a+dZ+bx and use nlcom to recover c:
> > 	nlcom _b[Z]/_b[x]
> >
> > Option 2: You can estimate via conditional likelihood (aka profile
> > likelihoods) using the undocumented hold option of ml.
> >
> > If you would like a pointer at Option 2 let me know.
> >
> > -Ed
> >
> >
> > On Sun, 2005-10-09 at 12:59 -0400, bpersson@bu.edu wrote:
> >> Dear Statalist,
> >>
> >> I am trying to estimate a nonlinear regression equation using the ml
> >> routine, and I am having problems defining one of my input variables.
> >>  Specifically, I would like to use the recursively defined variable
> >> Z(it):
> >>
> >> Z(it) = c*Z(it-1) + X(it)
> >>
> >> as an independent variable in my regression equation.  If the
> >> coefficient "c" is known, this variable can be generated as follows:
> >>
> >> gen Z = X
> >> bysort group (time): replace Z = c * Z[_n-1] + X if _n >= 2
> >>
> >> My problem is that I would like to estimate the coefficient "c" (along
> >> with the other regression coefficients) and therefore I need to define
> >> the variable Z(it) "within" the program itself.
> >>
> >> It seems, however, as if the "by" command and the "if" command are not
> >> allowed when specifying variables in the ml programs.  I would be most
> >> grateful if anyone would have any ideas on how to do this.
> >>
> >> Thank you for your help.
> >>
> >> Best
> >> Bjorn
> >>
> >>
> >>
> >> *
> >> *   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/
>
>
>
>
>
> *
> *   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/
```