Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Nick Cox <njcoxstata@gmail.com> |
To | "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> |
Subject | Re: st: Error 198 in function evaluator program with nl |
Date | Mon, 11 Nov 2013 19:35:02 +0000 |
The lines scalar `delta' = `at'[1,17] gen double `wterm' = ln(exp(exp({`delta'})*`v16')-1) `if' look problematic to me. The problems start because `delta' is a tempname. You may want something more like gen double `wterm' = ln(exp(exp({delta=`delta'})*`v16')-1) `if' although my wild guess is that other fixes are needed. Nick njcoxstata@gmail.com On 11 November 2013 19:11, Manuel Flores <mflores06@gmail.com> wrote: > Dear statalist users, > I'm trying to estimate a LS nonlinear model with the nl command in > Stata MP/12.1. I have a gravity model of trade, with almost 300 > variables (including country fixed effects), so I need to do it > running a FEP. As I'm having troubles with the program I started with > a shorter version of the model without the dummies, keeping just 17 > independent variables and 18 parameters. > However, I keep getting a 198 error code, and I can't realize where > the bugs are. > Thanks in advance for any help! > > Here is the program: > ------------------------------ > capture program drop nlgrav > set trace on > program nlgrav > version 12 > syntax varlist (min=18 max=18) [aw fw iw] if, at(name) > local lexp: word 1 of `varlist' > local v1: word 2 of `varlist' > local v2: word 3 of `varlist' > local v3: word 4 of `varlist' > local v4: word 5 of `varlist' > local v5: word 6 of `varlist' > local v6: word 7 of `varlist' > local v7: word 8 of `varlist' > local v8: word 9 of `varlist' > local v9: word 10 of `varlist' > local v10: word 11 of `varlist' > local v11: word 12 of `varlist' > local v12: word 13 of `varlist' > local v13: word 14 of `varlist' > local v14: word 15 of `varlist' > local v15: word 16 of `varlist' > local v16: word 17 of `varlist' > local v17: word 18 of `varlist' > // Retrieve parameters out of at matrix > tempname b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 delta bun > scalar `b0' = `at'[1,1] > scalar `b1' = `at'[1,2] > scalar `b2' = `at'[1,3] > scalar `b3' = `at'[1,4] > scalar `b4' = `at'[1,5] > scalar `b5' = `at'[1,6] > scalar `b6' = `at'[1,7] > scalar `b7' = `at'[1,8] > scalar `b8' = `at'[1,9] > scalar `b9' = `at'[1,10] > scalar `b10' = `at'[1,11] > scalar `b11' = `at'[1,12] > scalar `b12' = `at'[1,13] > scalar `b13' = `at'[1,14] > scalar `b14' = `at'[1,15] > scalar `b15' = `at'[1,16] > scalar `delta' = `at'[1,17] > scalar `bun' = `at'[1,18] > // Some temporary variables > tempvar linterm1 linterm2 linterm3 wterm heckterm > gen double `linterm1' = (`b0' + `b1'*`v1' + `b2'*`v2' + > `b3'*`v3' + `b4'*`v4' + `b5'*`v5') `if' > summarize `linterm1' > gen double `linterm2' = (`b6'*`v6' + `b7'*`v7' + `b8'*`v8' + > `b9'*`v9' + `b10'*`v10') `if' > gen double `linterm3' = (`b11'*`v11' + `b12'*`v12' + `b13'*`v13' + > `b14'*`v14' + `b15'*`v15') `if' > gen double `wterm' = ln(exp(exp({`delta'})*`v16')-1) `if' > gen double `heckterm' = (`bun'*`v17') `if' > // Compute the first part of the function > replace `lexp' = (`linterm1' + `linterm2' + `linterm3' + `wterm' + > `heckterm') `if' > end > > ------------------------------- > I'm creating a matrix with initial values: > > matrix A = J(1, 18, 0) > matrix A[1,1]=10 > matrix A[1,2]=1 > matrix A[1,17]=1 > matrix A[1,18]=1 > > And running the program with the following syntax: > > nl grav @ lexp_posit /// > ldistcap /// > border /// > island_both /// > island_to_nonisl /// > island_fr_nonisl /// > landlock_both /// > landl_to_nonldlk /// > landl_fr_nonldlk /// > comleg /// > comlang_off /// > from_heg_to_col /// > from_col_to_heg /// > comcur /// > rta /// > rel_coinc /// > z_bar_hat /// > eta_hat2 /// > , parameters(b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 > delta bun) at(A) > > > Best, > Manuel Flores > * > * 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/