Bookmark and Share

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   Francesca Colantuoni <[email protected]>
To   [email protected]
Subject   Re: st: macro `if' in nonlinear least squares
Date   Thu, 2 May 2013 11:55:24 -0400

Thanks Marteen. Actually, it appears to me that the macro `if' was not
defined previously with some restrictions:

program nlces

    version 12

    syntax varlist(min=3 max=3) [aw fw iw] if, at(name)
    local logout: word 1 of `varlist'
    local capital: word 2 of `varlist'
    local labor: word 3 of `varlist'

    // Retrieve parameters out of at
    tempname b0 rho delta
    scalar `b0' = `at'[1,1]
    scalar `rho' = `at'[1,2]
    scalar `delta' = `at'[1,3]

    // 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'

end

I am new to programming, so... Thanks a lot guys for your directions!
Francesca


On Thu, May 2, 2013 at 11:48 AM, Francesca Colantuoni
<[email protected]> wrote:
> Thanks Nick for your response. I did not find this explanation in
> [U]nl, but I have not tried -help nl-.
> If I understand correctly, unless I have other rescrictions for
> subsamples, the `if' will not matter, but it's part of the routine.
>
> Francesca
>
> On Thu, May 2, 2013 at 11:33 AM, 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/
*
*   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index