Quantcast

problem with nlsur quaids

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

problem with nlsur quaids

minti
This post has NOT been accepted by the mailing list yet.
Dear statalisters,

I am having problems estimating a quaids system with 13 goods (12 equations) and I cannot pinpoint where I went wrong. I keep on getting the messsage nlsurquaids returned 198. Below are my codes for the nlsur and quaids.
Many thanks in advance.
minti


capture program drop nlsurquaids
quietly: program define nlsurquaids
        version 10.0
        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
       
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
        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]

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

      tempname l1 l2 l3 l4 l5 l6 l7 l8 l9 l10 l11 l12 l13
        scalar `l1' = `at'[1,103]
        scalar `l2' = `at'[1,104]
        scalar `l3' = `at'[1,105]
      scalar `l4' = `at'[1,106]
      scalar `l5' = `at'[1,107]
      scalar `l6' = `at'[1,108]
      scalar `l7' = `at'[1,109]
      scalar `l8' = `at'[1,110]
      scalar `l9' = `at'[1,111]
      scalar `l10' = `at'[1,112]
      scalar `l11' = `at'[1,113]
  scalar `l12' = `at'[1,114]
      scalar `l13' = -`l1' - `l2' - `l3'- `l4'- `l5'- `l6'- `l7'- `l8'- `l9'- `l10'- `l11-`l12'


       

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

                forvalues i = 1/13 {
                        forvalues j = 1/13 {
                                replace `lnpindex' = `lnpindex'+ ///
                                        0.5*`g`i'`j''*`lnp`i''*`lnp`j''
                        }
                  }
tempvar bofp
                gen double `bofp' = 0
                forvalues i = 1/13 {
                        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' + `g17'*`lnp7' + ///
                  `g18'*`lnp8' + `g19'*`lnp9' + `g110'*`lnp10' + `g111'*`lnp11' + ///
                  `g112'*`lnp12' + `g113'*`lnp13' +`b1'*(`lnexp'-`lnpindex')+ `l1'/`bofp'*(`lnexp' - `lnpindex')^2

                  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')+ `l2'/`bofp'*(`lnexp' - `lnpindex')^2
                  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')+ `l3'/`bofp'*(`lnexp' - `lnpindex')^2
   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')+ `l4'/`bofp'*(`lnexp' - `lnpindex')^2
                  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')+ `l5'/`bofp'*(`lnexp' - `lnpindex')^2
                  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')+ `l6'/`bofp'*(`lnexp' - `lnpindex')^2
                  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')+ `l7'/`bofp'*(`lnexp' - `lnpindex')^2
                  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')+ `l8'/`bofp'*(`lnexp' - `lnpindex')^2
                  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')+ `l9'/`bofp'*(`lnexp' - `lnpindex')^2
                  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' + ///
                                 `g1013'*`lnp13'+`g1013'*`lnp13'+ `b10'*(`lnexp'-`lnpindex')+ `l10'/`bofp'*(`lnexp' - `lnpindex')^2
                  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')+ `l11'/`bofp'*(`lnexp' - `lnpindex')^2
                  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')+ `l12'/`bofp'*(`lnexp' - `lnpindex')^2

  }

end

nlsur quaids @ 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, parameters(a1 a2 a3 a4 a5 ///
                a6 a7 a8 a9 a10 a11 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 g11 g12 g13 ///
                g14 g15 g16 g17 g18 g19 g110 g111 g22 g23 g24 g25 g26 g27 g28 g29 ///
                g210 g211 g33 g34 g35 g36 g37 g38 g39 g310 g311 g44 g45 g46 g47 g48 ///
                g49 g410 g411 g55 g56 g57 g58 g59 g510 g511 g66 g67 g68 g69 g610 ///
                g611 g77 g78 g79 g710 g711 g88 g89 g810 g811 g99 g910 g911 g1010 ///
                g1011 g1111 l1 l2 l3 l4 l5 l6 l7 l8 l9 l10 l11)nequations(12)ifgnls      



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: problem with nlsur quaids

minti
This post has NOT been accepted by the mailing list yet.
Thanks George. I used your codes and tried to amend them to 13 goods. I changed the share, log price and log expenditure names into : w, lnp, and lnexp. But I still have difficulties running the elasticities part. Kindly, could you check them for me? the nlsur quaids code runs fine (But I have added it here incase you want to see that too. Below is the code.
Many thanks
minti




*! version 1.0.1  
program nlsurquaids

        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'                  
     

      tempname l1 l2 l3 l4 l5 l6 l7 l8 l9 l10 l11 l12 l13
        scalar `l1' = `at'[1,103]
        scalar `l2' = `at'[1,104]
        scalar `l3' = `at'[1,105]
      scalar `l4' = `at'[1,106]
      scalar `l5' = `at'[1,107]
      scalar `l6' = `at'[1,108]
      scalar `l7' = `at'[1,109]
      scalar `l8' = `at'[1,110]
      scalar `l9' = `at'[1,111]
      scalar `l10' = `at'[1,112]
      scalar `l11' = `at'[1,113]
      scalar `l12' = `at'[1,114]
      scalar `l13' = -`l1' - `l2' - `l3'- `l4'- `l5'- `l6'- `l7'- `l8'- `l9'- `l10'- `l11'- `l12'                                
     


// 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''
                        }
                }
                // The b(p) term in the QUAIDS model:
                tempvar bofp
                gen double `bofp' = 0
                forvalues i = 1/13 {
                        replace `bofp' = `bofp' + `lnp`i''*`b`i''
                }
                replace `bofp' = exp(`bofp')
                // 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') + `l1'/`bofp'*(`lnexp' - `lnpindex')^2                          
   

            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') + `l2'/`bofp'*(`lnexp' - `lnpindex')^2                      
           


            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') + `l3'/`bofp'*(`lnexp' - `lnpindex')^2
           

            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') + `l4'/`bofp'*(`lnexp' - `lnpindex')^2
             

            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') + `l5'/`bofp'*(`lnexp' - `lnpindex')^2
             

            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') + `l6'/`bofp'*(`lnexp' - `lnpindex')^2
             


            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') + `l7'/`bofp'*(`lnexp' - `lnpindex')^2
             

            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') + `l8'/`bofp'*(`lnexp' - `lnpindex')^2
             

            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') + `l9'/`bofp'*(`lnexp' - `lnpindex')^2
             


            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') + `l10'/`bofp'*(`lnexp' - `lnpindex')^2
           

            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') + `l11'/`bofp'*(`lnexp' - `lnpindex')^2
           

            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') + `l12'/`bofp'*(`lnexp' - `lnpindex')^2                      
             

           
}
       
