Announcement

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

  • Tobit marginal effects

    Dear Stata users,
    I estimate a Tobit model (by Stata 14), and then compute marginal effects (dE(y|x)/dx, using either margins or mfx), obtaining the outcome reported in the attachment tobit output.txt .
    As you can see, coefficients (that should represent the effects on the latent variable) and marginal effects are the same. Am I using the wrong commands?
    Thank you very much for your attention
    Maria

  • #2
    If you read the FAQ, as all are requested to do before posting, you will see that attaching files is discouraged. I am among those who will not open an attachment from somebody I don't know, so I haven't looked at it. So I don't actually know what you've done.

    But I have a good guess as to what went wrong here. If you used -margins, dydx()- (or eydx or eyex or dyex) and no other options, the default prediction in -margins- after -tobit- is xb. So you are only getting the marginal effect on the linear predictor which, of course, is just the coefficient. Run -help tobit postestimation- and then click on the -margins- link to see the other things you can specify for -margins- to predict. I don't know exactly what your goals are, but I think most often people want to use the -predict(ystar(a, b))- option (with suitable values of a and b, of course). Then you will get marginal effects (or semi- or full-elasticities) on something more like the outcome variable.

    Comment


    • #3
      Thank you very much for your kind reply, I apologize for the attachment.
      My goal is obtaining dE(y|x)/dx : the impact of my covariates on the expected value of y (not conditional on y>0). I have read the help you mention, and tried several options but I obtain always the same coefficients.

      The only way I obtain different figures is when I compute dE(y|y>0 x)/dx, but it is not what I need

      Hope you can visualize my output in what follows:

      tobit deban south lnage llncapinv, ll(0)

      Tobit regression Number of obs = 3,836
      LR chi2(3) = 2148.62
      Prob > chi2 = 0.0000
      Log likelihood = -22440.609 Pseudo R2 = 0.0457

      ------------------------------------------------------------------------------
      deban | Coef. Std. Err. t P>|t| [95% Conf. Interval]
      -------------+----------------------------------------------------------------
      south | -566.879 266.9171 -2.12 0.034 -1090.192 -43.56589
      lnage | -64.47111 138.8334 -0.46 0.642 -336.6655 207.7232
      llncapinv | 4441.337 91.39977 48.59 0.000 4262.14 4620.534
      _cons | -36714.28 795.0454 -46.18 0.000 -38273.04 -35155.53
      -------------+----------------------------------------------------------------
      /sigma | 5072.311 76.40259 4922.518 5222.105
      ------------------------------------------------------------------------------
      1,654 left-censored observations at deban <= 0
      2,182 uncensored observations
      0 right-censored observations



      margins, dydx(*) predict (ystar(.,.)) atmeans

      Conditional marginal effects Number of obs = 3,836
      Model VCE : OIM

      Expression : E(deban), predict(ystar(.,.))
      dy/dx w.r.t. : south lnage llncapinv
      at : south = .141293 (mean)
      lnage = 2.921056 (mean)
      llncapinv = 8.128421 (mean)

      ------------------------------------------------------------------------------
      | Delta-method
      | dy/dx Std. Err. z P>|z| [95% Conf. Interval]
      -------------+----------------------------------------------------------------
      south | -566.879 266.9171 -2.12 0.034 -1090.027 -43.73114
      lnage | -64.47111 138.8334 -0.46 0.642 -336.5795 207.6373
      llncapinv | 4441.337 91.39977 48.59 0.000 4262.197 4620.477
      ------------------------------------------------------------------------------


      margins, dydx(*) predict (e(.,.)) atmeans

      Conditional marginal effects Number of obs = 3,836
      Model VCE : OIM

      Expression : E(deban), predict(e(.,.))
      dy/dx w.r.t. : south lnage llncapinv
      at : south = .141293 (mean)
      lnage = 2.921056 (mean)
      llncapinv = 8.128421 (mean)

      ------------------------------------------------------------------------------
      | Delta-method
      | dy/dx Std. Err. z P>|z| [95% Conf. Interval]
      -------------+----------------------------------------------------------------
      south | -566.879 266.9171 -2.12 0.034 -1090.027 -43.73114
      lnage | -64.47111 138.8334 -0.46 0.642 -336.5795 207.6373
      llncapinv | 4441.337 91.39977 48.59 0.000 4262.197 4620.477
      ------------------------------------------------------------------------------




      margins, dydx(*) predict (e(0,.)) atmeans

      Conditional marginal effects Number of obs = 3,836
      Model VCE : OIM

      Expression : E(deban|deban>0), predict(e(0,.))
      dy/dx w.r.t. : south lnage llncapinv
      at : south = .141293 (mean)
      lnage = 2.921056 (mean)
      llncapinv = 8.128421 (mean)

      ------------------------------------------------------------------------------
      | Delta-method
      | dy/dx Std. Err. z P>|z| [95% Conf. Interval]
      -------------+----------------------------------------------------------------
      south | -185.4931 87.39765 -2.12 0.034 -356.7893 -14.19684
      lnage | -21.09612 45.43383 -0.46 0.642 -110.1448 67.95256
      llncapinv | 1453.286 30.66317 47.40 0.000 1393.187 1513.385
      ------------------------------------------------------------------------------

      Comment


      • #4
        Maria: The correct option is

        Code:
        predict (ystar(0,.))
        Your current option tells Stata to act as if there's no censoring even though you estimated the model allowing it. Also, I would not use "atmeans." Usually it makes more sense to average the partial effects rather than evaluate the partial effects at the mean -- especially when you have dummy or other discrete explanatory variables. If south is a dummy variable, you should use i.south in the Stata command.

        Comment


        • #5
          Thank you very much, I do appreciate your precious help!
          The outcome I obtain:

          margins, dydx(*) predict (ystar(0,.))

          Average marginal effects Number of obs = 3,836
          Model VCE : OIM

          Expression : E(deban*|deban>0), predict(ystar(0,.))
          dy/dx w.r.t. : 1.south lnage llncapinv

          ------------------------------------------------------------------------------
          | Delta-method
          | dy/dx Std. Err. z P>|z| [95% Conf. Interval]
          -------------+----------------------------------------------------------------
          1.south | -236.2525 108.2937 -2.18 0.029 -448.5042 -24.00085
          lnage | -27.59021 59.41536 -0.46 0.642 -144.0422 88.86176
          llncapinv | 1900.656 40.00744 47.51 0.000 1822.243 1979.07
          ------------------------------------------------------------------------------
          Note: dy/dx for factor levels is the discrete change from the base level.


          The star in the Expression shown by Stata - E(deban*|deban>0), predict(ystar(0,.)) - makes me doubt: am I estimating the marginal impact on the latent variable (y*)?

          I wish you a happy week end

          Best Regards
          Maria

          Comment


          • #6
            Maria: Good observation. I've been meaning to alert the Stata people to this mislabeling. First, for some strange reason, Stata chose to use y* for the observed variable and y for the latent variable -- exactly backwards in my opinion. In fact, I don't know where they got that notation. Maybe we can start a movement for Stata to change this because, in my experience, it's a source of confusion.

            Second, the label that shows conditioning on "deban > 0" is wrong. I've checked the calculations by hand in other examples, and the above margins command is computing the APE of E(y|x), where y is the observed outcome. It is not conditioning on positive outcomes.That would be an easier fix on their part.

            Comment


            • #7
              Thank you so much, you are solving a puzzle that was driving me (and my students) crazy! I agree Stata should amend this notation, how can I signal this point?

              Thank you again for your kindness and your luminous explanation!
              All the best
              Maria

              Comment


              • #8
                Hi Maria: I'm not sure whom to contact at Stata. I'll try to find out and then suggest they change the notation and correct the conditioning statement.

                Comment


                • #9
                  Dear Jeff, I use the same notations as yours. And, I think Stata uses the uncommon notations as (from help tobit)
                  Click image for larger version

Name:	tobit1.png
Views:	1
Size:	44.6 KB
ID:	1628658



                  Click image for larger version

Name:	tobit2.png
Views:	1
Size:	28.0 KB
ID:	1628659
                  Ho-Chuan (River) Huang
                  Stata 17.0, MP(4)

                  Comment


                  • #10
                    Originally posted by Jeff Wooldridge View Post
                    Maria: Good observation. I've been meaning to alert the Stata people to this mislabeling. First, for some strange reason, Stata chose to use y* for the observed variable and y for the latent variable -- exactly backwards in my opinion. In fact, I don't know where they got that notation. Maybe we can start a movement for Stata to change this because, in my experience, it's a source of confusion.

                    Second, the label that shows conditioning on "deban > 0" is wrong. I've checked the calculations by hand in other examples, and the above margins command is computing the APE of E(y|x), where y is the observed outcome. It is not conditioning on positive outcomes.That would be an easier fix on their part.
                    Has this mislabeling been corrected or does STATA still use the same notation?

                    Comment

                    Working...
                    X