Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: macro `if' in nonlinear least squares
From
Maarten Buis <[email protected]>
To
[email protected]
Subject
Re: st: macro `if' in nonlinear least squares
Date
Thu, 2 May 2013 17:37:56 +0200
To expand a bit on Nick's answer: the local macro `if' was returned by
the -syntax- command, see -help syntax-.
-- Maarten
On Thu, May 2, 2013 at 5:33 PM, Nick Cox <[email protected]> wrote:
> 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
> [email protected]
>
>
> On 2 May 2013 16:27, Francesca Colantuoni <[email protected]> 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/
--
---------------------------------
Maarten L. Buis
WZB
Reichpietschufer 50
10785 Berlin
Germany
http://www.maartenbuis.nl
---------------------------------
*
* 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/