Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Quaids

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


  • #2
    I recommend putting a trace on command just after the final est store quaids command. After substituting local macros into your nlcom commands, you've probably wound up with an incorrectly formed command. The trace output will let you see the command after all macro substitutions, so you can see where the error is.

    Comment


    • #3
      Hi William,
      This is what it looks like. Could you figure out the issue?


      ---------------------------------------------- begin nlcom.CheckValue ---
      - tempname w1 w2
      - scalar `w1' = `0'
      = scalar __000000 = (elasm1: _b[b1] + 2*_b[l1]/(exp(_b[b1]*lnp1mean + _b[
      > b2]*lnp2mean + _b[b3]*lnp3mean + _b[b4]*lnp4mean + _b[b5]*lnp5mean + _b[b6]*l
      > np6mean))*(lnmmean-(5.0 + _b[a1]*lnp1mean + _b[a2]*lnp2mean + _b[a3]*lnp3mean
      > + _b[a4]*lnp4mean + _b[a5]*lnp5mean + _b[a6]*lnp6mean + 0.5*_b[g11]*lnp1mea
      > n*lnp1mean + 0.5*_b[g12]*lnp1mean*lnp2mean + 0.5*_b[g13]*lnp1mean*lnp3mean +
      > 0.5*_b[g14]*lnp1mean*lnp4mean + 0.5*_b[g15]*lnp1mean*lnp5mean + 0.5*_b[g16]*l
      > np1mean*lnp6mean + 0.5*_b[g21]*lnp2mean*lnp1mean + 0.5*_b[g22]*lnp2mean*lnp2m
      > ean + 0.5*_b[g23]*lnp2mean*lnp3mean + 0.5*_b[g24]*lnp2mean*lnp4mean + 0.5*_b[
      > g25]*lnp2mean*lnp5mean + 0.5*_b[g26]*lnp2mean*lnp6mean + 0.5*_b[g31]*lnp3mean
      > *lnp1mean + 0.5*_b[g32]*lnp3mean*lnp2mean + 0.5*_b[g33]*lnp3mean*lnp3mean + 0
      > .5*_b[g34]*lnp3mean*lnp4mean + 0.5*_b[g35]*lnp3mean*lnp5mean + 0.5*_b[g36]*ln
      > p3mean*lnp6mean + 0.5*_b[g41]*lnp4mean*lnp1mean + 0.5*_b[g42]*lnp4mean*lnp2me
      > an + 0.5*_b[g43]*lnp4mean*lnp3mean + 0.5*_b[g44]*lnp4mean*lnp4mean + 0.5*_b[g
      > 45]*lnp4mean*lnp5mean + 0.5*_b[g46]*lnp4mean*lnp6mean + 0.5*_b[g51]*lnp5mean*
      > lnp1mean + 0.5*_b[g52]*lnp5mean*lnp2mean + 0.5*_b[g53]*lnp5mean*lnp3mean + 0.
      > 5*_b[g54]*lnp5mean*lnp4mean + 0.5*_b[g55]*lnp5mean*lnp5mean + 0.5*_b[g56]*lnp
      > 5mean*lnp6mean + 0.5*_b[g61]*lnp6mean*lnp1mean + 0.5*_b[g62]*lnp6mean*lnp2mea
      > n + 0.5*_b[g63]*lnp6mean*lnp3mean + 0.5*_b[g64]*lnp6mean*lnp4mean + 0.5*_b[g6
      > 5]*lnp6mean*lnp5mean + 0.5*_b[g66]*lnp6mean*lnp6mean))/w1mean + 1) (mu11f1e+2
      > )*(_b[g11] - _b[b1] + 2*_b[l1]/(exp(_b[b1]*lnp1mean + _b[b2]*lnp2mean + _b[b3
      > ]*lnp3mean + _b[b4]*lnp4mean + _b[b5]*lnp5mean + _b[b6]*lnp6mean))*(lnmmean-(
      > 5.0 + _b[a1]*lnp1mean + _b[a2]*lnp2mean + _b[a3]*lnp3mean + _b[a4]*lnp4mean +
      > _b[a5]*lnp5mean + _b[a6]*lnp6mean + 0.5*_b[g11]*lnp1mean*lnp1mean + 0.5*_b[
      > g12]*lnp1mean*lnp2mean + 0.5*_b[g13]*lnp1mean*lnp3mean + 0.5*_b[g14]*lnp1mean
      > *lnp4mean + 0.5*_b[g15]*lnp1mean*lnp5mean + 0.5*_b[g16]*lnp1mean*lnp6mean + 0
      > .5*_b[g21]*lnp2mean*lnp1mean + 0.5*_b[g22]*lnp2mean*lnp2mean + 0.5*_b[g23]*ln
      > p2mean*lnp3mean + 0.5*_b[g24]*lnp2mean*lnp4mean + 0.5*_b[g25]*lnp2mean*lnp5me
      > an + 0.5*_b[g26]*lnp2mean*lnp6mean + 0.5*_b[g31]*lnp3mean*lnp1mean + 0.5*_b[g
      > 32]*lnp3mean*lnp2mean + 0.5*_b[g33]*lnp3mean*lnp3mean + 0.5*_b[g34]*lnp3mean*
      > lnp4mean + 0.5*_b[g35]*lnp3mean*lnp5mean + 0.5*_b[g36]*lnp3mean*lnp6mean + 0.
      > 5*_b[g41]*lnp4mean*lnp1mean + 0.5*_b[g42]*lnp4mean*lnp2mean + 0.5*_b[g43]*lnp
      > 4mean*lnp3mean + 0.5*_b[g44]*lnp4mean*lnp4mean + 0.5*_b[g45]*lnp4mean*lnp5mea
      > n + 0.5*_b[g46]*lnp4mean*lnp6mean + 0.5*_b[g51]*lnp5mean*lnp1mean + 0.5*_b[g5
      > 2]*lnp5mean*lnp2mean + 0.5*_b[g53]*lnp5mean*lnp3mean + 0.5*_b[g54]*lnp5mean*l
      > np4mean + 0.5*_b[g55]*lnp5mean*lnp5mean + 0.5*_b[g56]*lnp5mean*lnp6mean + 0.5
      > *_b[g61]*lnp6mean*lnp1mean + 0.5*_b[g62]*lnp6mean*lnp2mean + 0.5*_b[g63]*lnp6
      > mean*lnp3mean + 0.5*_b[g64]*lnp6mean*lnp4mean + 0.5*_b[g65]*lnp6mean*lnp5mean
      > + 0.5*_b[g66]*lnp6mean*lnp6mean))*(_b[a1] + _b[g11]*lnp1mean + _b[g12]*lnp2
      > mean + _b[g13]*lnp3mean + _b[g14]*lnp4mean + _b[g15]*lnp5mean + _b[g16]*lnp6m
      > ean)-_b[l1]*_b[b1]/(exp(_b[b1]*lnp1mean + _b[b2]*lnp2mean + _b[b3]*lnp3mean +
      > _b[b4]*lnp4mean + _b[b5]*lnp5mean + _b[b6]*lnp6mean))*(lnmmean - (5.0 + _b[a
      > 1]*lnp1mean + _b[a2]*lnp2mean + _b[a3]*lnp3mean + _b[a4]*lnp4mean + _b[a5]*ln
      > p5mean + _b[a6]*lnp6mean + 0.5*_b[g11]*lnp1mean*lnp1mean + 0.5*_b[g12]*lnp1m
      > ean*lnp2mean + 0.5*_b[g13]*lnp1mean*lnp3mean + 0.5*_b[g14]*lnp1mean*lnp4mean
      > + 0.5*_b[g15]*lnp1mean*lnp5mean + 0.5*_b[g16]*lnp1mean*lnp6mean + 0.5*_b[g21]
      > *lnp2mean*lnp1mean + 0.5*_b[g22]*lnp2mean*lnp2mean + 0.5*_b[g23]*lnp2mean*lnp
      > 3mean + 0.5*_b[g24]*lnp2mean*lnp4mean + 0.5*_b[g25]*lnp2mean*lnp5mean + 0.5*_
      > b[g26]*lnp2mean*lnp6mean + 0.5*_b[g31]*lnp3mean*lnp1mean + 0.5*_b[g32]*lnp3me
      > an*lnp2mean + 0.5*_b[g33]*lnp3mean*lnp3mean + 0.5*_b[g34]*lnp3mean*lnp4mean +
      > 0.5*_b[g35]*lnp3mean*lnp5mean + 0.5*_b[g36]*lnp3mean*lnp6mean + 0.5*_b[g41]*
      > lnp4mean*lnp1mean + 0.5*_b[g42]*lnp4mean*lnp2mean + 0.5*_b[g43]*lnp4mean*lnp3
      > mean + 0.5*_b[g44]*lnp4mean*lnp4mean + 0.5*_b[g45]*lnp4mean*lnp5mean + 0.5*_b
      > [g46]*lnp4mean*lnp6mean + 0.5*_b[g51]*lnp5mean*lnp1mean + 0.5*_b[g52]*lnp5mea
      > n*lnp2mean + 0.5*_b[g53]*lnp5mean*lnp3mean + 0.5*_b[g54]*lnp5mean*lnp4mean +
      > 0.5*_b[g55]*lnp5mean*lnp5mean + 0.5*_b[g56]*lnp5mean*lnp6mean + 0.5*_b[g61]*l
      > np6mean*lnp1mean + 0.5*_b[g62]*lnp6mean*lnp2mean + 0.5*_b[g63]*lnp6mean*lnp3m
      > ean + 0.5*_b[g64]*lnp6mean*lnp4mean + 0.5*_b[g65]*lnp6mean*lnp5mean + 0.5*_b[
      > g66]*lnp6mean*lnp6mean))^2)) (d1: _b[d1])
      elasm1:_b invalid name
      ------------------------------------------------ end nlcom.CheckValue ---
      `dont'di as txt %12s abbrev(`"`name'"',12) ": " as res `"`exp'"'
      local eqns `"`eqns' (`exp'=0)"'
      local ++i
      }
      -------------------------------------------------- end nlcom.ParsePrint ---
      --------------------------------------------------------------- end nlcom ---
      qui nlcom (elasm`i': _b[elasm`i']) (mu`i'`j':_b[mu`i'`j'f]/(1e+2)) (d`i': _b[
      > d`i']) , post noheader
      }
      if _b[d`i']!=0{
      nlcom (elasm`i': _b[elasm`i']*_b[d`i']) (elu`i'`j'_b[mu`i'`j']/w`i'mean - ${d
      > elta})*_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
      }
      nlcom (elc`i'`j': _b[elu`i'`j'] + _b[elasm`i']*w`j'mean), noheader
      qui est restore quaids
      }
      }
      r(198);

      end of do-file

      r(198);

      Comment


      • #4
        Below I have copied the first three nlcom commands in your double loop, changing the spacing a bit to make the various pieces line up. I think you have one or more typographical errors in the piece I've highlighted in red.

        Code:
        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
        }

        Comment

        Working...
        X