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

# Re: st: macro `if' in nonlinear least squares

 From Nick Cox To "statalist@hsphsun2.harvard.edu" Subject Re: st: macro `if' in nonlinear least squares Date Thu, 2 May 2013 16:33:41 +0100

```See the help and manual entry for -nl-. The short answer is that for
generality a program must have a way of working with subsets. If you
are all the data, `if' is empty and no restriction is applied.

"Function evaluator programs must accept a varlist, an if exp, and an
option named at()
that accepts the name of a matrix.  It may optionally accept
weights as well.  Unlike
substitutable expression programs, a function evaluator program is
not declared to be
r-class.  The outline of a nlfunc_prog program is

program nlfunc_prog
version 10
syntax varlist [aw fw iw] if, at(name)
local lhs: word 1 of `varlist'
local rhs: subinstr local varlist "`lhs'" "", word
(evaluate the function at at matrix)
replace `lhs' = <the function values> `if'
end

When evaluating your function, remember to restrict the estimation
sample by using `if'."
Nick
njcoxstata@gmail.com

On 2 May 2013 16:27, Francesca Colantuoni <f.colantuoni9@gmail.com> wrote:
> I am programming a nonlinear least square regression, and I am trying
> to find the best way to do it based on variuos examples that I found
> online.
>
> In the following code, I have trouble understanding what stata does
> with the macro `if' at the end of the generate command. Would anybody
> clarify that for me? I could not find an explanation for this use of
> "if" in either [P] or [U] manual (or Google).
>
> // Some temporary variables
>     tempvar kterm lterm
>     generate double `kterm' = `delta'*`capital'^(-1*`rho') `if'
>     generate double `lterm' = (1-`delta')*`labor'^(-1*`rho') `if'
>
>     // Now fill in dependent variable
>     replace `logout' = `b0' - 1/`rho'*ln(`kterm'+`lterm') `if'
>
> Best Regards,
> Francesca
> *
> *   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/
```