Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Yonas Alem <yonas_al@yahoo.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | st: nlsur command for a six commodity demand system |
Date | Sun, 2 Jan 2011 06:51:44 -0800 (PST) |
Dear Stata Users, I'm trying to estimate a quadratic demand system of six equations but the function evaluator program I wrote is not working. When I try to run the nlsur regression, Stata generates an error message (nlsuryonquaid returned 109-verify that nlsuryonquaid is a function evaluator program). Below is the function evaluator program I wrote and I would appreciate it very much if somone can help me figure out what the problem is. Thanks, Yonas program nlsuryonquaid version 11 syntax varlist(min=12 max=12) if, at(name) tokenize `varlist' args w1 w2 w3 w4 w5 lnp1 lnp2 lnp3 lnp4 lnp5 lnp6 lnexp tempname a1 a2 a3 a4 a5 a6 scalar `a1' = `at' [1,1] scalar `a2' = `at' [1,2] scalar `a3' = `at' [1,3] scalar `a4' = `at' [1,4] scalar `a5' = `at' [1,5] scalar `a6' = 1 -`a1' - `a2' - `a3' - `a4' - `a5' tempname b1 b2 b3 b4 b5 b6 scalar `b1' = `at' [1,6] scalar `b2' = `at' [1,7] scalar `b3' = `at' [1,8] scalar `b4' = `at' [1,9] scalar `b5' = `at' [1,10] scalar `b6' = 1 -`b1' - `b2' - `b3' - `b4' - `b5' tempname g11 g12 g13 g14 g15 g16 tempname g21 g22 g23 g24 g25 g26 tempname g31 g32 g33 g34 g35 g36 tempname g41 g42 g43 g44 g45 g46 tempname g51 g52 g53 g54 g55 g56 tempname g61 g62 g63 g64 g65 g66 scalar `g11' = `at' [1,11] scalar `g12' = `at' [1,12] scalar `g13' = `at' [1,13] scalar `g14' = `at' [1,14] scalar `g15' = `at' [1,15] scalar `g16' = -`g11' - `g12' - `g13'- `g14'- `g15' scalar `g21' = `g12' scalar `g22' = `at' [1,16] scalar `g23' = `at' [1,17] scalar `g24' = `at' [1,18] scalar `g25' = `at' [1,19] scalar `g26' = -`g21' - `g22' - `g23'- `g24'- `g25' scalar `g31' = `g13' scalar `g32' = `g23' scalar `g33' = `at' [1,20] scalar `g34' = `at' [1,21] scalar `g35' = `at' [1,22] scalar `g36' = -`g31' - `g32' - `g33'- `g34'- `g35' scalar `g41' = `g14' scalar `g42' = `g24' scalar `g43' = `g34' scalar `g44' = `at' [1,23] scalar `g45' = `at' [1,24] scalar `g46' = -`g41' - `g42' - `g43'- `g44'- `g45' scalar `g51' = `g15' scalar `g52' = `g25' scalar `g53' = `g35' scalar `g54' = `g45' scalar `g55' = `at' [1,25] scalar `g56' = -`g51' - `g52' - `g53'- `g54'- `g55' scalar `g61' = `g16' scalar `g62' = `g26' scalar `g63' = `g36' scalar `g64' = `g46' scalar `g65' = `g56' scalar `g66' = -`g61' - `g62' - `g63'- `g64'- `g65' tempname l1 l2 l3 l4 l5 l6 scalar `l1' = `at'[1,26] scalar `l2' = `at'[1,27] scalar `l3' = `at'[1,28] scalar `l4' = `at'[1,29] scalar `l5' = `at'[1,30] scalar `l6' = 1 -`l1' - `l2' - `l3'- `l4'- `l5' quietly { /* generate the price index */ tempvar lnpindex gen double `lnpindex' = 5 +`a1'*`lnp1' +`a2'*`lnp2'+`a3'*`lnp3'+`a4'*`lnp4'+`a5'*`lnp5'+`a6'*`lnp6' forvalues i = 1/6 { forvalues j = 1/6 { replace `lnpindex' = `lnpindex'+ 0.5*`g`i'`j''*`lnp`i''*`lnp`j'' } } /* The b(p) term in the QUAIDS model*/ tempvar bofp gen double `bofp' = 0 forvalues i = 1/6 { replace `bofp' = `bofp' + `lnp`i''*`b`i'' } replace `bofp' = exp(`bofp') replace `w1' = `a1' + `g11'*`lnp1' + `g12'*`lnp2' + `g13'*`lnp3' + `g14'*`lnp4' + `g15'*`lnp5' + `g16'*`lnp6' + `b1'*(`lnexp' - `lnpindex') + `l1'/`bofp'*(`lnexp' - `lnpindex')^2 replace `w2' = `a2' + `g21'*`lnp1' + `g22'*`lnp2' + `g23'*`lnp3' + `g24'*`lnp4' + `g25'*`lnp5' + `g26'*`lnp6' + `b2'*(`lnexp' - `lnpindex') + `l1'/`bofp'*(`lnexp' - `lnpindex')^2 replace `w3' = `a3' + `g31'*`lnp1' + `g32'*`lnp2' + `g33'*`lnp3' + `g34'*`lnp4' + `g35'*`lnp5' + `g36'*`lnp6' + `b3'*(`lnexp' - `lnpindex') + `l1'/`bofp'*(`lnexp' - `lnpindex')^2 replace `w4' = `a4' + `g41'*`lnp1' + `g42'*`lnp2' + `g43'*`lnp3' + `g44'*`lnp4' + `g45'*`lnp5' + `g46'*`lnp6' + `b4'*(`lnexp' - `lnpindex') + `l1'/`bofp'*(`lnexp' - `lnpindex')^2 replace `w5' = `a5' + `g51'*`lnp1' + `g52'*`lnp2' + `g53'*`lnp3' + `g54'*`lnp4' + `g55'*`lnp5' + `g56'*`lnp6' + `b5'*(`lnexp' - `lnpindex') + `l1'/`bofp'*(`lnexp' - `lnpindex')^2 } end nlsuryonquaid @ w1 w2 w3 w4 w5 lnp1 lnp2 lnp3 lnp4 lnp5 lnp6 lnexp, parameters (a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 /* */ g11 g12 g13 g14 g15 g22 g32 g33 g42 g43 g44 g52 g53 g54 g55 l1 l2 l3 l4 l5) neq(5) ifgnls _____________________________________________ PPlease consider the environment before printing this email. ____________________________ * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/statalist/faq * http://www.ats.ucla.edu/stat/stata/