Announcement

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

  • #16
    Hello, Gizem Levent

    Thanks for your suggestion. I must say until now I had not heard about Churdle models. So, thanks.

    So, initially, I was estimating my model using a ZINB:
    Code:
    zinb y_var i.crt, inflate(i.crt) vce(robust) nolog
    
    Zero-inflated negative binomial regression      Number of obs     =        206
                                                    Nonzero obs       =         95
                                                    Zero obs          =        111
    
    Inflation model      = logit                    Wald chi2(3)      =       1.19
    Log pseudolikelihood =  -349.203                Prob > chi2       =     0.7564
    
    ------------------------------------------------------------------------------
                 |               Robust
           y_var |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
    y_var        |
             crt |
              0  |          0  (base)
              1  |   .0556972   .1893739     0.29   0.769    -.3154687    .4268632
              2  |   .2217949   .2087133     1.06   0.288    -.1872756    .6308654
              3  |   .0521774   .1856313     0.28   0.779    -.3116533    .4160081
                 |
           _cons |   1.318401   .1295376    10.18   0.000     1.064512    1.572291
    -------------+----------------------------------------------------------------
    inflate      |
             crt |
              0  |          0  (base)
              1  |   .6167728   .4522847     1.36   0.173    -.2696889    1.503235
              2  |   .8977877   .4333456     2.07   0.038      .048446    1.747129
              3  |   .8024306   .4043015     1.98   0.047     .0100141    1.594847
                 |
           _cons |   -.514691   .3056755    -1.68   0.092    -1.113804     .084422
    -------------+----------------------------------------------------------------
        /lnalpha |  -1.683724   .3398513    -4.95   0.000     -2.34982   -1.017628
    -------------+----------------------------------------------------------------
           alpha |   .1856812    .063104                      .0953863    .3614513
    ------------------------------------------------------------------------------
    As a complement, I compared the fit of several count models through the countfit command (it might help you as well).

    Later on, I thought in ordering my y_var as I described in #1. Therefore, I estimated my model using an ordered probit but with known cutpoints values:
    Code:
    capture program drop oprobit1
    
    . program define oprobit1
      1. qui {
      2.  args lnf xb sig
      3.  replace `lnf' = ln(normprob((0-`xb')/`sig'))                            if $ML_y1==3
      4.  replace `lnf' = ln(normprob((10-`xb')/`sig')-normprob((1-`xb')/`sig'))  if $ML_y1==2
      5.  replace `lnf' = ln(1-normprob((11-`xb')/`sig'))                         if $ML_y1==1
      6.  }
      7.  end
    
    . ml model lf oprobit1 (OProbit: new_yvar = i.crt) (Sigma: ), /*
    >         */ title(Ordered Probit with known thresholds)
    
    . ml search
    initial:       log likelihood =     -<inf>  (could not be evaluated)
    feasible:      log likelihood = -354.79959
    rescale:       log likelihood = -253.42192
    rescale eq:    log likelihood = -174.49937
    
    . ml maximize, nolog
    
    Ordered Probit with known thresholds            Number of obs     =        206
                                                    Wald chi2(3)      =       4.77
    Log likelihood = -171.53029                     Prob > chi2       =     0.1897
    
    ------------------------------------------------------------------------------
        new_yvar |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
    OProbit      |
             crt |
              0  |          0  (base)
              1  |  -1.862053   1.330443    -1.40   0.162    -4.469673    .7455673
              2  |  -2.344412   1.293559    -1.81   0.070    -4.879741    .1909163
              3  |  -2.226667   1.182047    -1.88   0.060    -4.543437    .0901035
                 |
           _cons |   1.279063   .8464439     1.51   0.131    -.3799364    2.938063
    -------------+----------------------------------------------------------------
    Sigma        |
           _cons |   5.463908   .5414179    10.09   0.000     4.402748    6.525068
    ------------------------------------------------------------------------------
    So those are the options that I have explored until far. But I will look at your suggestion.

    Why do you think it could be more suitable than a ZINB in this case?

    Thanks for your comments!
    Last edited by Gaston Fernandez; 10 Apr 2020, 02:36.

    Comment


    • #17
      Hey Gaston Fernandez,

      The main difference between hurdle and zero-inflated models is : hurdle process zero only at the logistic proportion of the model, whereas the ZIP ZINB are processing some zeros in logistic proportion (excess zero), same in the count related model (the ones that fits in the distribution defined). Therefore, zero inflated models are usually preferred when the zeros can be either structural or sampling zeros. Hurdle assumes that the zeros are true zeros. I hope that makes sense.

      However, on Stata there is only churdle ( under the linear models) Which is the combination of logistic and truncated linear regression. There is no count data related hurdle models available. There are some user crated packages tho such us negative binomial logit hurdle model( see help hnblogit), there is also poisson logit hurdle.

      I have never tried countfit! thanks for sharing, I will have a look.

      My bests,

      Gizem

      Comment


      • #18
        Gizem Levent,

        Thanks for that!

        Comment

        Working...
        X