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 at the end of May, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: st: RE: RE: -nlsur- AIDS


From   "Ivica Rubil" <irubil@eizg.hr>
To   <statalist@hsphsun2.harvard.edu>
Subject   RE: st: RE: RE: -nlsur- AIDS
Date   Fri, 11 Nov 2011 10:20:15 +0100

Brian and Nick,

I'm totally embarassed now, but guess what happened: doesn't work even
with matched names (this time "xxx", see below). Brian tried, with fake
data, and it worked. Could the problem be in my data? I have created w1
w2 w3 w4 w5 lnp1 lnp2 lnp3 lnp4 lnp5 lnp6 lnexp and the variables do not
look problematic in any way.

The code with matched names:

		  
program nlsurxxx
		version 12
		
		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' = -`b1'-`b2'-`b3'-`b4'-`b5'
				
		tempname g11 g12 g13 g14 g15 g16
		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'
		
		tempname g21 g22 g23 g24 g25 g26
		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'
		
		tempname g31 g32 g33 g34 g35 g36
		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'
		
		tempname g41 g42 g43 g44 g45 g46
		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'
		
		tempname g51 g52 g53 g54 g55 g56
		scalar `g51' = `g15'
		scalar `g52' = `g25'
		scalar `g53' = `g35'
		scalar `g54' = `g45'
		scalar `g55' = `at'[1,25]
		scalar `g56' = -`g51'-`g52'-`g53'-`g54'-`g55'
		
		tempname g61 g62 g63 g64 g65 g66
		scalar `g61' = `g16'
		scalar `g62' = `g26'
		scalar `g63' = `g36'
		scalar `g64' = `g46'
		scalar `g65' = `g56'
		scalar `g66' = -`g61'-`g62'-`g63'-`g64'-`g65'
		
		
		
		quietly {
				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''
						}
					}
				
				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 xxx @ 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)














--
Ivica Rubil
Ekonomski institut / The Institute of Economics, Zagreb
a. Trg J. F. Kennedyja 7, 10 000 Zagreb, Croatia
t. +385-1-2362-269
f. +385-1-2335-165
e. irubil@eizg.hr
www.eizg.hr

-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Brian P. Poi
Sent: 10. studeni 2011 16:09
To: statalist@hsphsun2.harvard.edu
Subject: Re: st: RE: RE: -nlsur- AIDS

Ivica,

You've renamed your evaluator program nlsuraidsmmmm, but you are telling
-nlsur- to look for an evaluator program called nlsuraidsmesommmm:

> * -nlsur-
> nlsur aidsmesommmm @ w1 w2 w3 w4 w5 lnp1 lnp2 lnp3 lnp4 lnp5 lnp6
lnexp,
> ///

When I change the -nlsur- call to

    nlsur aidsmmmm ...

it works fine (using fake data).


Brian P. Poi
Senior Economist
StataCorp LP


Ivica Rubil wrote:
> Brian, you won't believe, but it still doesn't work!
> 
> program nlsuraidsmmmm
> 		version 12
> 		
> 		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' = -`b1'-`b2'-`b3'-`b4'-`b5'
> 				
> 		tempname g11 g12 g13 g14 g15 g16
> 		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'
> 		
> 		tempname g21 g22 g23 g24 g25 g26
> 		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'
> 		
> 		tempname g31 g32 g33 g34 g35 g36
> 		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'
> 		
> 		tempname g41 g42 g43 g44 g45 g46
> 		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'
> 		
> 		tempname g51 g52 g53 g54 g55 g56
> 		scalar `g51' = `g15'
> 		scalar `g52' = `g25'
> 		scalar `g53' = `g35'
> 		scalar `g54' = `g45'
> 		scalar `g55' = `at'[1,25]
> 		scalar `g56' = -`g51'-`g52'-`g53'-`g54'-`g55'
> 		
> 		tempname g61 g62 g63 g64 g65 g66
> 		scalar `g61' = `g16'
> 		scalar `g62' = `g26'
> 		scalar `g63' = `g36'
> 		scalar `g64' = `g46'
> 		scalar `g65' = `g56'
> 		scalar `g66' = -`g61'-`g62'-`g63'-`g64'-`g65'
> 		
> 		
> 		
> 		quietly {
> 				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''
> 						}
> 					}
> 				
> 				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 aidsmesommmm @ 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) 
> 
> --
> Ivica Rubil
> Ekonomski institut / The Institute of Economics, Zagreb
> a. Trg J. F. Kennedyja 7, 10 000 Zagreb, Croatia
> t. +385-1-2362-269
> f. +385-1-2335-165
> e. irubil@eizg.hr
> www.eizg.hr
> 
> 
> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu
> [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Brian P.
Poi
> Sent: 10. studeni 2011 15:38
> To: statalist@hsphsun2.harvard.edu
> Subject: Re: st: RE: RE: -nlsur- AIDS
> 
> Ivica,
> 
> You forgot to define g61 through g66.  Even though we drop the last
> expenditure share equation in estimation, we still need those gamma
> parameters to calculate the price index.  After the line
> 
>     scalar -`g51'-`g52'-`g53'-`g54'-`g55'
> 
> you need to add
> 
>     tempname g61 g62 g63 g64 g65 g66
>     scalar `g61' = `g16'
>     scalar `g62' = `g26'
>     scalar `g63' = `g36'
>     scalar `g64' = `g46'
>     scalar `g65' = `g56'
>     scalar `g66' = -`g61' - `g62' - `g63' - `g64' - `g65'
> 		
> Also, this line:
> 
>     scalar `b6' = 1-`b1'-`b2'-`b3'-`b4'-`b5'
> 
> isn't right; the betas should sum to zero, not one, so that line
should
> be
> 
>     scalar `b6' = -`b1'-`b2'-`b3'-`b4'-`b5'
> 
> (but in fact you don't even need the last beta to evaluate just the
> first K-1 expenditure shares, so `b6' isn't even used.)
> 
> 
> 
> Brian P. Poi
> Senior Economist
> StataCorp LP
> 
> 
> Ivica Rubil wrote:
>> Nick, I've corrected what you suggested, but it still doesn't work.
Of
>> course this is a 6-good AIDS (not a 5-good one as I said in the
> previous
>> mail).
>>
>> Here's the corrected code which still doesn't work and returns the
> same
>> error message, namely that I have to check if "aids" is really a
>> function evaluator program.
>>
>> CORRECTED CODE:
>>
>> * 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 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
>> 		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'
>> 		
>> 		tempname g21 g22 g23 g24 g25 g26
>> 		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'
>> 		
>> 		tempname g31 g32 g33 g34 g35 g36
>> 		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'
>> 		
>> 		tempname g41 g42 g43 g44 g45 g46
>> 		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'
>> 		
>> 		tempname g51 g52 g53 g54 g55 g56
>> 		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/6 {
>> 						forvalues j = 1/6 {
>> 							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/
> 
> *
> *   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/
> 
*
*   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/

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