Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
Nick Cox <njcoxstata@gmail.com> |

To |
"statalist@hsphsun2.harvard.edu" <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/

**Follow-Ups**:**Re: st: macro `if' in nonlinear least squares***From:*Francesca Colantuoni <f.colantuoni9@gmail.com>

**Re: st: macro `if' in nonlinear least squares***From:*Maarten Buis <maartenlbuis@gmail.com>

**References**:**st: macro `if' in nonlinear least squares***From:*Francesca Colantuoni <f.colantuoni9@gmail.com>

- Prev by Date:
**st: Time-series operators and -outreg-** - Next by Date:
**Re: st: macro `if' in nonlinear least squares** - Previous by thread:
**st: macro `if' in nonlinear least squares** - Next by thread:
**Re: st: macro `if' in nonlinear least squares** - Index(es):