Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: st: RE: RE: -nlsur- AIDS
From
Nick Cox <[email protected]>
To
"'[email protected]'" <[email protected]>
Subject
RE: st: RE: RE: -nlsur- AIDS
Date
Thu, 10 Nov 2011 15:12:14 +0000
It doesn't surprise me at all. You really do need to check code like this, not just line by line by token by token and character by character.
Your program name -nlsuraidsmmmm- doesn't match the name you specify to -nlsur-, which is -aids-.
Nick
[email protected]
Ivica Rubil
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. [email protected]
www.eizg.hr
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Brian P. Poi
Sent: 10. studeni 2011 15:38
To: [email protected]
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/