Bookmark and Share

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: QUAIDS


From   nigussie Tefera <[email protected]>
To   "[email protected]" <[email protected]>
Subject   Re: st: QUAIDS
Date   Sat, 26 Jan 2013 12:19:09 -0800 (PST)

Dear Poi and Murat,
 
Thanks a lot, indeed.
 
Dear Poi, once I have corrected for the omitted /// the program run as you said.
 
I didn't know that you already developed 'quaids" command in the statat but just checked it now. It is much easier and very simply to run. I would like to thank you very much for simplifying demand estimation techniques. Your quaids.ado includes household demographic variables in system of demand estimation. This is really a very good progress. However, I am not sure whether it helps to incorporate consistent two-step (CTS) estimation procedure so as to control for any bias for zero consumption expenditure it was suggested by Shonkwiler and Yen (1999) (univariate approaches) and later on modified by Yen,Kan, and Su (2002) (multivariate approaches).
 
Dear Murat, I am trying to employ the consistent two-step (CTS) estimation procedure for a system of equations with limited variables, proposed by Shonkwiler and Yen (1999), to account for zero expenditure shares resulting from missing values. The first step of CTS procedure involves a probit regression to determine the probability of consumption and hence predicting CDF and PDF. The predicted CDF and PDF is included in the second step while estimating QUAIDS. 
 
Best
 
Nigussie
 
 
 
----- Original Message -----
From: Brian P. Poi <[email protected]>
To: [email protected]
Cc: 
Sent: Saturday, January 26, 2013 6:24 PM
Subject: Re: st: QUAIDS

On 01/26/2013 02:10 AM, nigussie Tefera wrote:
> 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
>

Nigussie,

Murat is correct: try using the -quaids- command instead.  It's much easier to use!  Just type in

    . findit quaids

and click on the link for the article that appeared in SJ-12-3.  The help file will get you started.

Having said that, in the -replace- statements at the bottom of your program, you omitted the /// on the penultimate line of each one.  If I change

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

to

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

and likewise for the other two -replace- statements, your program does run.

    -- Brian Poi
    -- [email protected]
*
*  For searches and help try:
*  http://www.stata.com/help.cgi?searchhttp://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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index