Bookmark and Share

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]

Re: st: error codes returned by NL function evaluator program to use dummy variables


From   Nick Cox <njcoxstata@gmail.com>
To   "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu>
Subject   Re: st: error codes returned by NL function evaluator program to use dummy variables
Date   Fri, 21 Jun 2013 18:13:54 +0100

Also, I think  you can simplify as

ln(1/(1 + exp(foo))) =  -ln(1 + exp(foo))
Nick
njcoxstata@gmail.com


On 21 June 2013 18:04, Nick Cox <njcoxstata@gmail.com> wrote:
> On a quick read-through I noticed two bugs:
>
>  scalar `drought_c = `at'[1, 6]
>
> lacks a matching ' character.
>
>  local `++atcnt'
>
> is not what you want. It's
>
> local ++atcnt
>
> Nick
> njcoxstata@gmail.com
>
>
> On 21 June 2013 09:33, David Raitzer wrote:
>
>> I am trying to use an nl function evaluator program to run a
>> dummy-variable least squares nonlinear regression in Stata 10.1,
>> because nl returns an "expression too long" error if I try to run the
>> regression interactively.  The program that I coded is based on
>> examples posted for a production function in Stata materials, as well
>> as an example previously posted on the Statalist.
>>
>> However, it will not run, and continually returns the error "nlfe3
>> returned 198 verify that nlfe3 is a function evaluator program".
>> Other attempted permutations (where I add the panel identifier newid
>> to the list of variables) shift the error code to 198.    The code is
>> below.  Could somebody please suggest what needs to be corrected?
>
>> program nlfe3
>> version 10.1
>> syntax varlist(min=15 max=15) if, at(name)
>> args lyield lncert yearcount lnha lnirrignew drought flood  pestdum
>> blast blb herbai tungro pestai pestaiBYbph bph
>> tempname const cert year_c lnha_c irrig drought_c flood_c u blast_c
>> blb_c herb_c tungro_c insectkg bph_ins bph_c
>> tempvar kterm lterm
>> scalar `const' = `at'[1, 1]
>> scalar `cert' = `at'[1, 2]
>> scalar `year_c' = `at'[1, 3]
>> scalar `lnha_c' = `at'[1, 4]
>> scalar `irrig' = `at'[1, 5]
>> scalar `drought_c = `at'[1, 6]
>> scalar `flood_c' = `at'[1, 7]
>> scalar `u' = `at'[1, 8]
>> scalar `blast_c' = `at'[1, 9]
>> scalar `blb_c' = `at'[1, 10]
>> scalar `herb_c' = `at'[1, 11]
>> scalar `tungro_c' = `at'[1, 12]
>> scalar `insectkg' = `at'[1, 13]
>> scalar `bph_ins' = `at'[1, 14]
>> scalar `bph_c' = `at'[1, 15]
>> gen double `kterm' = `const'+`cert'*`lncert' + `year_c'*`yearcount' +
>> `lnha_c'*`lnha' +`irrig'*`lnirrignew' +`drought_c'*`drought' +
>> `flood_c'*`flood' `if'
>> gen double `lterm' = `pestdum'*ln(1/(1 + exp(`u'-(1*`blast_c'*`blast'
>> + `blb_c'*`blb' + `herb_c'*`herbai' + `tungro_c'*`tungro' +
>> `insectkg'*`pestai' +`bph_ins'*`pestaiBYbph' +`bph_c'*`bph'))))  `if'
>> replace `lyield' =  `kterm' + `lterm'  `if'
>>
>>         // Now loop over coefficients on newid indicators
>>         local atcnt = 16                 // First element of `at' for
>>                                         // newid is the sixteenth.
>>         forvalues i = 1/519 {             // 519 levels of newid
>>                 replace `lyield' = `lyield' +                         ///
>>                                 `at'[1, `atcnt']*(newid == `i') `if'
>>                 local `++atcnt'
>>         }
>>
>> end
>>
>>
>> nl fe3 @ lyield lncert yearcount lnha lnirrignew drought flood pestdum
>> blast blb herbai tungro pestai pestaiBYbph bph, nparam(533)
*
*   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–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index