end

nlsur quaids @ 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 ///
l1 l2 l3 l4 l5 l6 l7 l8 l9 l10 l11 l12 )  

*************************************************************************
**********************THE ELASTICITY PART**************************************
******************************************************************************
set trace on
set tracedepth 4


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']*lprecio`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'] + 2*_b[l`i']/${bp}*(lnexp-(${ap}))"
}
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 quaidsc



________________________________________
Från: owner-statalist@hsphsun2.harvard.edu [owner-statalist@hsphsun2.harvard.edu] för Jorge Eduardo Pérez Pérez [perez.jorge@ur.edu.co]
Skickat: den 4 oktober 2011 21:02
Till: statalist@hsphsun2.harvard.edu
Ämne: Re: st: problem with nlsur quaids

You have to write your own code to calculate the elasticities. You can
calculate them for mean values of expenditure and use -nlcom- to get
their standard errors after estimating the system via nlsur.
Alternatively, you can calculate elasticities for each household using
-predictnl-
This is a quick example of the first approach on a 7 good system.
First I define mean price indexes and additional variables such as the
sums of a and g, then i calculate the elasticities. "lgastotal" is log
total expenditure, "lprecio" is log price, "elasgasto" is expenditure
elasticity.
----
* Share means and price means
quietly {
foreach x of varlist share* lprecio* lgastototal {
sum `x'
scalar `x'mean=r(mean)
}
* Price indexes
glo asum "_b[a1]*lprecio1mean"
forv i=2(1)7 {
glo asum "${asum} + _b[a`i']*lprecio`i'mean"
}
glo gsum ""
forv i=1(1)7 {
forv j=1(1)7 {
glo gsum "${gsum} + 0.5*_b[g`i'`j']*lprecio`i'mean*lprecio`j'mean"
}
}
glo ap "4.7 + ${asum} ${gsum}"
glo bp "_b[b1]*lprecio1mean"
forv i=2(1)7 {
glo bp "${bp} + _b[b`i']*lprecio`i'mean"
}
glo bp "(exp(${bp}))"
* Mus
forv i=1(1)7 {
glo mu`i' "_b[b`i'] + 2*_b[l`i']/${bp}*(lgastototalmean-(${ap}))"
}
forv j=1(1)7 {
glo gsum2`j' ""
forv k=1(1)7 {
glo gsum2`j' "${gsum2`j'} + _b[g`j'`k']*lprecio`k'mean"
}
}
}
forv i=1(1)7 {
forv j=1(1)7 {
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}*(lgastototalmean - (${ap}))^2"
* If expression is too long, split it
cap nlcom (elasgasto`i': ${mu`i'}/share`i'mean + 1) (mu`i'`j':
${mu`i'`j'}), post noheader
if _rc {
qui nlcom (elasgasto`i': ${mu`i'}/share`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']/share`i'mean - ${delta})  , post noheader
* Compensated price elasticity
nlcom (elpc`i'`j': _b[elpnc`i'`j'] + _b[elasgasto`i']*share`j'mean), noheader
qui est restore quaidsc
}
}

As for the elasticity for each household, you can use code similar to
this inside a loop over equations after defining mu:

predictnl elasgasto`i'= (${mu`i'})/share`i' + 1 , se(seelasgasto`i')


Hope this helps,
_______________________
Jorge Eduardo Pérez Pérez

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: problem with nlsur quaids

minti
This post has NOT been accepted by the mailing list yet.
Thanks jorge for the correction.  I still get the error message(invalid syntax 198). I have put the trace on to help me see where the problem is and it comes right before this line

-_b[l`i']*_b[b`j']/${bp}*(lnexpmean - (${ap}))^2"

Below is  the corrected code
thanks
minti
****




set trace on
set tracedepth 4

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'] + 2*_b[l`i']/${bp}*(lnexp-(${ap}))"
}
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 quaidsc
}
}
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: problem with nlsur quaids

minti
This post has NOT been accepted by the mailing list yet.
Thanks Jorge and Nick. That problem is gone now and I have now an error message sayinng :[b1] not found. Another thing, I have run the equivalent AIDS model (without the elasticities of course). Do I use the same code for elasticities? by removing the terms that are related to bp?

many thanks once again
minti
Loading...