Could somebody find out why I am getting a problem in my elasticity estimation. It says "elasm1:_b invalid name". Couldn't figure out the exact reason. Model is running well though.
set more off
*set trace on
program nlsuraids
version 14.0
syntax varlist(min=24 max=24) if, at(name)
tokenize `varlist'
args w1 w2 w3 w4 w5 lnp1 lnp2 lnp3 lnp4 lnp5 lnp6 lnm z1 z2 pdf1 pdf2 pdf3 pdf4 pdf5 cdf1 cdf2 cdf3 cdf4 cdf5
tempname a1 a2 a3 a4 a5 a6
scalar `a1' = `at'[1,1]
scalar `a2' = `at'[1,2]
scalar `a3' = `at'[1,3]
scalar `a4' = `at'[1,4]
scalar `a5' = `at'[1,5]
scalar `a6' = 1-`a1'-`a2'-`a3'-`a4'-`a5'
************************************************** ********
tempname b1 b2 b3 b4 b5 b6
scalar `b1' = `at'[1,6]
scalar `b2' = `at'[1,7]
scalar `b3' = `at'[1,8]
scalar `b4' = `at'[1,9]
scalar `b5' = `at'[1,10]
scalar `b6' = -`b1'-`b2'-`b3'-`b4'-`b5'
************************************************** ********
tempname g11 g12 g13 g14 g15 g16
tempname g21 g22 g23 g24 g25 g26
tempname g31 g32 g33 g34 g35 g36
tempname g41 g42 g43 g44 g45 g46
tempname g51 g52 g53 g54 g55 g56
tempname g61 g62 g63 g64 g65 g66
************************************************** ******
scalar `g11' = `at'[1,11]
scalar `g12' = `at'[1,12]
scalar `g13' = `at'[1,13]
scalar `g14' = `at'[1,14]
scalar `g15' = `at'[1,15]
scalar `g16' = -`g11'-`g12'-`g13'-`g14'-`g15'
************************************************** *******
scalar `g21' = `g12'
scalar `g22' = `at'[1,16]
scalar `g23' = `at'[1,17]
scalar `g24' = `at'[1,18]
scalar `g25' = `at'[1,19]
scalar `g26' = -`g21'-`g22'-`g23'-`g24'-`g25'
************************************************** *******
scalar `g31' = `g13'
scalar `g32' = `g23'
scalar `g33' = `at'[1,20]
scalar `g34' = `at'[1,21]
scalar `g35' = `at'[1,22]
scalar `g36' = -`g31'-`g32'-`g33'-`g34'-`g35'
************************************************** *******
scalar `g41' = `g14'
scalar `g42' = `g24'
scalar `g43' = `g34'
scalar `g44' = `at'[1,23]
scalar `g45' = `at'[1,24]
scalar `g46' = -`g41'-`g42'-`g43'-`g44'-`g45'
************************************************** ****************
scalar `g51' = `g15'
scalar `g52' = `g25'
scalar `g53' = `g35'
scalar `g54' = `g45'
scalar `g55' = `at'[1,25]
scalar `g56' = -`g51'-`g52'-`g53'-`g54'-`g55'
************************************************** ***************
scalar `g61' = `g16'
scalar `g62' = `g26'
scalar `g63' = `g36'
scalar `g64' = `g46'
scalar `g65' = `g56'
scalar `g66' = -`g61'-`g62'-`g63'-`g64'-`g65'
************************************************** ***************
tempname l1 l2 l3 l4 l5 l6
scalar `l1' = `at'[1,26]
scalar `l2' = `at'[1,27]
scalar `l3' = `at'[1,28]
scalar `l4' = `at'[1,29]
scalar `l5' = `at'[1,30]
scalar `l6' = -`l1'-`l2'-`l3'-`l4'-`l5'
**********Household demographics************************************** *
tempname eta11 eta21
tempname eta12 eta22
tempname eta13 eta23
tempname eta14 eta24
tempname eta15 eta25
tempname eta16 eta26
scalar `eta11' = `at'[1,31]
scalar `eta12' = `at'[1,32]
scalar `eta13' = `at'[1,33]
scalar `eta14' = `at'[1,34]
scalar `eta15' = `at'[1,35]
scalar `eta16' = - `eta11'-`eta12'-`eta13'-`eta14'-`eta15'
scalar `eta21' = `at'[1,36]
scalar `eta22' = `at'[1,37]
scalar `eta23' = `at'[1,38]
scalar `eta24' = `at'[1,39]
scalar `eta25' = `at'[1,40]
scalar `eta26' = - `eta21'-`eta22'-`eta23'-`eta24'-`eta25'
************************************************** ********************************
tempname d1 d2 d3 d4 d5
scalar `d1' = `at'[1,41]
scalar `d2' = `at'[1,42]
scalar `d3' = `at'[1,43]
scalar `d4' = `at'[1,44]
scalar `d5' = `at'[1,45]
************************************************
quietly {
tempvar lnpindex
gen double `lnpindex' = 5 + `a1'*`lnp1' + `a2'*`lnp2' + `a3'*`lnp3' + `a4'*`lnp4' + `a5'*`lnp5' + `a6'*`lnp6'
forvalues i = 1/6 {
forvalues j = 1/6 {
replace `lnpindex' = `lnpindex' + 0.5*`g`i'`j''*`lnp`i''*`lnp`j''
}
}
**** The b(p,z) term in the QUAIDS model:
tempvar bofp
gen double `bofp' = 0
forvalues i = 1/6 {
replace `bofp' = `bofp' + `lnp`i''*`b`i''
}
replace `bofp' = exp(`bofp')
************************************************** ***************************
replace `w1' = (`a1' + `g11'*`lnp1' + `g12'*`lnp2' + `g13'*`lnp3' + `g14'*`lnp4' + `g15'*`lnp5' + `g16'*`lnp6' + ///
`b1'*(`lnm' - `lnpindex') + `l1'/`bofp'*(`lnm' - `lnpindex')^2 + `z1'*`eta11' + `z2'*`eta21')*`cdf1' + `d1'*`pdf1'
replace `w2' = (`a2' + `g21'*`lnp1' + `g22'*`lnp2' + `g23'*`lnp3' + `g24'*`lnp4' + `g25'*`lnp5' + `g26'*`lnp6' + ///
`b2'*(`lnm' - `lnpindex') + `l2'/`bofp'*(`lnm' - `lnpindex')^2 + `z1'*`eta12' + `z2'*`eta22')*`cdf2' + `d2'*`pdf2'
replace `w3' = (`a3' + `g31'*`lnp1' + `g32'*`lnp2' + `g33'*`lnp3' + `g34'*`lnp4' + `g35'*`lnp5' + `g36'*`lnp6' + ///
`b3'*(`lnm' - `lnpindex') + `l3'/`bofp'*(`lnm' - `lnpindex')^2 + `z1'*`eta13' + `z2'*`eta23')*`cdf3' + `d3'*`pdf3'
replace `w4' = (`a4' + `g41'*`lnp1' + `g42'*`lnp2' + `g43'*`lnp3' + `g44'*`lnp4' + `g45'*`lnp5' + `g46'*`lnp6' + ///
`b4'*(`lnm' - `lnpindex') + `l4'/`bofp'*(`lnm' - `lnpindex')^2 + `z1'*`eta14' + `z2'*`eta24')*`cdf4' + `d4'*`pdf4'
replace `w5' = (`a5' + `g51'*`lnp1' + `g52'*`lnp2' + `g53'*`lnp3' + `g54'*`lnp4' + `g55'*`lnp5' + `g56'*`lnp6' + ///
`b5'*(`lnm' - `lnpindex') + `l5'/`bofp'*(`lnm' - `lnpindex')^2 + `z1'*`eta15' + `z2'*`eta25')*`cdf5' + `d5'*`pdf5'
}
end
nlsur aids @ w1 w2 w3 w4 w5 lnp1 lnp2 lnp3 lnp4 lnp5 lnp6 lnm z1 z2 ///
pdf1 pdf2 pdf3 pdf4 pdf5 cdf1 cdf2 cdf3 cdf4 cdf5, ifgnls neq(5) parameters(a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 g11 g12 g13 ///
g14 g15 g22 g23 g24 g25 g33 g34 g35 g44 g45 g55 l1 l2 l3 l4 l5 ///
eta11 eta12 eta13 eta14 eta15 eta21 eta22 eta23 eta24 eta25 d1 d2 d3 d4 d5)
est store quaids
set more off
*set trace on
*set tracedepth 4
quietly {
foreach x of varlist w* lnp* lnm {
sum `x'
scalar `x'mean=r(mean)
}
* Price indexes
glo asum "_b[a1]*lnp1mean"
forv i=2(1)6 {
glo asum "${asum} + _b[a`i']*lnp`i'mean"
}
glo gsum ""
forv i=1(1)6 {
forv j=1(1)6 {
glo gsum "${gsum} + 0.5*_b[g`i'`j']*lnp`i'mean*lnp`j'mean"
}
}
glo ap "5.0 + ${asum} ${gsum}"
glo bp "_b[b1]*lnp1mean"
forv i=2(1)6 {
glo bp "${bp} + _b[b`i']*lnp`i'mean"
}
glo bp "(exp(${bp}))"
* Mus
forv i=1(1)6 {
glo mu`i' "_b[b`i'] + 2*_b[l`i']/${bp}*(lnmmean-(${ap}))"
}
forv j=1(1)6 {
glo gsum2`j' ""
forv k=1(1)6 {
glo gsum2`j' "${gsum2`j'} + _b[g`j'`k']*lnp`k'mean"
}
}
}
nlcom (a1:_b[/a1])(a2:_b[/a2])(a3:_b[/a3])(a4:_b[/a4])(a5:_b[/a5])(a6:1-_b[/a1]-_b[/a2]-_b[/a3]-_b[/a4]-_b[/a5]) ///
(b1:_b[/b1])(b2:_b[/b2])(b3:_b[/b3])(b4:_b[/b4])(b5:_b[/b5])(b6:-_b[/b1]-_b[/b2]-_b[/b3]-_b[/b4]-_b[/b5]) ///
(g11:_b[/g11])(g12:_b[/g12])(g13:_b[/g13])(g14:_b[/g14])(g15:_b[/g15]) ///
(g21:_b[/g12])(g22:_b[/g22])(g23:_b[/g23])(g24:_b[/g24])(g25:_b[/g25]) ///
(g31:_b[/g13])(g32:_b[/g23])(g33:_b[/g33])(g34:_b[/g34])(g35:_b[/g35]) ///
(g41:_b[/g14])(g42:_b[/g24])(g43:_b[/g34])(g44:_b[/g44])(g45:_b[/g45]) ///
(g51:_b[/g15])(g52:_b[/g25])(g53:_b[/g35])(g54:_b[/g45])(g55:_b[/g55]) ///
(g16:-_b[/g11]-_b[/g12]-_b[/g13]-_b[/g14]-_b[/g15]) ///
(g26:-_b[/g12]-_b[/g22]-_b[/g23]-_b[/g24]-_b[/g25]) ///
(g36:-_b[/g13]-_b[/g23]-_b[/g33]-_b[/g34]-_b[/g35]) ///
(g46:-_b[/g14]-_b[/g24]-_b[/g34]-_b[/g44]-_b[/g45]) ///
(g56:-_b[/g15]-_b[/g25]-_b[/g35]-_b[/g45]-_b[/g55]) ///
(g61:-_b[/g11]-_b[/g12]-_b[/g13]-_b[/g14]-_b[/g15]) ///
(g62:-_b[/g12]-_b[/g22]-_b[/g23]-_b[/g24]-_b[/g25]) ///
(g63:-_b[/g13]-_b[/g23]-_b[/g33]-_b[/g34]-_b[/g35]) ///
(g64:-_b[/g14]-_b[/g24]-_b[/g34]-_b[/g44]-_b[/g45]) ///
(g65:-(-_b[/g11]-_b[/g12]-_b[/g13]-_b[/g14]-_b[/g15])-(-_b[/g12]-_b[/g22]-_b[/g23]-_b[/g24]-_b[/g25])-(-_b[/g13]-_b[/g23]-_b[/g33]-_b[/g34]-_b[/g35])-(-_b[/g14]-_b[/g24]-_b[/g34]-_b[/g44]-_b[/g45])) ///
(eta11:_b[/eta11])(eta12:_b[/eta12])(eta13:_b[/eta13])(eta14:_b[/eta14])(eta15:_b[/eta15])(eta16:-_b[/eta11]-_b[/eta12]-_b[/eta13]-_b[/eta14]-_b[/eta15]) ///
(eta21:_b[/eta21])(eta22:_b[/eta22])(eta23:_b[/eta23])(eta24:_b[/eta24])(eta25:_b[/eta25])(eta26:-_b[/eta21]-_b[/eta22]-_b[/eta23]-_b[/eta24]-_b[/eta25]) ///
(l1:_b[/l1])(l2:_b[/l2])(l3:_b[/l3])(l4:_b[/l4])(l5:_b[/l5])(l6:-_b[/l1]-_b[/l2]-_b[/l3]-_b[/l4]-_b[/l5]) ///
(d1:_b[/d1]) (d2:_b[/d2]) (d3:_b[/d3]) (d4:_b[/d4])(d5:_b[/d5])(d6:-_b[/d1]-_b[/d2]-_b[/d3]-_b[/d4]-_b[/d5]), post noheader
est store quaids
forv i=1(1)6 {
forv j=1(1)6 {
glo delta=cond(`i'==`j',1,0)
glo mu`i'`j' "_b[g`i'`j'] - ${mu`i'}*(_b[a`j'] ${gsum2`j'})-_b[l`i']*_b[b`j']/${bp}*(lnmmean - (${ap}))^2"
cap nlcom (elasm`i': ${mu`i'}/w`i'mean + 1) (mu`i'`j': ${mu`i'`j'}) (d`i': _b[d`i']), post noheader
if _rc {
qui nlcom (elasm`i': ${mu`i'}/w`i'mean + 1) (mu`i'`j'f1e+2)*(${mu`i'`j'})) (d`i': _b[d`i']) , post noheader
qui nlcom (elasm`i':_b[elasm`i']) (mu`i'`j':_b[mu`i'`j'f]/(1e+2)) (d`i': _b[d`i']) , post noheader
}
* Uncompensated price elasticity
if _b[d`i']!=0{
nlcom (elasm`i':_b[elasm`i']*_b[d`i']) (elu`i'`j':_b[mu`i'`j']/w`i'mean - ${delta})*_b[d`i']), post noheader
}
else {
display _b[d`i']
nlcom (elasm`i':_b[elasm`i']) (elu`i'`j':_b[mu`i'`j']/w`i'mean - ${delta})), post noheader
}
* Compensated price elasticity
nlcom (elc`i'`j':_b[elu`i'`j'] + _b[elasm`i']*w`j'mean), noheader
qui est restore quaids
}
}
set more off
*set trace on
program nlsuraids
version 14.0
syntax varlist(min=24 max=24) if, at(name)
tokenize `varlist'
args w1 w2 w3 w4 w5 lnp1 lnp2 lnp3 lnp4 lnp5 lnp6 lnm z1 z2 pdf1 pdf2 pdf3 pdf4 pdf5 cdf1 cdf2 cdf3 cdf4 cdf5
tempname a1 a2 a3 a4 a5 a6
scalar `a1' = `at'[1,1]
scalar `a2' = `at'[1,2]
scalar `a3' = `at'[1,3]
scalar `a4' = `at'[1,4]
scalar `a5' = `at'[1,5]
scalar `a6' = 1-`a1'-`a2'-`a3'-`a4'-`a5'
************************************************** ********
tempname b1 b2 b3 b4 b5 b6
scalar `b1' = `at'[1,6]
scalar `b2' = `at'[1,7]
scalar `b3' = `at'[1,8]
scalar `b4' = `at'[1,9]
scalar `b5' = `at'[1,10]
scalar `b6' = -`b1'-`b2'-`b3'-`b4'-`b5'
************************************************** ********
tempname g11 g12 g13 g14 g15 g16
tempname g21 g22 g23 g24 g25 g26
tempname g31 g32 g33 g34 g35 g36
tempname g41 g42 g43 g44 g45 g46
tempname g51 g52 g53 g54 g55 g56
tempname g61 g62 g63 g64 g65 g66
************************************************** ******
scalar `g11' = `at'[1,11]
scalar `g12' = `at'[1,12]
scalar `g13' = `at'[1,13]
scalar `g14' = `at'[1,14]
scalar `g15' = `at'[1,15]
scalar `g16' = -`g11'-`g12'-`g13'-`g14'-`g15'
************************************************** *******
scalar `g21' = `g12'
scalar `g22' = `at'[1,16]
scalar `g23' = `at'[1,17]
scalar `g24' = `at'[1,18]
scalar `g25' = `at'[1,19]
scalar `g26' = -`g21'-`g22'-`g23'-`g24'-`g25'
************************************************** *******
scalar `g31' = `g13'
scalar `g32' = `g23'
scalar `g33' = `at'[1,20]
scalar `g34' = `at'[1,21]
scalar `g35' = `at'[1,22]
scalar `g36' = -`g31'-`g32'-`g33'-`g34'-`g35'
************************************************** *******
scalar `g41' = `g14'
scalar `g42' = `g24'
scalar `g43' = `g34'
scalar `g44' = `at'[1,23]
scalar `g45' = `at'[1,24]
scalar `g46' = -`g41'-`g42'-`g43'-`g44'-`g45'
************************************************** ****************
scalar `g51' = `g15'
scalar `g52' = `g25'
scalar `g53' = `g35'
scalar `g54' = `g45'
scalar `g55' = `at'[1,25]
scalar `g56' = -`g51'-`g52'-`g53'-`g54'-`g55'
************************************************** ***************
scalar `g61' = `g16'
scalar `g62' = `g26'
scalar `g63' = `g36'
scalar `g64' = `g46'
scalar `g65' = `g56'
scalar `g66' = -`g61'-`g62'-`g63'-`g64'-`g65'
************************************************** ***************
tempname l1 l2 l3 l4 l5 l6
scalar `l1' = `at'[1,26]
scalar `l2' = `at'[1,27]
scalar `l3' = `at'[1,28]
scalar `l4' = `at'[1,29]
scalar `l5' = `at'[1,30]
scalar `l6' = -`l1'-`l2'-`l3'-`l4'-`l5'
**********Household demographics************************************** *
tempname eta11 eta21
tempname eta12 eta22
tempname eta13 eta23
tempname eta14 eta24
tempname eta15 eta25
tempname eta16 eta26
scalar `eta11' = `at'[1,31]
scalar `eta12' = `at'[1,32]
scalar `eta13' = `at'[1,33]
scalar `eta14' = `at'[1,34]
scalar `eta15' = `at'[1,35]
scalar `eta16' = - `eta11'-`eta12'-`eta13'-`eta14'-`eta15'
scalar `eta21' = `at'[1,36]
scalar `eta22' = `at'[1,37]
scalar `eta23' = `at'[1,38]
scalar `eta24' = `at'[1,39]
scalar `eta25' = `at'[1,40]
scalar `eta26' = - `eta21'-`eta22'-`eta23'-`eta24'-`eta25'
************************************************** ********************************
tempname d1 d2 d3 d4 d5
scalar `d1' = `at'[1,41]
scalar `d2' = `at'[1,42]
scalar `d3' = `at'[1,43]
scalar `d4' = `at'[1,44]
scalar `d5' = `at'[1,45]
************************************************
quietly {
tempvar lnpindex
gen double `lnpindex' = 5 + `a1'*`lnp1' + `a2'*`lnp2' + `a3'*`lnp3' + `a4'*`lnp4' + `a5'*`lnp5' + `a6'*`lnp6'
forvalues i = 1/6 {
forvalues j = 1/6 {
replace `lnpindex' = `lnpindex' + 0.5*`g`i'`j''*`lnp`i''*`lnp`j''
}
}
**** The b(p,z) term in the QUAIDS model:
tempvar bofp
gen double `bofp' = 0
forvalues i = 1/6 {
replace `bofp' = `bofp' + `lnp`i''*`b`i''
}
replace `bofp' = exp(`bofp')
************************************************** ***************************
replace `w1' = (`a1' + `g11'*`lnp1' + `g12'*`lnp2' + `g13'*`lnp3' + `g14'*`lnp4' + `g15'*`lnp5' + `g16'*`lnp6' + ///
`b1'*(`lnm' - `lnpindex') + `l1'/`bofp'*(`lnm' - `lnpindex')^2 + `z1'*`eta11' + `z2'*`eta21')*`cdf1' + `d1'*`pdf1'
replace `w2' = (`a2' + `g21'*`lnp1' + `g22'*`lnp2' + `g23'*`lnp3' + `g24'*`lnp4' + `g25'*`lnp5' + `g26'*`lnp6' + ///
`b2'*(`lnm' - `lnpindex') + `l2'/`bofp'*(`lnm' - `lnpindex')^2 + `z1'*`eta12' + `z2'*`eta22')*`cdf2' + `d2'*`pdf2'
replace `w3' = (`a3' + `g31'*`lnp1' + `g32'*`lnp2' + `g33'*`lnp3' + `g34'*`lnp4' + `g35'*`lnp5' + `g36'*`lnp6' + ///
`b3'*(`lnm' - `lnpindex') + `l3'/`bofp'*(`lnm' - `lnpindex')^2 + `z1'*`eta13' + `z2'*`eta23')*`cdf3' + `d3'*`pdf3'
replace `w4' = (`a4' + `g41'*`lnp1' + `g42'*`lnp2' + `g43'*`lnp3' + `g44'*`lnp4' + `g45'*`lnp5' + `g46'*`lnp6' + ///
`b4'*(`lnm' - `lnpindex') + `l4'/`bofp'*(`lnm' - `lnpindex')^2 + `z1'*`eta14' + `z2'*`eta24')*`cdf4' + `d4'*`pdf4'
replace `w5' = (`a5' + `g51'*`lnp1' + `g52'*`lnp2' + `g53'*`lnp3' + `g54'*`lnp4' + `g55'*`lnp5' + `g56'*`lnp6' + ///
`b5'*(`lnm' - `lnpindex') + `l5'/`bofp'*(`lnm' - `lnpindex')^2 + `z1'*`eta15' + `z2'*`eta25')*`cdf5' + `d5'*`pdf5'
}
end
nlsur aids @ w1 w2 w3 w4 w5 lnp1 lnp2 lnp3 lnp4 lnp5 lnp6 lnm z1 z2 ///
pdf1 pdf2 pdf3 pdf4 pdf5 cdf1 cdf2 cdf3 cdf4 cdf5, ifgnls neq(5) parameters(a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 g11 g12 g13 ///
g14 g15 g22 g23 g24 g25 g33 g34 g35 g44 g45 g55 l1 l2 l3 l4 l5 ///
eta11 eta12 eta13 eta14 eta15 eta21 eta22 eta23 eta24 eta25 d1 d2 d3 d4 d5)
est store quaids
set more off
*set trace on
*set tracedepth 4
quietly {
foreach x of varlist w* lnp* lnm {
sum `x'
scalar `x'mean=r(mean)
}
* Price indexes
glo asum "_b[a1]*lnp1mean"
forv i=2(1)6 {
glo asum "${asum} + _b[a`i']*lnp`i'mean"
}
glo gsum ""
forv i=1(1)6 {
forv j=1(1)6 {
glo gsum "${gsum} + 0.5*_b[g`i'`j']*lnp`i'mean*lnp`j'mean"
}
}
glo ap "5.0 + ${asum} ${gsum}"
glo bp "_b[b1]*lnp1mean"
forv i=2(1)6 {
glo bp "${bp} + _b[b`i']*lnp`i'mean"
}
glo bp "(exp(${bp}))"
* Mus
forv i=1(1)6 {
glo mu`i' "_b[b`i'] + 2*_b[l`i']/${bp}*(lnmmean-(${ap}))"
}
forv j=1(1)6 {
glo gsum2`j' ""
forv k=1(1)6 {
glo gsum2`j' "${gsum2`j'} + _b[g`j'`k']*lnp`k'mean"
}
}
}
nlcom (a1:_b[/a1])(a2:_b[/a2])(a3:_b[/a3])(a4:_b[/a4])(a5:_b[/a5])(a6:1-_b[/a1]-_b[/a2]-_b[/a3]-_b[/a4]-_b[/a5]) ///
(b1:_b[/b1])(b2:_b[/b2])(b3:_b[/b3])(b4:_b[/b4])(b5:_b[/b5])(b6:-_b[/b1]-_b[/b2]-_b[/b3]-_b[/b4]-_b[/b5]) ///
(g11:_b[/g11])(g12:_b[/g12])(g13:_b[/g13])(g14:_b[/g14])(g15:_b[/g15]) ///
(g21:_b[/g12])(g22:_b[/g22])(g23:_b[/g23])(g24:_b[/g24])(g25:_b[/g25]) ///
(g31:_b[/g13])(g32:_b[/g23])(g33:_b[/g33])(g34:_b[/g34])(g35:_b[/g35]) ///
(g41:_b[/g14])(g42:_b[/g24])(g43:_b[/g34])(g44:_b[/g44])(g45:_b[/g45]) ///
(g51:_b[/g15])(g52:_b[/g25])(g53:_b[/g35])(g54:_b[/g45])(g55:_b[/g55]) ///
(g16:-_b[/g11]-_b[/g12]-_b[/g13]-_b[/g14]-_b[/g15]) ///
(g26:-_b[/g12]-_b[/g22]-_b[/g23]-_b[/g24]-_b[/g25]) ///
(g36:-_b[/g13]-_b[/g23]-_b[/g33]-_b[/g34]-_b[/g35]) ///
(g46:-_b[/g14]-_b[/g24]-_b[/g34]-_b[/g44]-_b[/g45]) ///
(g56:-_b[/g15]-_b[/g25]-_b[/g35]-_b[/g45]-_b[/g55]) ///
(g61:-_b[/g11]-_b[/g12]-_b[/g13]-_b[/g14]-_b[/g15]) ///
(g62:-_b[/g12]-_b[/g22]-_b[/g23]-_b[/g24]-_b[/g25]) ///
(g63:-_b[/g13]-_b[/g23]-_b[/g33]-_b[/g34]-_b[/g35]) ///
(g64:-_b[/g14]-_b[/g24]-_b[/g34]-_b[/g44]-_b[/g45]) ///
(g65:-(-_b[/g11]-_b[/g12]-_b[/g13]-_b[/g14]-_b[/g15])-(-_b[/g12]-_b[/g22]-_b[/g23]-_b[/g24]-_b[/g25])-(-_b[/g13]-_b[/g23]-_b[/g33]-_b[/g34]-_b[/g35])-(-_b[/g14]-_b[/g24]-_b[/g34]-_b[/g44]-_b[/g45])) ///
(eta11:_b[/eta11])(eta12:_b[/eta12])(eta13:_b[/eta13])(eta14:_b[/eta14])(eta15:_b[/eta15])(eta16:-_b[/eta11]-_b[/eta12]-_b[/eta13]-_b[/eta14]-_b[/eta15]) ///
(eta21:_b[/eta21])(eta22:_b[/eta22])(eta23:_b[/eta23])(eta24:_b[/eta24])(eta25:_b[/eta25])(eta26:-_b[/eta21]-_b[/eta22]-_b[/eta23]-_b[/eta24]-_b[/eta25]) ///
(l1:_b[/l1])(l2:_b[/l2])(l3:_b[/l3])(l4:_b[/l4])(l5:_b[/l5])(l6:-_b[/l1]-_b[/l2]-_b[/l3]-_b[/l4]-_b[/l5]) ///
(d1:_b[/d1]) (d2:_b[/d2]) (d3:_b[/d3]) (d4:_b[/d4])(d5:_b[/d5])(d6:-_b[/d1]-_b[/d2]-_b[/d3]-_b[/d4]-_b[/d5]), post noheader
est store quaids
forv i=1(1)6 {
forv j=1(1)6 {
glo delta=cond(`i'==`j',1,0)
glo mu`i'`j' "_b[g`i'`j'] - ${mu`i'}*(_b[a`j'] ${gsum2`j'})-_b[l`i']*_b[b`j']/${bp}*(lnmmean - (${ap}))^2"
cap nlcom (elasm`i': ${mu`i'}/w`i'mean + 1) (mu`i'`j': ${mu`i'`j'}) (d`i': _b[d`i']), post noheader
if _rc {
qui nlcom (elasm`i': ${mu`i'}/w`i'mean + 1) (mu`i'`j'f1e+2)*(${mu`i'`j'})) (d`i': _b[d`i']) , post noheader
qui nlcom (elasm`i':_b[elasm`i']) (mu`i'`j':_b[mu`i'`j'f]/(1e+2)) (d`i': _b[d`i']) , post noheader
}
* Uncompensated price elasticity
if _b[d`i']!=0{
nlcom (elasm`i':_b[elasm`i']*_b[d`i']) (elu`i'`j':_b[mu`i'`j']/w`i'mean - ${delta})*_b[d`i']), post noheader
}
else {
display _b[d`i']
nlcom (elasm`i':_b[elasm`i']) (elu`i'`j':_b[mu`i'`j']/w`i'mean - ${delta})), post noheader
}
* Compensated price elasticity
nlcom (elc`i'`j':_b[elu`i'`j'] + _b[elasm`i']*w`j'mean), noheader
qui est restore quaids
}
}

Comment