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: nlsur function evaluator program QUAIDS with demographics
From
Murat Genc <[email protected]>
To
"'[email protected]'" <[email protected]>
Subject
RE: st: nlsur function evaluator program QUAIDS with demographics
Date
Sat, 9 Mar 2013 01:49:38 +0000
Hi all,
Just a couple comments to add.
Yen, S.T., Kan, K., & Su, S-J. (2002) "Household demand for fats and oils: Two-step estimation of a censored demand." Applied Economics, 34(14), 1799-1806 argue that unlike the conventional case of additive disturbances without censoring, the deterministic component of the right-hand side of the system do not add up to unity across all equations of the system. Therefore, they say that the second step of the estimation should be based on the entire set of equations without dropping one arbitrary equation.
The same paper also points out that the conventional covariance matrix of the second-step estimator is incorrect and needs to be corrected.
I wonder if there is anyone who has estimated a demand system in Stata catering for these issues and willing to share the code for that. (Whether it is AIDS, QUAIDS, translog, etc.)
Regards
Murat
Dr M Genç
Department of Economics Research Fellow
University of Otago and Institute for the Study of Labor (IZA)
P O Box 56 Bonn, Germany
Dunedin 9054, New Zealand
_______________________________________________
E-Mail: [email protected]
Phone: +64 3 479 8644
Fax: +64 3 479 8174
Web: <www.otago.ac.nz/economics>
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of ogundarikolawole
Sent: Saturday, 9 March 2013 1:39 p.m.
To: [email protected]
Subject: RE: st: nlsur function evaluator program QUAIDS with demographics
Hi all,
I think people keep on confusing the usefulness of Poi's new command called "quaids" to reality of the economic data often used for empirical analysis of demand system. Those that understood the role of data generating process (DGP) governing any economic data before using any software are the one talking about the shortcoming of the Poi's new user free command in STATA just mentioned, especially when data is censored. The Poi's quaids in STATA cannot handle censored data but it is useful for an idea data with no problem of any censoring. So, if you are a researcher estimating demand system and your data is censored, then estimating demand elasticities using Poi's new user free command in STATA (quaids) will produce a biased results.
The best approach is to figure out with a little programming experince on how to take into account the censoring problem in the data by modify the nlsur function evaluator program QUAIDS also provided by Poi some years back. The most frequent approach is by Shonkwiler, J.S., and S.T. Yen. 1999. "Two-Step Estimation of A Censored System of Equations." American Journal of Agricultural Economics 81: 972-982.
However, a number of contributors on this STATA list has used this approach. Below is the a typical nlsur function evaluator program QUAIDS with demographics, which also take into account censoring problem in economic data posted by one of the STATA contributors some months ago.
program nlsurquaidsNNP
version 12.1
syntax varlist(min=16 max=16) if, at(name) tokenize `varlist'
args w1 w2 w3 lnp1 lnp2 lnp3 lnp4 lnm x1 x2 pdf1 pdf2 pdf3 cdf1 cdf2 cdf3 // With four goods, there are 15 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' = 1 - `a1' - `a2' - `a3'
tempname b1 b2 b3 b4
scalar `b1' = `at'[1,4]
scalar `b2' = `at'[1,5]
scalar `b3' = `at'[1,6]
scalar `b4' = -`b1' - `b2' - `b3'
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'
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'
// constant and household demographics
tempname r11 r12
tempname r21 r22
tempname r31 r32
scalar `r11' = `at'[1,16]
scalar `r12' = `at'[1,17]
scalar `r21' = `at'[1,18]
scalar `r22' = `at'[1,19]
scalar `r31' = `at'[1,20]
scalar `r32' = `at'[1,21]
// pdf
tempname d1 d2 d3
scalar `d1' = `at'[1,22]
scalar `d2' = `at'[1,23]
scalar `d3' = `at'[1,24]
// 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'
forvalues i = 1/4 {
forvalues j = 1/4 {
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/4 {
replace `bofp' = `bofp' + `lnp`i''*`b`i''
}
replace `bofp' = exp(`bofp')
// Finally, the expenditure shares for 3 of the 4 // goods (the fourth is dropped to avoid singularity)
replace `w1' = (`a1' + `g11'*`lnp1' + `g12'*`lnp2' + ///
`g13'*`lnp3' + `g14'*`lnp4' + ///
`b1'*(`lnm' - `lnpindex') + ///
`l1'/`bofp'*(`lnm' - `lnpindex')^2 + ///
`r11'*`x1' +`r12'*`x2')*`cdf1'+ ///
`d1'*`pdf1'
replace `w2' = (`a2' + `g21'*`lnp1' + `g22'*`lnp2' + ///
`g23'*`lnp3' + `g24'*`lnp4' + ///
`b2'*(`lnm' - `lnpindex') + ///
`l2'/`bofp'*(`lnm' - `lnpindex')^2 + ///
`r21'*`x1' +`r22'*`x2')*`cdf2' + ///
`d2'*`pdf2'
replace `w3' = (`a3' + `g31'*`lnp1' + `g32'*`lnp2' + ///
`g33'*`lnp3' + `g34'*`lnp4' + ///
`b3'*(`lnm' - `lnpindex') + ///
`l3'/`bofp'*(`lnm' - `lnpindex')^2 + ///
`r31'*`x1' +`r32'*`x2')*`cdf3' + ///
`d3'*`pdf3'
}
end