 Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

# Re: st: Nonlinear regression syntax

 From David Ashcraft To "statalist@hsphsun2.harvard.edu" Subject Re: st: Nonlinear regression syntax Date Sat, 19 Jan 2013 22:52:14 -0800 (PST)

```Thanks Nick, Sorry for the late response. If I calculate the algebraic expression independently (outside the model) and use the calculated number as a variable for parameter estimation using OLS method may resolve my issue and I shall get the parameter estimates for all three variables. In Stata language:

gen a= (rg*(1+exp(-gamma*(moveave-ci)))^-1)
reg rx rg a gfc, robust

Now I am not sure, if I do the above, would it resolve the nonlinearity? If it does not, what would you recommend as an alternative??

David

----- Original Message -----
From: Nick Cox <njcoxstata@gmail.com>
To: statalist@hsphsun2.harvard.edu
Cc:
Sent: Saturday, January 19, 2013 7:35:30 PM
Subject: Re: st: Nonlinear regression syntax

Thanks for this, but my answer is the same.

{rg*(1+exp(-gamma*(moveave-ci)))^-1}

is illegal, indeed meaningless, so far as -nl- is concerned.

But

nl (rx={rg}+{rg}*(1+exp(-gamma*(moveave-ci)))^-1}+{gfc})

looks legal from what you say. It can be re-written, I think, as

nl (rx={rg} * (1+ 1/(1+exp(-gamma*(moveave-ci)))+{gfc})

leaving two parameters to estimate. I haven't read the paper you cite,
but it seems to me your interest in a more complicated expression
depending partly on parameter estimates is, as it were, downstream of
this and the first job is estimating those parameters.

-nl- often needs initial values for parameters to do a good job, or
even to converge at all.

Nick

On Sat, Jan 19, 2013 at 3:18 PM, David Ashcraft
<ashcraftd@rocketmail.com> wrote:
> Thanks Nick,
>
> when I said constant in the previous e-mail, I meant that the value of gamma and ci is fixed. however, both are defined as variables. I have generated both variables by following:
>
> Woodward, G., & Anderson, H. M. (2009). Does beta react to market conditions? Estimates of “bull” and “bear” betas using a nonlinear market model with an endogenous threshold parameter. Quantitative Finance, 9(8), 913–924. doi:10.1080/14697680802595643
>
>
> In short gamma, ci, rg and moveave are variables. Complete algebraic expression that I want to solve is
> {rg*(1+exp(-gamma*(moveave-ci)))^-1} where rg is multiplied with the inverse of the expression within parenthesis. I want to estimate three parameters: rg, algebraic expression and gfc
>
> if I don't use -nl- what would be the alternatives?
> Regards
>
> David
>
>
>
> ----- Original Message -----
> From: Nick Cox <njcoxstata@gmail.com>
> To: statalist@hsphsun2.harvard.edu
> Cc:
> Sent: Saturday, January 19, 2013 4:19:16 PM
> Subject: Re: st: Nonlinear regression syntax
>
> You have
>
> {rg*(1+exp(-gamma*(moveave-ci)))^-1}
>
> That will make no sense to -nl-. The most basic syntax for braces { }
> is that braces must enclose parameter names only. There are other
> possibilities but they do not cover your syntax.
>
> {rg}*(1+exp(-gamma*(moveave-ci)))^-1
>
> would make sense if and only if the names
>
> gamma
> moveave
> ci
>
> are names of variables (or possibly names of known scalars).
>
> You need to tell us what your model is, distinguishing variables,
> known scalars if any and parameters to be estimated.
>
> Nick
>
> On Sat, Jan 19, 2013 at 12:39 PM, David Ashcraft
> <ashcraftd@rocketmail.com> wrote:
>
>> rg, algebraic expression and gfc are parameters to be estimated and that's why I used braces {}. gamma and ci are constants. in the first line: rg and moveave are variables where moveave is the quarterly moving average of rg.
>>
>> You mentioned that a brace is omitted. I do not see the omitted brace. Can you please point out the missing brace in the following?
>>
>> nl (rx={rg}+{rg*(1+exp(-gamma*(moveave-ci)))^-1}+{gfc})
>
> Nick Cox <njcoxstata@gmail.com>
>
>> Did you type _exactly_ the first line? If "rg" is a parameter to be
>> estimated, then a brace "}" has been omitted. Is "gamma" really a
>> variable as implied by your syntax?
>>
>> In general, there seems confusion here over algebraic conventions and
>> Stata rules. In algebra you can use braces { } using similar rules to
>> parentheses () and brackets []: i.e. they are all delimiters and must
>> just match and nest logically. But in -nl- expressions braces {} have
>> a special meaning to indicate parameters to be estimated and makes no
>> sense otherwise.
>>
>> Nick
>>
>> On Sat, Jan 19, 2013 at 11:12 AM, David Ashcraft
>> <ashcraftd@rocketmail.com> wrote:
>>> I want to run the following model as a non-linear regression:
>>>
>>> nl (rx={rg}+{rg*(1+exp(-gamma*(moveave-ci)))^-1}+{gfc})
>>>
>>> where rx is dependent variable. when I run this model Stata gives the  error code: r(480); starting values invalid or some RHS variables have missing values
>>>
>>>
>>> As a second option, I solved the non-linear function outside the equation by having a new variable fm={rg*(1+exp(-gamma*(moveave-ci)))^-1} and run again:
>>>
>>> nl (rx={rg}+{fm}+{gfc})
>>>
>>> Now I get the results with omitted values for fm.
>>>
>>> I don't know where is my mistake. Any help will be greatly appreciated.

*
*   For searches and help try:
*  http://www.stata.com/help.cgi?search
*  http://www.stata.com/support/faqs/resources/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/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/
```