I'm attempting to replicate example 5 of the nlsur entry in the Stata 17 reference manual (p. 1769) using Stata 17.0 MP. This example shows how to fit a basic AIDS demand model using the nlsur commandwith a function evaluator program.
I've reviewed a similar issue raised with this example in the following Statalist post. However, the solutions provided in that post do not appear to apply here.
Running the code above yields the following error message:
Thank you very much in advance for any help on this!
I've reviewed a similar issue raised with this example in the following Statalist post. However, the solutions provided in that post do not appear to apply here.
Code:
program nlsuraids version 17.0 syntax varlist(min=8 max=8) if, at(name) tokenize `varlist' args w1 w2 w3 lnp1 lnp2 lnp3 lnp4 lnexp tempname a1 a2 a3 a4 scalar `a1' = `at'[1,1] scalar `a2' = `at'[1,2] scalar `a3' = `at'[1,3] scalar `a4' = 1 - `a1' - `a2' - `a3' tempname b1 b2 b3 scalar `b1' = `at'[1,4] scalar `b2' = `at'[1,5] scalar `b3' = `at'[1,6] tempname g11 g12 g13 g14 tempname g21 g22 g23 g24 tempname g31 g32 g33 g34 tempname g41 g42 g43 g44 scalar `g11' = `at'[1,7] scalar `g12' = `at'[1,8] scalar `g13' = `at'[1,9] scalar `g14' = -`g11'-`g12'-`g13' scalar `g21' - `g12' scalar `g22' = `at'[1,10] scalar `g23' = `at'[1,11] scalar `g24' = -`g21'-`g22'-`g23' scalar `g31' = `g13' scalar `g32' = `g23' scalar `g33' = `at'[1,12] scalar `g34' = -`g31'-`g32'-`g33' scalar `g41' = `g14' scalar `g42' = `g24' scalar `g43' = `g34' scalar `g44' = -`g41'-`g42'-`g43' qui { tempvar lnpindex gen double `lnpindex' = 5 + `a1'*`lnp1' + `a2'*`lnp2' + /// `a3'*`lnp3' + `a4'*`lnp4' forvalues i = 1/4 { forvalues j = 1/4 { replace `lnpindex' = `lnpindex' + /// 0.5*`g`i'`j''*`lnp`i''*`lnp`j'' } } replace `w1' = `a1' + `g11'*`lnp1' + `g12'*`lnp2' + /// `g13'*`lnp3' + `g14'*`lnp4' + /// `b1'*(`lnexp' - `lnpindex') replace `w2' = `a2' + `g21'*`lnp1' + `g22'*`lnp2' + /// `g23'*`lnp3' + `g24'*`lnp4' + /// `b2'*(`lnexp' - `lnpindex') replace `w3' = `a3' + `g31'*`lnp1' + `g32'*`lnp2' + /// `g33'*`lnp3' + `g34'*`lnp4' + /// `b3'*(`lnexp' - `lnpindex') } end use https://www.stata-press.com/data/r17/food nlsur aids @ w1 w2 w3 lnp1 lnp2 lnp3 lnp4 lnexp, parameters(a1 a2 a3 b1 b2 b3 g11 g12 g13 g22 g23 g33) neq(3) ifgnls
nlsuraids returned 101I've tried to insure that my code matches that in the reference manual (save for changing the variable label for "lnm" to "lnexp" to match the dataset), but I cannot figure out why I'm getting an error message. I know that a simple typo can lead to this error message--which is not very informative error message--but I have not been able to find any.
verify that nlsuraids is a function evaluator program
r(101);
Thank you very much in advance for any help on this!