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]

st: RE: -nlsur- AIDS


From   Nick Cox <n.j.cox@durham.ac.uk>
To   "'statalist@hsphsun2.harvard.edu'" <statalist@hsphsun2.harvard.edu>
Subject   st: RE: -nlsur- AIDS
Date   Thu, 10 Nov 2011 11:18:46 +0000

You haven't declared a6 or b6 to be -tempname-s. I stopped reading at that point. 

Nick 
n.j.cox@durham.ac.uk 

Ivica Rubil

I have a 5-good AIDS demand system. Below is the code for the function
evaluator program followed by the -nlsur- command. The problem is that
Stata returns the following message:

nlsuraids returned 9
verify that nlsuraidsmeso2 is a function evaluator program

I've checked the code a number of times and I don't know where's the
mistake. Is there anyone patient enough to try to find it? Thanks in
advance!

Ivica



* function evaluator program
*****************************
program nlsuraids
		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
		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 
		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' = -`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
		
		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'
		
		
		quietly {
				tempvar lnpindex
				gen double `lnpindex' = 5 + `a1'*`lnp1'
+ `a2'*`lnp2' + ///
				                            `a3'*`lnp3'
+ `a4'*`lnp4' + ///
	
`a5'*`lnp5' + `a6'*`lnp6'
					forvalues i = 1/5 {
						forvalues j = 1/5 {
							replace
`lnpindex' = `lnpindex' + 0.5*`g`i'`j''*`lnp`i''*`lnp`j''
						}
					}
				
				replace `w1' = `a1' + `g11'*`lnp1' +
`g12'*`lnp2' + `g13'*`lnp3' + ///
				                      `g14'*`lnp4' +
`g15'*`lnp5' + `g16'*`lnp6' + ///
	
`b1'*(`lnexp' - `lnpindex')
				
				replace `w2' = `a2' + `g21'*`lnp1' +
`g22'*`lnp2' + `g23'*`lnp3' + ///
				                      `g24'*`lnp4' +
`g25'*`lnp5' + `g26'*`lnp6' + ///
	
`b2'*(`lnexp' - `lnpindex')
				
				replace `w3' = `a3' + `g31'*`lnp1' +
`g32'*`lnp2' + `g33'*`lnp3' + ///
				                      `g34'*`lnp4' +
`g35'*`lnp5' + `g36'*`lnp6' + ///
	
`b3'*(`lnexp' - `lnpindex')
	            
				replace `w4' = `a4' + `g41'*`lnp1' +
`g42'*`lnp2' + `g43'*`lnp3' + ///
				                      `g44'*`lnp4' +
`g45'*`lnp5' + `g46'*`lnp6' + ///
	
`b4'*(`lnexp' - `lnpindex')
				
				replace `w5' = `a5' + `g51'*`lnp1' +
`g52'*`lnp2' + `g53'*`lnp3' + ///
				                      `g54'*`lnp4' +
`g55'*`lnp5' + `g56'*`lnp6' + ///
	
`b5'*(`lnexp' - `lnpindex')
		}
end


* -nlsur-
**********
nlsur aids @ w1 w2 w3 w4 w5 lnp1 lnp2 lnp3 lnp4 lnp5 lnp6 lnexp, ///
      ifgnls nequations(5) parameters(a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 g11
g12 g13 g14 g15 g22 g23 g24 ///
                                      g25 g33 g34 g35 g44 g45 g55)


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


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index