Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: nlsur aids


From   Ana <analunhb@gmail.com>
To   statalist@hsphsun2.harvard.edu
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/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index