Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Murat Genc <murat.genc@otago.ac.nz> |
To | "'statalist@hsphsun2.harvard.edu'" <statalist@hsphsun2.harvard.edu> |
Subject | st: RE: QUAIDS |
Date | Sat, 26 Jan 2013 09:23:50 +0000 |
Hi Nigussie, I'm sure Brian will explain himself what is wrong here, but why don't you just use the 'quaids' command in Poi (2012) SJ 12-3 and include pdf and cdf variables as demographic variables as shown in the paper? I have been estimating a demand system myself recently, catering for zero budget shares. Are you sure that the way you are taking into account the bias due to zero consumption is right? I haven't come across your procedure. Murat Dr M Genç Department of Economics University of Otago P O Box 56 Dunedin 9054, New Zealand _______________________________________ -----Original Message----- From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of nigussie Tefera Sent: Saturday, 26 January 2013 9:11 p.m. To: statalist@hsphsun2.harvard.edu Subject: st: QUAIDS Dear stata list users, I am trying to modify Poi's (2008) nlsurqaids.ado incorporte household demographics and village/regional dummies in the system as well as to include commulative distribution function (CDF) and probability distribution (CDF) so as to take into account bias due to zero consumtion expenditure (observed zero consumption expenditure). But I do not seem to be able to create a function evaluator program. I suppose I am missing something obvious… Here is the program : 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 using food.dta data of Poi's (2008), I tried to run the programe but it came up with "nlsurquaidsNNP returned 198 verify that nlsurquaidsNNP is a function evaluator program" I would apperciate any suggestion or help... Nigussie * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/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/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/