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: problems with nlsur aids
From
Jorge Eduardo Pérez Pérez <[email protected]>
To
"[email protected]" <[email protected]>
Subject
Re: st: problems with nlsur aids
Date
Mon, 7 Nov 2011 23:14:07 -0500
´Two comments:
1. The part that has to be filled has not been filled correctly.
Notice that these conditions arise because sum_i (gamma_ij=0), so each
g13j coefficient should be minus the sum of the remaining coefficients
(g131:-_b[/g${l11}] - _b[/g${l21}] -_b[/g${l31}] -_b[/g${l41}] -
_b[/g${l51}] - _b[/g${l61}] - _b[/g${l71}] - _b[/g${l81}] -
_b[/g${l91}] -_b[/g${l101}] - _b[/g${l111}] - _b[/g${l121}] )
(g132:-_b[/g${l12}] - _b[/g${l22}-_b[/g${l32}] -_b[/g${l42}] -
_b[/g${l52}] - _b[/g${l62}] - _b[/g${l72}] - _b[/g${l82}] -
_b[/g${l92}] -_b[/g${l102}] - _b[/g${l112}] - _b[/g${l122} ] )
...
and so on. You should have 13 lines like this. I was too lazy to fill
all of them, and I still am. Sorry about that, I thought It was clear.
2. Make sure all the calls to the mean shares, -w`i'mean- are correct.
It is like there is a missing -`i'- somewhere and the calls are to
-wmean- instead of -w`i'mean-
_______________________
Jorge Eduardo Pérez Pérez
On Sat, Nov 5, 2011 at 7:05 PM, Mintewab Bezabih
<[email protected]> wrote:
> Thanks Jorge. It helped indeed. As per your suggestion below, I managed to generate the missing coefficients and got right the calling of the coeficients . When I run the elasticity part, thou, the problem resurfaces (when I put -set trace- and try to see the mistake, it tells me either 'wmean not found' or '[b1] not found). Below is the updated codes, for your kind guidance through what it is I am doing wrong.
>
> many thanks once again.
>
> minti
>
>
>
> nlcom ${com} (a13:1-_b[/a1]-_b[/a2]-_b[/a3]-_b[/a4]-_b[/a5]-_b[/a6]-_b[/a7]-_b[/a8]-_b[/a9]-_b[/a10]-_b[/a11]-_b[/a12]) ///
> (b13:-_b[/b1]-_b[/b2]-_b[/b3]-_b[/b4]-_b[/b5]-_b[/b6]-_b[/b7]-_b[/b8]-_b[/b9]-_b[/b10]-_b[/b11]-_b[/b12]) ///
> (g131:-_b[/g${l11}] - _b[/g${l21}] -_b[/g${l31}] -_b[/g${l41}] - _b[/g${l51}] - _b[/g${l61}] - _b[/g${l71}] - _b[/g${l81}] - _b[/g${l91}] -_b[/g${l101}] - _b[/g${l111}] - _b[/g${l121}] ) ///
> (g132:-_b[/g${l12}] - _b[/g${l22}]) (g133:-_b[/g${l13}] - _b[/g${l23}]) ///
> (g134:-_b[/g${l14}] - _b[/g${l24}]) ///
> (g135:-_b[/g${l15}] - _b[/g${l25}]) ///
> (g136:-_b[/g${l16}] - _b[/g${l26}]) ///
> (g137:-_b[/g${l17}] - _b[/g${l27}]) ///
> (g138:-_b[/g${l18}] - _b[/g${l28}]) ///
> (g139:-_b[/g${l19}] - _b[/g${l29}]) ///
> (g1310:-_b[/g${l110}] - _b[/g${l210}]) ///
> (g1311:-_b[/g${l111}] - _b[/g${l211}]) ///
> *** here stata kept on telling me there is no g213 so I changed it to g212 and then I got this particular nlcom to run.
> (g1312:-_b[/g${l112}] - _b[/g${l212}])(g1313:-_b[/g${l113}] - _b[/g${l212}]) , noheader post
>
>
>
> **********************THE ELASTICITY PART**************************************
> ******************************************************************************
>
> *set trace on
> *set tracedepth 4
>
> est store aidsminti
>
> quietly {
> foreach x of varlist w* lnp* lnexp {
> sum `x'
> scalar `x'mean=r(mean)
> }
> * Price indexes
> glo asum "_b[a1]*lnp1mean"
> forv i=2(1)13 {
> glo asum "${asum} + _b[a`i']*lnp`i'mean"
> }
> glo gsum ""
> forv i=1(1)13 {
> forv j=1(1)13 {
> glo gsum "${gsum} + 0.5*_b[g`i'`j']*lnp`i'mean*lnp`j'mean"
> }
> }
> *glo ap "4.7 + ${asum} ${gsum}"
> *glo bp "_b[b1]*lnp1mean"
> *forv i=2(1)13 {
> *glo bp "${bp} + _b[b`i']*lnp`i'mean"
> *}
> *glo bp "(exp(${bp}))"
> * Mus
> forv i=1(1)13 {
> glo mu`i' "_b[b`i'] "
> }
> forv j=1(1)13 {
> glo gsum2`j' ""
> forv k=1(1)13 {
> glo gsum2`j' "${gsum2`j'} + _b[g`j'`k']*lnp`k'mean"
> }
> }
> }
> forv i=1(1)13 {
> forv j=1(1)13 {
> 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']"
> * If expression is too long, split it
> cap nlcom (elasgasto`i': ${mu`i'}/w`i'mean + 1)(mu`i'`j':${mu`i'`j'}), post noheader
> if _rc {
> qui nlcom (elasgasto`i': ${mu`i'}/w`i'mean + 1) (mu`i'`j'f:(1e+2)*(${mu`i'`j'})), post noheader
> qui nlcom (elasgasto`i': _b[elasgasto`i']) (mu`i'`j':_b[mu`i'`j'f]/(1e+2)), post noheader
> }
> }
> }
> * Uncompensated price elasticity
> nlcom (elasgasto`i': _b[elasgasto`i'])(elpnc`i'`j':_b[mu`i'`j']/w`i'mean - ${delta}) , post noheader
> * Compensated price elasticity
> nlcom (elpc`i'`j': _b[elpnc`i'`j'] + _b[elasgasto`i']*w`j'mean), noheader
> qui est restore aidsminti
> }
> }
>
>
>
>
>
> ________________________________________
> Från: [email protected] [[email protected]] för Jorge Eduardo Pérez Pérez [[email protected]]
> Skickat: den 4 november 2011 05:18
> Till: [email protected]
> Ämne: Re: st: problems with nlsur aids
>
> I took a look and noticed some problems:
>
> 1. You need to post the missing coefficients. The loops that calculate
> the elasticities are looking for coefficients a13, b13, g131 ...,
> which are not calculated in the regression directly. To do that, this
> should get you going. Run this code after the regression:
>
> * Post the missing coefficients
> forv i=1(1)13 {
> forv j=1(1)13 {
> glo l`i'`j' = cond(`i'<=`j',`i'`j',`j'`i')
> }
> }
> forv i=1(1)12 {
> glo com "${com} (a`i': _b[/a`i']) (b`i': _b[/b`i'])"
> forv j=1(1)12 {
> glo com "${com} (g`i'`j': _b[/g${l`i'`j'}])"
> }
> }
> forv i=1(1)12 {
> glo com "${com} (g`i'13: -_b[/g${l`i'1}] -_b[/g${l`i'2}] -
> _b[/g${l`i'3}] - _b[/g${l`i'4}] - _b[/g${l`i'5}] - _b[/g${l`i'6}] -
> _b[/g${l`i'7}] - _b[/g${l`i'8}] - _b[/g${l`i'9}] - _b[/g${l`i'10}] -
> _b[/g${l`i'11}] - _b[/g${l`i'12}] )"
> }
>
> nlcom ${com} (a13:1-_b[/a1]-_b[/a2]-_b[/a3]-_b[/a4]-_b[/a5]-_b[/a6]-_b[/a7]-_b[/a8]-_b[/a9]-_b[/a10]-_b[/a11]-_b[/a12]
> ) (b13:-_b[/b1]-_b[/b2]-_b[/b3]-_b[/b4]-_b[/b5]-_b[/b6]-_b[/b7]-_b[/b8]-_b[/b9]-_b[/b10]-_b[/b11]-_b[/b12])
> ///
> (g131:-_b[/g${l11}] - _b[/g${l21}] -_b[/g${l31}] -_b[/g${l41}] -
> _b[/g${l51}] - _b[/g${l61} - _b[/g${l71} - _b[/g${l81} - _b[/g${l91} -
> _b[/g${l101} - _b[/g${l111} - _b[/g${l121} ] ) ///
> (g132:-_b[/g${l12}] - _b[/g${l22}] -
>
> ..... FILL THIS PART
>
> (g1313:-_b[/g${l113}] - _b[/g${l213}] , noheader post
>
>
> 2. Your calls to coefficients are wrong. If after the regression you
> type -matrix list e(b)- you will notice that the coefficients are
> named /a1, /a2, etc. So your calls to coefficients should read
> _b[/a1], _b[/a2], etc ... However, the previous code for posting the
> missing coefficients is also changing the names from /a1 to a1 ...
> etc, so you don't need to change that in the elasticities code if you
> run the posting code first.
>
> 3. You still have not completely changed the QAIDS for AIDS formulas
>
> glo mu`i'`j' "_b[g`i'`j'] - ${mu`i'}*(_b[a`j']
> ${gsum2`j'})-_b[l`i']*_b[b`j']/${bp}*(lnexpmean - (${ap}))^2"
>
> The quadratic part at the end should not be there.
>
> Hope this helps.
>
> _______________________
> Jorge Eduardo Pérez Pérez
>
>
>
>
> 2011/10/31 Mintewab Bezabih <[email protected]>:
>> Dear statalisters,
>>
>> I posted a problem I had with an nlsur aids command a while ago. I had gotten tremendous help from Jorge and nick which helped me run the estimation correctly. But I have been stuck with computing the corresponding elastities for a while now. As my programming skills are not that great, I was not able to quite get to the problem so I thought of posting the problem again.
>> I remain grateful for any help I may get.
>> Thanks in advance
>> mintewab
>>
>> **** here is the code*****
>>
>> capture program drop nlsuraids
>>
>> quietly: program define nlsuraids
>>
>> version 10
>>
>> syntax varlist(min=26 max=26) if, at(name)
>>
>> tokenize `varlist'
>>
>> args w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 lnp1 lnp2 lnp3 lnp4 lnp5 lnp6 lnp7 lnp8 lnp9 ///
>>
>> lnp10 lnp11 lnp12 lnp13 lnexp
>>
>>
>>
>> // With 18 goods, there are 204 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 a5 a6 a7 a8 a9 a10 a11 a12 a13
>>
>> 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' = `at'[1,6]
>>
>> scalar `a7' = `at'[1,7]
>>
>> scalar `a8' = `at'[1,8]
>>
>> scalar `a9' = `at'[1,9]
>>
>> scalar `a10' = `at'[1,10]
>>
>> scalar `a11' = `at'[1,11]
>>
>> scalar `a12' = `at'[1,12]
>>
>> scalar `a13' = 1 - `a1' - `a2' - `a3' - `a4' - `a5' - `a6' - `a7' - `a8' - `a9' - `a10' - `a11' - `a12'
>>
>>
>>
>>
>>
>> tempname b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13
>>
>> scalar `b1' = `at'[1,13]
>>
>> scalar `b2' = `at'[1,14]
>>
>> scalar `b3' = `at'[1,15]
>>
>> scalar `b4' = `at'[1,16]
>>
>> scalar `b5' = `at'[1,17]
>>
>> scalar `b6' = `at'[1,18]
>>
>> scalar `b7' = `at'[1,19]
>>
>> scalar `b8' = `at'[1,20]
>>
>> scalar `b9' = `at'[1,21]
>>
>> scalar `b10' = `at'[1,22]
>>
>> scalar `b11' = `at'[1,23]
>>
>> scalar `b12' = `at'[1,24]
>>
>> scalar `b13' = - `b1' - `b2' - `b3' - `b4' - `b5' - `b6' - `b7' - `b8' - `b9' - `b10' - `b11' - `b12'
>>
>>
>>
>> tempname g11 g12 g13 g14 g15 g16 g17 g18 g19 g110 g111 g112 g113
>>
>> tempname g21 g22 g23 g24 g25 g26 g27 g28 g29 g210 g211 g212 g213
>>
>> tempname g31 g32 g33 g34 g35 g36 g37 g38 g39 g310 g311 g312 g313
>>
>> tempname g41 g42 g43 g44 g45 g46 g47 g48 g49 g410 g411 g412 g413
>>
>> tempname g51 g52 g53 g54 g55 g56 g57 g58 g59 g510 g511 g512 g513
>>
>> tempname g61 g62 g63 g64 g65 g66 g67 g68 g69 g610 g611 g612 g613
>>
>> tempname g71 g72 g73 g74 g75 g76 g77 g78 g79 g710 g711 g712 g713
>>
>> tempname g81 g82 g83 g84 g85 g86 g87 g88 g89 g810 g811 g812 g813
>>
>> tempname g91 g92 g93 g94 g95 g96 g97 g98 g99 g910 g911 g912 g913
>>
>> tempname g101 g102 g103 g104 g105 g106 g107 g108 g109 g1010 g1011 g1012 g1013
>>
>> tempname g111 g112 g113 g114 g115 g116 g117 g118 g119 g1110 g1111 g1112 g1113
>>
>> tempname g121 g122 g123 g124 g125 g126 g127 g128 g129 g1210 g1211 g1212 g1213
>>
>> tempname g131 g132 g133 g134 g135 g136 g137 g138 g139 g1310 g1311 g1312 g1313
>>
>> tempname g141 g142 g143 g144 g145 g146 g147 g148 g149 g1410 g1411 g1412 g1413
>>
>> tempname g151 g152 g153 g154 g155 g156 g157 g158 g159 g1510 g1511 g1512 g1513
>>
>> tempname g161 g162 g163 g164 g165 g166 g167 g168 g169 g1610 g1611 g1612 g1613
>>
>> tempname g171 g172 g173 g174 g175 g176 g177 g178 g179 g1710 g1711 g1712 g1713
>>
>> tempname g181 g182 g183 g184 g185 g186 g187 g188 g189 g1810 g1811 g1812 g1813
>>
>>
>>
>> scalar `g11' = `at'[1,25]
>>
>> scalar `g12' = `at'[1,26]
>>
>> scalar `g13' = `at'[1,27]
>>
>> scalar `g14' = `at'[1,28]
>>
>> scalar `g15' = `at'[1,29]
>>
>> scalar `g16' = `at'[1,30]
>>
>> scalar `g17' = `at'[1,31]
>>
>> scalar `g18' = `at'[1,32]
>>
>> scalar `g19' = `at'[1,33]
>>
>> scalar `g110' = `at'[1,34]
>>
>> scalar `g111' = `at'[1,35]
>>
>> scalar `g112' = `at'[1,36]
>>
>> scalar `g113' = -`g11' - `g12' - `g13'- `g14'- `g15'- `g16'- `g17'- `g18'- `g19'- `g110'- `g111'- `g112'
>>
>> scalar `g21' = `g12'
>>
>> scalar `g22' = `at'[1,37]
>>
>> scalar `g23' = `at'[1,38]
>>
>> scalar `g24' = `at'[1,39]
>>
>> scalar `g25' = `at'[1,40]
>>
>> scalar `g26' = `at'[1,41]
>>
>> scalar `g27' = `at'[1,42]
>>
>> scalar `g28' = `at'[1,43]
>>
>> scalar `g29' = `at'[1,44]
>>
>> scalar `g210' = `at'[1,45]
>>
>> scalar `g211' = `at'[1,46]
>>
>> scalar `g212' = `at'[1,47]
>>
>> scalar `g213' = -`g21' - `g22' - `g23'- `g24'- `g25'- `g26'- `g27'- `g28'- `g29'- `g210'- `g211'- `g212'
>>
>>
>>
>> scalar `g31' = `g13'
>>
>> scalar `g32' = `g23'
>>
>> scalar `g33' = `at'[1,48]
>>
>> scalar `g34' = `at'[1,49]
>>
>> scalar `g35' = `at'[1,50]
>>
>> scalar `g36' = `at'[1,51]
>>
>> scalar `g37' = `at'[1,52]
>>
>> scalar `g38' = `at'[1,53]
>>
>> scalar `g39' = `at'[1,54]
>>
>> scalar `g310' = `at'[1,55]
>>
>> scalar `g311' = `at'[1,56]
>>
>> scalar `g312' = `at'[1,57]
>>
>> scalar `g313' = -`g31' - `g32' - `g33'- `g34'- `g35'- `g36'- `g37'- `g38'- `g39'- `g310'- `g311'- `g312'
>>
>> scalar `g41' = `g14'
>>
>> scalar `g42' = `g24'
>>
>> scalar `g43' = `g34'
>>
>> scalar `g44' = `at'[1,58]
>>
>> scalar `g45' = `at'[1,59]
>>
>> scalar `g46' = `at'[1,60]
>>
>> scalar `g47' = `at'[1,61]
>>
>> scalar `g48' = `at'[1,62]
>>
>> scalar `g49' = `at'[1,63]
>>
>> scalar `g410' = `at'[1,64]
>>
>> scalar `g411' = `at'[1,65]
>>
>> scalar `g412' = `at'[1,66]
>>
>> scalar `g413' = -`g41' - `g42' - `g43'- `g44'- `g45'- `g46'- `g47'- `g48'- `g49'- `g410'- `g411'- `g412'
>>
>> scalar `g51' = `g15'
>>
>> scalar `g52' = `g25'
>>
>> scalar `g53' = `g35'
>>
>> scalar `g54' = `g45'
>>
>> scalar `g55' = `at'[1,67]
>>
>> scalar `g56' = `at'[1,68]
>>
>> scalar `g57' = `at'[1,69]
>>
>> scalar `g58' = `at'[1,70]
>>
>> scalar `g59' = `at'[1,71]
>>
>> scalar `g510' = `at'[1,72]
>>
>> scalar `g511' = `at'[1,73]
>>
>> scalar `g512' = `at'[1,74]
>>
>> scalar `g513' = -`g51' - `g52' - `g53'- `g54'- `g55'- `g56'- `g57'- `g58'- `g59'- `g510'- `g511'- `g512'
>>
>> scalar `g61' = `g16'
>>
>> scalar `g62' = `g26'
>>
>> scalar `g63' = `g36'
>>
>> scalar `g64' = `g46'
>>
>> scalar `g65' = `g56'
>>
>> scalar `g66' = `at'[1,75]
>>
>> scalar `g67' = `at'[1,76]
>>
>> scalar `g68' = `at'[1,77]
>>
>> scalar `g69' = `at'[1,78]
>>
>> scalar `g610' = `at'[1,79]
>>
>> scalar `g611' = `at'[1,80]
>>
>> scalar `g612' = `at'[1,81]
>>
>> scalar `g613' = -`g61' - `g62' - `g63'- `g64'- `g65'- `g66'- `g67'- `g68'- `g69'- `g610'- `g611'- `g612'
>>
>> scalar `g71' = `g17'
>>
>> scalar `g72' = `g27'
>>
>> scalar `g73' = `g37'
>>
>> scalar `g74' = `g47'
>>
>> scalar `g75' = `g57'
>>
>> scalar `g76' = `g67'
>>
>> scalar `g77' = `at'[1,82]
>>
>> scalar `g78' = `at'[1,83]
>>
>> scalar `g79' = `at'[1,84]
>>
>> scalar `g710' = `at'[1,85]
>>
>> scalar `g711' = `at'[1,86]
>>
>> scalar `g712' = `at'[1,87]
>>
>> scalar `g713' = -`g71' - `g72' - `g73'- `g74'- `g75'- `g76'- `g77'- `g78'- `g79'- `g710'- `g711'- `g712'
>>
>> scalar `g81' = `g18'
>>
>> scalar `g82' = `g28'
>>
>> scalar `g83' = `g38'
>>
>> scalar `g84' = `g48'
>>
>> scalar `g85' = `g58'
>>
>> scalar `g86' = `g68'
>>
>> scalar `g87' = `g78'
>>
>> scalar `g88' = `at'[1,88]
>>
>> scalar `g89' = `at'[1,89]
>>
>> scalar `g810' = `at'[1,90]
>>
>> scalar `g811' = `at'[1,91]
>>
>> scalar `g812' = `at'[1,92]
>>
>> scalar `g813' = -`g81' - `g82' - `g83'- `g84'- `g85'- `g86'- `g87'- `g88'- `g89'- `g810'- `g811'- `g812'
>>
>> scalar `g91' = `g19'
>>
>> scalar `g92' = `g29'
>>
>> scalar `g93' = `g39'
>>
>> scalar `g94' = `g49'
>>
>> scalar `g95' = `g59'
>>
>> scalar `g96' = `g69'
>>
>> scalar `g97' = `g79'
>>
>> scalar `g98' = `g89'
>>
>> scalar `g99' = `at'[1,93]
>>
>> scalar `g910' = `at'[1,94]
>>
>> scalar `g911' = `at'[1,95]
>>
>> scalar `g912' = `at'[1,96]
>>
>> scalar `g913' = -`g91' - `g92' - `g93'- `g94'- `g95'- `g96'- `g97'- `g98'- `g99'- `g910'- `g911'- `g912'
>>
>>
>>
>> scalar `g101' = `g110'
>>
>> scalar `g102' = `g210'
>>
>> scalar `g103' = `g310'
>>
>> scalar `g104' = `g410'
>>
>> scalar `g105' = `g510'
>>
>> scalar `g106' = `g610'
>>
>> scalar `g107' = `g710'
>>
>> scalar `g108' = `g810'
>>
>> scalar `g109' = `g910'
>>
>> scalar `g1010' = `at'[1,97]
>>
>> scalar `g1011' = `at'[1,98]
>>
>> scalar `g1012' = `at'[1,99]
>>
>> scalar `g1013' = -`g101' - `g102' - `g103'- `g104'- `g105'- `g106'- `g107'- `g108'- `g109'- `g1010'- `g1011'- `g1012'
>>
>>
>>
>>
>>
>> scalar `g111' = `g111'
>>
>> scalar `g112' = `g211'
>>
>> scalar `g113' = `g311'
>>
>> scalar `g114' = `g411'
>>
>> scalar `g115' = `g511'
>>
>> scalar `g116' = `g611'
>>
>> scalar `g117' = `g711'
>>
>> scalar `g118' = `g811'
>>
>> scalar `g119' = `g911'
>>
>> scalar `g1110' = `g1011'
>>
>> scalar `g1111' = `at'[1,100]
>>
>> scalar `g1112' = `at'[1,101]
>>
>> scalar `g1113' = -`g111' - `g112' - `g113'- `g114'- `g115'- `g116'- `g117'- `g118'- `g119'- `g1110'- `g1111'- `g1112'
>>
>> scalar `g121' = `g112'
>>
>> scalar `g122' = `g212'
>>
>> scalar `g123' = `g312'
>>
>> scalar `g124' = `g412'
>>
>> scalar `g125' = `g512'
>>
>> scalar `g126' = `g612'
>>
>> scalar `g127' = `g712'
>>
>> scalar `g128' = `g812'
>>
>> scalar `g129' = `g912'
>>
>> scalar `g1210' = `g1012'
>>
>> scalar `g1211' = `g1112'
>>
>> scalar `g1212' = `at'[1,102]
>>
>> scalar `g1213' = -`g121' - `g122' - `g123'- `g124'- `g125'- `g126'- `g127'- `g128'- `g129'- `g1210'- `g1211'- `g1212'
>>
>> scalar `g131' = `g113'
>>
>> scalar `g132' = `g213'
>>
>> scalar `g133' = `g313'
>>
>> scalar `g134' = `g413'
>>
>> scalar `g135' = `g513'
>>
>> scalar `g136' = `g613'
>>
>> scalar `g137' = `g713'
>>
>> scalar `g138' = `g813'
>>
>> scalar `g139' = `g913'
>>
>> scalar `g1310' = `g1013'
>>
>> scalar `g1311' = `g1113'
>>
>> scalar `g1312' = `g1213'
>>
>> scalar `g1313' = -`g131' - `g132' - `g133'- `g134'- `g135'- `g136'- `g137'- `g138'- `g139'- `g1310'- `g1311'- `g1312'
>>
>>
>>
>> // 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'+ `a6'*`lnp6' ///
>>
>> + `a7'*`lnp7'+ `a8'*`lnp8'+ `a9'*`lnp9'+ `a10'*`lnp10'+ `a11'*`lnp11'+ `a12'*`lnp12'+ `a13'*`lnp13'
>>
>>
>>
>>
>>
>> forvalues i = 1/13 {
>>
>> forvalues j = 1/13 {
>>
>> replace `lnpindex' = `lnpindex' + ///
>>
>> 0.5*`g`i'`j''*`lnp`i''*`lnp`j''
>>
>> }
>>
>> }
>>
>> // Finally, the expenditure shares for 17 of the 18
>>
>> // nutrients (the equation 18 is dropped to avoid singularity)
>>
>> replace `w1' = `a1' + `g11'*`lnp1' + `g12'*`lnp2' +`g13'*`lnp3' + `g14'*`lnp4' + `g15'*`lnp5' ///
>>
>> + `g16'*`lnp6' + `g17'*`lnp7' + `g18'*`lnp8' + `g19'*`lnp9' + `g110'*`lnp10' + `g111'*`lnp11' ///
>>
>> + `g112'*`lnp12' + `g113'*`lnp13'+ `b1'*(`lnexp' - `lnpindex')
>>
>> replace `w2' = `a2' + `g21'*`lnp1' + `g22'*`lnp2' +`g23'*`lnp3' + `g24'*`lnp4' + `g25'*`lnp5' ///
>>
>> + `g26'*`lnp6' + `g27'*`lnp7' + `g28'*`lnp8' + `g29'*`lnp9' + `g210'*`lnp10' + `g211'*`lnp11' ///
>>
>> + `g212'*`lnp12' + `g213'*`lnp13' + `b2'*(`lnexp' - `lnpindex')
>>
>>
>>
>> replace `w3' = `a3' + `g31'*`lnp1' + `g32'*`lnp2' +`g33'*`lnp3' + `g34'*`lnp4' + `g35'*`lnp5' ///
>>
>> + `g36'*`lnp6' + `g37'*`lnp7' + `g38'*`lnp8' + `g39'*`lnp9' + `g310'*`lnp10' + `g311'*`lnp11' ///
>>
>> + `g312'*`lnp12' + `g313'*`lnp13' + `b3'*(`lnexp' - `lnpindex')
>>
>> replace `w4' = `a4' + `g41'*`lnp1' + `g42'*`lnp2' +`g43'*`lnp3' + `g44'*`lnp4' + `g45'*`lnp5' ///
>>
>> + `g46'*`lnp6' + `g47'*`lnp7' + `g48'*`lnp8' + `g49'*`lnp9' + `g410'*`lnp10' + `g411'*`lnp11' ///
>>
>> + `g412'*`lnp12' + `g413'*`lnp13' + `b4'*(`lnexp' - `lnpindex')
>>
>> replace `w5' = `a5' + `g51'*`lnp1' + `g52'*`lnp2' +`g53'*`lnp3' + `g54'*`lnp4' + `g55'*`lnp5' ///
>>
>> + `g56'*`lnp6' + `g57'*`lnp7' + `g58'*`lnp8' + `g59'*`lnp9' + `g510'*`lnp10' + `g511'*`lnp11' ///
>>
>> + `g512'*`lnp12' + `g513'*`lnp13' + `b5'*(`lnexp' - `lnpindex')
>>
>> replace `w6' = `a6' + `g61'*`lnp1' + `g62'*`lnp2' +`g63'*`lnp3' + `g64'*`lnp4' + `g65'*`lnp5' ///
>>
>> + `g66'*`lnp6' + `g67'*`lnp7' + `g68'*`lnp8' + `g69'*`lnp9' + `g610'*`lnp10' + `g611'*`lnp11' ///
>>
>> + `g612'*`lnp12' + `g613'*`lnp13' + `b6'*(`lnexp' - `lnpindex')
>>
>>
>>
>> replace `w7' = `a7' + `g71'*`lnp1' + `g72'*`lnp2' +`g73'*`lnp3' + `g74'*`lnp4' + `g75'*`lnp5' ///
>>
>> + `g76'*`lnp6' + `g77'*`lnp7' + `g78'*`lnp8' + `g79'*`lnp9' + `g710'*`lnp10' + `g711'*`lnp11' ///
>>
>> + `g712'*`lnp12' + `g713'*`lnp13' + `b7'*(`lnexp' - `lnpindex')
>>
>> replace `w8' = `a8' + `g81'*`lnp1' + `g82'*`lnp2' +`g83'*`lnp3' + `g84'*`lnp4' + `g85'*`lnp5' ///
>>
>> + `g86'*`lnp6' + `g87'*`lnp7' + `g88'*`lnp8' + `g89'*`lnp9' + `g810'*`lnp10' + `g811'*`lnp11' ///
>>
>> + `g812'*`lnp12' + `g813'*`lnp13' + `b8'*(`lnexp' - `lnpindex')
>>
>> replace `w9' = `a9' + `g91'*`lnp1' + `g92'*`lnp2' +`g93'*`lnp3' + `g94'*`lnp4' + `g95'*`lnp5' ///
>>
>> + `g96'*`lnp6' + `g97'*`lnp7' + `g98'*`lnp8' + `g99'*`lnp9' + `g910'*`lnp10' + `g911'*`lnp11' ///
>>
>> + `g912'*`lnp12' + `g913'*`lnp13' + `b9'*(`lnexp' - `lnpindex')
>>
>>
>>
>> replace `w10' = `a10' + `g101'*`lnp1' + `g102'*`lnp2' +`g103'*`lnp3' + `g104'*`lnp4' + `g105'*`lnp5' ///
>>
>> + `g106'*`lnp6' + `g107'*`lnp7' + `g108'*`lnp8' + `g109'*`lnp9' + `g1010'*`lnp10' + `g1011'*`lnp11' ///
>>
>> + `g1012'*`lnp12' + `g1013'*`lnp13' + `b10'*(`lnexp' - `lnpindex')
>>
>> replace `w11' = `a11' + `g111'*`lnp1' + `g112'*`lnp2' +`g113'*`lnp3' + `g114'*`lnp4' + `g115'*`lnp5' ///
>>
>> + `g116'*`lnp6' + `g117'*`lnp7' + `g118'*`lnp8' + `g119'*`lnp9' + `g1110'*`lnp10' + `g1111'*`lnp11' ///
>>
>> + `g1112'*`lnp12' + `g1113'*`lnp13' + `b11'*(`lnexp' - `lnpindex')
>>
>> replace `w12' = `a12' + `g121'*`lnp1' + `g122'*`lnp2' +`g123'*`lnp3' + `g124'*`lnp4' + `g125'*`lnp5' ///
>>
>> + `g126'*`lnp6' + `g127'*`lnp7' + `g128'*`lnp8' + `g129'*`lnp9' + `g1210'*`lnp10' + `g1211'*`lnp11' ///
>>
>> + `g1212'*`lnp12' + `g1213'*`lnp13' + `b12'*(`lnexp' - `lnpindex')
>>
>> }
>>
>> end
>>
>> nlsur aids @ w1 w2 w3 w4 w5 w6 w7 w8 w9 w10 w11 w12 lnp1 lnp2 lnp3 lnp4 lnp5 lnp6 lnp7 lnp8 lnp9 ///
>>
>> lnp10 lnp11 lnp12 lnp13 lnexp , ifgnls nequations(12) param(a1 a2 a3 a4 ///
>>
>> a5 a6 a7 a8 a9 a10 a11 a12 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 g11 g12 g13 g14 g15 ///
>>
>> g16 g17 g18 g19 g110 g111 g112 g22 g23 g24 g25 g26 g27 g28 g29 g210 g211 g212 ///
>>
>> g33 g34 g35 g36 g37 g38 g39 g310 g311 g312 g44 g45 g46 g47 g48 g49 g410 g411 g412 ///
>>
>> g55 g56 g57 g58 g59 g510 g511 g512 g66 g67 g68 g69 g610 g611 g612 g77 g78 ///
>>
>> g79 g710 g711 g712 g88 g89 g810 g811 g812 g99 g910 g911 g912 ///
>>
>> g917 g1010 g1011 g1012 g1111 g1112 g1212)
>>
>> *************************************************************************
>>
>> **********************THE ELASTICITY PART**************************************
>>
>> ******************************************************************************
>>
>> set trace on
>>
>> set tracedepth 4
>>
>> est store aidsminti
>>
>> quietly {
>>
>> foreach x of varlist w* lnp* lnexp {
>>
>> sum `x'
>>
>> scalar `x'mean=r(mean)
>>
>> }
>>
>> * Price indexes
>>
>> glo asum "_b[a1]*lnp1mean"
>>
>> forv i=2(1)13 {
>>
>> glo asum "${asum} + _b[a`i']*lnp`i'mean"
>>
>> }
>>
>> glo gsum ""
>>
>> forv i=1(1)13 {
>>
>> forv j=1(1)13 {
>>
>> glo gsum "${gsum} + 0.5*_b[g`i'`j']*lnp`i'mean*lnp`j'mean"
>>
>> }
>>
>> }
>>
>> *glo ap "4.7 + ${asum} ${gsum}"
>>
>> *glo bp "_b[b1]*lnp1mean"
>>
>> *forv i=2(1)13 {
>>
>> *glo bp "${bp} + _b[b`i']*lnp`i'mean"
>>
>> *}
>>
>> *glo bp "(exp(${bp}))"
>>
>> * Mus
>>
>> forv i=1(1)13 {
>>
>> glo mu`i' "_b[b`i'] "
>>
>> }
>>
>> forv j=1(1)13 {
>>
>> glo gsum2`j' ""
>>
>> forv k=1(1)13 {
>>
>> glo gsum2`j' "${gsum2`j'} + _b[g`j'`k']*lnp`k'mean"
>>
>> }
>>
>> }
>>
>> }
>>
>> forv i=1(1)13 {
>>
>> forv j=1(1)13 {
>>
>> 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}*(lnexpmean - (${ap}))^2"
>>
>> * If expression is too long, split it
>>
>> cap nlcom (elasgasto`i': ${mu`i'}/w`i'mean + 1)(mu`i'`j':${mu`i'`j'}), post noheader
>>
>> if _rc {
>>
>> qui nlcom (elasgasto`i': ${mu`i'}/w`i'mean + 1) (mu`i'`j'f:(1e+2)*(${mu`i'`j'})), post noheader
>>
>> qui nlcom (elasgasto`i': _b[elasgasto`i']) (mu`i'`j':_b[mu`i'`j'f]/(1e+2)), post noheader
>>
>> }
>>
>> }
>>
>> }
>>
>> * Uncompensated price elasticity
>>
>> nlcom (elasgasto`i': _b[elasgasto`i'])
>>
>> (elpnc`i'`j':_b[mu`i'`j']/w`i'mean - ${delta}) , post noheader
>>
>> * Compensated price elasticity
>>
>> nlcom (elpc`i'`j': _b[elpnc`i'`j'] + _b[elasgasto`i']*w`j'mean), noheader
>>
>> qui est restore aidsminti
>>
>> }
>>
>> }
>>
>> *
>> * 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/
>>
>>
>>
>
>
> *
> * 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/
>
> *
> * 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/
>
>
>
*
* 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/