Announcement

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

  • CMP Commands

    I need to estimate a simultaneous model of health and wages. The health variable is an ordered discrete variable so I used to CMP IV ordered probit command as follows,
    cmp(lwagehr = X Y Z) (health= lwagehr X Y A), indicators ($cmp_cont $cmp_oprobit)

    Is it possible to also estimate wages using this command? using cmp (health = X Y A) (lwagehr= health X Y Z), indicators ($cmp_oprobit $cmp_cont)

    I have tried cmp (lwagehr= health X Y Z) (health= lwagehr X Y A), indicators ($cmp_cont $cmp_oprobit) but it takes a very long time to converge and eventually provides me with a lot of missing results for the different variables.

    My main problem is to estimate the model simultaneously but in the same time take into consideration that the health variable is an ordered discrete variable, any suggestions or comments about what I have already done?

    Thank you

  • #2
    Hi Yasmine. In principle, both the first two commands will work, although there is never a guarantee of convergence. The third will not work however. As explained in the help file, cmp can only do true simultaneous models if you use the # suffix to create references to (latent) linear dependent variables, enough so that the non-suffixed cross-equation references to dependent variables form a recursive/sequentially staged structure. So this might work:

    Code:
    cmp (lwagehr= health# X Y Z) (health= lwagehr# X Y A), indicators ($cmp_cont $cmp_oprobit)
    This changes the model so that now lwagehr is not a function of the observed discrete variable health, but of the hypothesized continuous, latent variable within it.

    In fact, you might be able to trick cmp into fitting your third model, as follows:

    Code:
    cmp (lwagehr= health X Y Z) (health= lwagehr# X Y A), indicators ($cmp_cont $cmp_oprobit)
    Now, leaving out the lwagehr# reference, the two-equation system has a sequential structure...even though referring to lwagehr is mathematically identical to referring to lwagehr#, since lwagehr is uncensored.

    --David

    Comment


    • #3
      Thank you for your reply, David.

      I do have some additional questions concerning the results though.
      1- How is the first stage estimation conducted especially, when the first-stage is an estimation of a reduced-form health equation (discrete ordered variable)? Is it possible to get the first stage results for the estimations?
      2 - Also, In such a model, is it possible to get the R2 and Root MSE values?

      Comment


      • #4
        1. cmp displays results for all stages.
        2. You can compute them manually by first using the predict command to get the linear predictions.

        Comment


        • #5
          I have one last question please, when I use such a model:

          cmp(lwagehr = X Y Z) (health= lwagehr X Y A), indicators ($cmp_cont $cmp_oprobit)

          The results stata reports are first:
          "Fitting individual models as starting point for full model fit."

          Where I can see the results resembles the ones of running these models separately while estimating single equations with no simultaneity. (so I guess this is not first stage)

          This is followed by:
          "Fitting full model."
          "Mixed-process regression " (the below is just an example of how results come up for me)

          | Robust
          | Coef. Std. Err. z P>|z| [95% Conf. Interval]
          -------------+----------------------------------------------------------------
          lwagehr |
          age | .0040804 .0015972 2.55 0.011 .0009499 .0072109
          mar4 | .1114278 .0216441 5.15 0.000 .0690061 .1538495
          mar5 | .0019149 .0740648 0.03 0.979 -.1432495 .1470793
          mar6 | .0516699 .0613652 0.84 0.400 -.0686037 .1719436
          |
          occ |
          1 | 0 (empty)
          2 | .2665149 .032997 8.08 0.000 .201842 .3311878
          3 | .3812626 .0299532 12.73 0.000 .3225554 .4399698
          4 | .2207112 .0330792 6.67 0.000 .1558771 .2855453
          5 | .0389838 .0338688 1.15 0.250 -.0273978 .1053653
          6 | .2460079 .0431883 5.70 0.000 .1613604 .3306554
          7 | .2684058 .0333091 8.06 0.000 .2031213 .3336904
          8 | .2907843 .035836 8.11 0.000 .220547 .3610217
          9 | .6581111 .0501904 13.11 0.000 .5597397 .7564825
          |
          _cons | .5933987 .0605845 9.79 0.000 .4746553 .7121421
          -------------+----------------------------------------------------------------
          health |
          lwagehr | .238317 .05549 4.29 0.000 .1295586 .3470753
          age | .0018509 .0095447 0.19 0.846 -.0168564 .0205583
          age2 | -.0004413 .0001187 -3.72 0.000 -.000674 -.0002086
          mar4 | -.0169498 .0392193 -0.43 0.666 -.0938183 .0599186
          mar5 | -.0569041 .127652 -0.45 0.656 -.3070974 .1932892
          mar6 | -.2346993 .1222292 -1.92 0.055 -.4742641 .0048655
          |
          reg |
          1 | 0 (empty)
          2 | -.035027 .0343102 -1.02 0.307 -.1022738 .0322198
          3 | .1792624 .0395421 4.53 0.000 .1017614 .2567634
          4 | .0170639 .0447173 0.38 0.703 -.0705805 .1047083
          5 | .2783507 .0505771 5.50 0.000 .1792215 .37748
          6 | -.1044731 .0452896 -2.31 0.021 -.1932392 -.0157071
          |
          mtedu |
          1 | 0 (empty)
          2 | .111378 .0414416 2.69 0.007 .030154 .192602
          |
          mtemp |
          1 | 0 (empty)
          2 | -.0849202 .0462111 -1.84 0.066 -.1754924 .0056519
          |
          sav |
          1 | 0 (empty)
          2 | .1385567 .0501687 2.76 0.006 .0402278 .2368856
          |
          deadsib |
          1 | 0 (empty)
          2 | -.0968402 .0259145 -3.74 0.000 -.1476316 -.0460487
          -------------+----------------------------------------------------------------
          /cut_2_1 | -2.502469 .1760263 -14.22 0.000 -2.847474 -2.157463
          /cut_2_2 | -1.3712 .1724372 -7.95 0.000 -1.709171 -1.033229
          /cut_2_3 | .3298503 .17058 1.93 0.053 -.0044803 .6641809
          /lnsig_1 | -.4514667 .0124326 -36.31 0.000 -.4758342 -.4270993
          /atanhrho_12 | -.1389769 .0383613 -3.62 0.000 -.2141637 -.0637901
          -------------+----------------------------------------------------------------
          sig_1 | .6366936 .0079158 .6213665 .6523988
          rho_12 | -.138089 .0376298 -.2109483 -.0637037
          ------------------------------------------------------------------------------


          There is no "first" option, so is it possible to clarify how i can get first stage results? I mainly need to verify how the model is fitted in the mixed process. I have specified that the health variable is estimated by a oprobit, but what happens when it is used in the estimation of wages (continuous)

          Thanks.

          Comment


          • #6
            It appears that in your model, the first stage is for lwagehr. The first half of the final results displayed above are for the lwagehr equation.

            Comment


            • #7
              Hello David,

              I am a beginner in CMP, and actually I would like to use CMP to estimate the equation jointly in order to find out the correlation between error terms of environmental awareness (continuous) and energy consumption behavior (continuous) to justify that people who are more environmentally aware have sustainable energy consumption behavior.
              • For that I use the Stata command as follows:
              cmp (environmental_awareness = age gender income_750 income_750_999 income_1000_1499 income_1500_1999 right_wing_politics centrist_politics left_wing_politics far_left_wing_politics household_size proprietor density_city_20000_200000 density_city_20000_200000 rural_area climate_zone_h2 climate_zone h3 i.year) (energy_sobriety_score_0_9 = wind_speed age gender income_750 income_750_999 income_1000_1499 income_1500_1999 right_wing_politics centrist_politics left_wing_politics far_left_wing_politics household_size proprietor density_city_20000_200000 density_city_20000_200000 rural_area climate_zone_h2 climate_zone h3 i.year), ind ($cmp_cont $cmp_cont)

              Note: I use the same variables to predict environmental awareness and energy consumption behavior,exceptthe wind speed. I use only the wind speed only for energy consumption behavior.
              • The command returns 2 warnings as below:
              Warning: regressor matrix for environmental_awareness equation appears ill-conditioned. (Condition number = 60.827425.)
              This might prevent convergence. If it does, and if you have not done so already, you may need to remove nearly
              collinear regressors to achieve convergence. Or you may need to add a nrtolerance(#) or nonrtolerance option to the command line.


              Warning: regressor matrix for energy_sobriety_score_0_9 equation appears ill-conditioned. (Condition number = 73.915721.)
              This might prevent convergence. If it does, and if you have not done so already, you may need to remove nearly
              collinear regressors to achieve convergence. Or you may need to add a nrtolerance(#) or nonrtolerance option to the command line.
              • However, using the VIF command proves that there is no collinearity:
              energy_sobriety_score_0_9

              Mean VIF | 1.38


              environmental_awareness

              Mean VIF | 1.37


              Could you check, please, if I am on the right way?

              Thank you in advance for your help.

              Comment


              • #8
                It's just a warning. It says there might be a problem with convergence. But if you are getting results without an error message about failure to converge, and with standard errors for all the parameter estimates, then it's fine.

                Comment


                • #9
                  Dear David,

                  Could you just say, if I am correct. If rho12 of error terms is uncorellated, may I use Environmental Awarenss as exogenous variable in my simple multi-regression?

                  cmp (energy_sobriety_score_0_9 = environmental_awareness nbjfxi3s16 age s1genre revenue_moins_750 revenue_moins_750_999 revenue_moins_1000_1499 revenue_moins_1500_1999 politique_droite politique_centre politique_gauche politique_tres_gauche s13nbmembresfoyer proprietor taille_commune_20000_200000 taille_commune_ville_2000_20000 taille_commune_zone_rural zone_climat_H2 zone_climat_H3 i.year) (environmental_awareness = age s1genre revenue_moins_750 revenue_moins_750_999 revenue_moins_1000_1499 revenue_moins_1500_1999 politique_droite politique_centre politique_gauche politique_tres_gauche s13nbmembresfoyer proprietor taille_commune_20000_200000 taille_commune_ville_2000_20000 taille_commune_zone_rural zone_climat_H2 zone_climat_H3 i.year) ,ind ($cmp_cont $cmp_cont) nolr tech(dfp)
                  Click image for larger version

Name:	Picture1.jpg
Views:	1
Size:	250.3 KB
ID:	1781887



                  Thank you !!!


                  Last edited by Tayyar Hasanov; 16 Sep 2025, 08:12.

                  Comment

                  Working...
                  X