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]
st: nlsur aids
From
Ana <[email protected]>
To
[email protected]
Subject
st: nlsur aids
Date
Fri, 6 May 2011 21:48:03 -0300
Dear Statalisters (in particular, Brian Poi),
My goal is to specify one AIDS model to estimate Five demand
equations. I'm suing the nlsur quaids program (changing for aids
model) based on Poi (2008).
I receive the following error message:
"nlsuraids returned 198
verify that nlsuraids is afunction evaluator program
r(198) "
Can anyone help me solve this?
Thanks a lot in advance.
Best regards,
Ana.
My model has the form:
nlsur aids @ w1 w2 w3 w4 lnp1-lnp5 lnm, ifgnls nequations(4) param(a1
a2 a3 a4 b1 b2 b3 b4 g11 g12 g13 g14 g22 g23 g24 g33 g34 g44) nolog
My program routine (based on nlsurquaids.ado) is:
program nlsuraids
version 10
syntax varlist(min=10 max=10) if, at(name)
tokenize `varlist'
args w1 w2 w3 w4 lnp1 lnp2 lnp3 lnp4 lnp5 lnm
// With four goods, there are 12 parameters that can be
// estimated, after eliminating one of the goods and
// imposing adding up, symmetry, and homogeneity
// constraints, in the QUAIDS model
// Here, we extract those parameters from the `at'
// vector, and impose constraints as we go along
// With five goods, there are 18 parameters that can be
// estimated, after eliminating one of the goods and
// imposing adding up, symmetry, and homogeneity
// constraints, in the QUAIDS model
// Here, we extract those parameters from the `at'
// vector, and impose constraints as we go along
tempname a1 a2 a3 a4
scalar `a1' = `at'[1,1]
scalar `a2' = `at'[1,2]
scalar `a3' = `at'[1,3]
scalar `a4' = `at'[1,4]
scalar `a5' = 1 - `a1' - `a2' - `a3' - `a4'
tempname b1 b2 b3 b4 b5
scalar `b1' = `at'[1,5]
scalar `b2' = `at'[1,6]
scalar `b3' = `at'[1,7]
scalar `b4' = `at'[1,8]
scalar `b5' = -`b1' - `b2' - `b3' - `b4'
tempname g11 g12 g13 g14 g15
tempname g21 g22 g23 g24 g25
tempname g31 g32 g33 g34 g35
tempname g41 g42 g43 g44 g45
tempname g51 g52 g53 g54 g55
scalar `g11' = `at'[1,9]
scalar `g12' = `at'[1,10]
scalar `g13' = `at'[1,11]
scalar `g14' = `at'[1,12]
scalar `g15' = -`g11' - `g12' - `g13' - `g14'
scalar `g21' = `g12'
scalar `g22' = `at'[1,13]
scalar `g23' = `at'[1,14]
scalar `g24' = `at'[1,15]
scalar `g25' = -`g21' - `g22' - `g23' - `g24'
scalar `g31' = `g13'
scalar `g32' = `g23'
scalar `g33' = `at'[1,16]
scalar `g34' = `at'[1,17]
scalar `g35' = -`g31' - `g32' - `g33' - `g34'
scalar `g41' = `g14'
scalar `g42' = `g24'
scalar `g43' = `g34'
scalar `g44' = `at'[1,18]
scalar `g45' = -`g41' - `g42' - `g43' - `g44'
scalar `g51' = `g15'
scalar `g52' = `g25'
scalar `g53' = `g35'
scalar `g54' = `g45'
scalar `g55' = -`g51' - `g52' - `g53' - `g54'
//tempname l1 l2 l3 l4
//scalar `l1' = `at'[1,13]
//scalar `l2' = `at'[1,14]
//scalar `l3' = `at'[1,15]
//scalar `l4' = -`l1' - `l2' - `l3'
// Okay, now that we have all the parameters, we can
// calculate the expenditure shares.
quietly {
// First get the price index
// I set a_0 = 5
tempvar lnpindex
gen double `lnpindex' = 5 + `a1'*`lnp1' + `a2'*`lnp2' ///
+ `a3'*`lnp3' + `a4'*`lnp4' + `a5'*`lnp5'
forvalues i = 1/5 {
forvalues j = 1/5 {
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/5 {
// replace `bofp' = `bofp' + `lnp`i''*`b`i''
// }
// replace `bofp' = exp(`bofp')*/
// Finally, the expenditure shares for 4 of the 5
// goods (the fourth is dropped to avoid singularity)
replace `w1' = `a1' + `g11'*`lnp1' + `g12'*`lnp2' + ///
`g13'*`lnp3' + `g14'*`lnp4' + `g15'*`lnp5' + ///
`b1'*(`lnm' - `lnpindex')
replace `w2' = `a2' + `g21'*`lnp1' + `g22'*`lnp2' + ///
`g23'*`lnp3' + `g24'*`lnp4' + `g25'*`lnp5' + ///
`b2'*(`lnm' - `lnpindex')
replace `w3' = `a3' + `g31'*`lnp1' + `g32'*`lnp2' + ///
`g33'*`lnp3' + `g34'*`lnp4' + `g35'*`lnp5' + ///
`b3'*(`lnm' - `lnpindex')
replace `w4' = `a4' + `g41'*`lnp1' + `g42'*`lnp2' + ///
`g43'*`lnp3' + `g44'*`lnp4' + `g45'*`lnp5' + ///
`b4'*(`lnm' - `lnpindex')
}
end
THANKS A LOT !
*
* 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/