Announcement

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

  • Zero-inflated ordered probit help

    Hi Stata forum,

    I am utilizing a zero-inflated ordered probit model for an analysis on substance use in Stata 17, and noticed a cut-point value in the output that looks problematic to me (compared to the other cut points). I also noticed that the average marginal effects for changes in either of my two predictors are completely unrelated (z = 0) to probability for zero values conditional on participation (i.e., zero level of substance use but in the ordered component), but significantly related to probability for non-participation. I don't know if those two things are related, but it seemed possible and I have been struggling to understand if this is concerning for interpretation of my effects. My model has two predictor variables that I standardized (x1 and x2 in the following dataex output) that are used in both model components, and a five level ordinally-ranked outcome on substance use frequency (y1 in the dataex output). x1 has a significant positive coefficient in the ordered component and a significant negative coefficient in the inflation component; x2 has a significant positive coefficient in both components of the model. I was hoping that someone could help me understand this peculiar cut point value and possibly related marginal effect difference between the two types of zeros, as I want to make sure my model is interpretable. I provided all relevant output and example data, please let me know if anything else would be helpful to include! Thank you for any help that could be provided.

    Here is my code for the ZIOP model: zioprobit y1 x1 x2, inflate(x1 x2)

    Here are the cut points I got, and /cut1 was concerning given the large negative value, standard error, and confidence interval:

    ---------Coefficient--Std. err.---[95% conf. interval]
    ---------------+----------------------------------------------------------------
    /cut1 | -7.491846 194.4509 -388.6086 373.6249
    /cut2 | .1161476 .2585863 -.3906722 .6229674
    /cut3 | .8731389 .2714118 .3411814 1.405096
    /cut4 | 1.443595 .2893972 .8763873 2.010803
    --------------------------------------------------------------------------------

    The average marginal effect output for probability of non-participation and participation with zero-consumption were:

    Non-participation: margins, predict(pnpar) dydx(x1 x2)

    --------------------------------------------------------------------------------
    | Delta-method
    | ------dy/dx------std. err.----z---P>|z|---[95% conf. interval]
    ---------------+----------------------------------------------------------------
    x1 | .0807176 .0243734 3.31 0.001 .0329466 .1284886
    x2 | -.2075266 .023853 -8.70 0.000 -.2542775 -.1607756
    --------------------------------------------------------------------------------

    Participation with zero-consumption: margins, predict(pjoint1 outcome(0)) dydx(x1 x2)

    --------------------------------------------------------------------------------
    | Delta-method
    | ------dy/dx-------std. err.----z----P>|z|---[95% conf. interval]
    ---------------+----------------------------------------------------------------
    x1 | -1.21e-09 .0934703 -0.00 1.000 -.1831984 .1831984
    x2 | -4.05e-10 .0268515 -0.00 1.000 -.052628 .052628
    --------------------------------------------------------------------------------

    Here is example data:

    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input byte y1 double(x1 x2)
    0 -1.3182884334179708   .20508497962936276
    0    .524604411531049  -.14909458294033573
    0  -1.227507998230392    1.398686299361347
    1  -1.370305060967942    .4890011458617213
    0   .4312344726990797    .7124374325778748
    1   .5953319787558887    1.256011745657513
    0   .2573068620969491  -1.5814214420163302
    0 -.15077979054329863   .17350508713602047
    0  .12950025586106886    -.373065290372721
    0  -.2223674762202617   -.5095255438281034
    0   .9093840963462069  -.46909474696924125
    0  -.7940520666401204   -1.749535766728144
    0 -.08722609553029873  -2.4057738937944126
    0 .013070352980564335  -2.2976897713418234
    0  1.2055170496209213   -.3715003773759855
    0  .06331580021848733    .3012970595100346
    0 -1.0264236049503106  -1.6053814952665941
    3 -.41623476714315194    .6389024730321154
    0   .9474061751413685   .26363221479177906
    0    .833914487119212  -.04411344033717609
    0  .22399453722857704   -.8665165666622053
    0 -.11030220361651744    .3056480809756038
    1 -2.2511483317781344  -.26789419175220097
    0   .9460646056098914   -.1747506695776634
    2  -.7910641640213468   1.4470988979402217
    0   .8803551434315904   1.3189178389268883
    0   .7494546220628164  -.28436926202091534
    0  1.1978924000013262   -2.048315244145489
    0 -.14241825529256236   -.2557690308757761
    0  -2.377694447427347   -.9101635837076019
    0 -.20448149687100634   .37619171977983457
    0  -1.222417603770672  -2.2270584003813765
    0  .23041824982273618  -.40758432304409714
    0 -1.4392347205294587   .02342125831448503
    2  .03341758056372694   .18706390160970152
    0   .3458859680573202  -1.4088352968787703
    0  .10065050176473565   -1.234722779034119
    1 -.34492081259401763   .36260619817126105
    4  1.6059971698394186    1.368892691952312
    end
    Last edited by Alex Kallen; 12 Aug 2022, 12:14.

  • #2
    Alex,

    I don’t know how to interpret the coefficients for ordered probit models. What I think I understand from your margins is that your covariates have a pretty big (substantively speaking) effect on the probability of being in, or not in, the structural zero (non participant) class. Conditional on not being a structural zero, they have almost zero effect on giving a response of 0, the lowest category.

    The cut points refer to the ordered probit part of the model. I don’t know the interpretation for probit. But the first cut point looks extremely low, as if almost everybody who is not a structural zero is extremely unlikely to respond at 0 to begin with.

    in an earlier conversation, I said that normally, I’d prefer to reserve zero-inflated models for cases where I can make some reasonable argument that a structural zero class might exist. Drawing off the example from the Stata manual, if you’re analyzing smoking frequency data, you truly might have some people who never smoke and never intend to, and some people who might smoke. In the classic zero inflated Poisson model, you might have some people who went to a national park and never intended to fish, and the rest of them obey a Poisson model for how many fish they catch (which might still be zero).

    I guess that if my description in the earlier paragraphs is accurate, this might be an empirical reason to not consider a zero-inflated model. That’s my judgment. My judgment is not perfect. But the reason we have Occam’s Razor is that the simpler the explanation, the fewer individual assumptions there are that could be violated. Naturally, if you can advance some sort of reasoned argument for a structural zero class, then that’s fine. Also, you could compare the BICs of the zero inflated model and a regular ordered probit model.
    Be aware that it can be very hard to answer a question without sample data. You can use the dataex command for this. Type help dataex at the command line.

    When presenting code or results, please use the code delimiters format them. Use the # button on the formatting toolbar, between the " (double quote) and <> buttons.

    Comment


    • #3
      Hi there,

      I really appreciate the assistance on this question. Your interpretation of the marginal effects is what I was thinking as well, which makes sense to me based on what I've read regarding average marginal effects. That is helpful to know about the meaning of that extremely low cut point, and it makes sense given the model appeared to identify nearly all zeros as structural zeros, given very minimal differences between average marginal effects for both types of zeros and just for structural zeros.

      As for the need for a zero-inflated model versus simpler ordered probit, I agree that there should be theoretical backing on the existence of structural zero group. In the case of my outcome, these are adolescents, and therefore the structural zero group would represent youth who would have never consumed alcohol even if they had the opportunity, and others who may have consumed alcohol, but had not for one reason or another. It was helpful for me to read the Stata example on ZIOP models, since the tobacco frequency example directly paralleled the alcohol frequency variable in my current study. The Occam's Razor point is well taken, and I was able to compare model fit statistics--including the Vuong test even though prior research had suggested it is not appropriate for providing evidence for a zero-inflation component (Wilson, P. (2015). The misuse of the Vuong test for non-nested models to test for zero-inflation. Economics Letters, 127, 51-53.)--and there was significant evidence across more than one of the indices for an increase in model fit after the addition of a zero-inflation component.

      Thank you again for your answers to both my prior question on power analysis and also on this question, it has been helpful to talk through this with another person familiar with the modeling strategy!

      Comment


      • #4
        Couple of minor follow-ups. For testing model fit, maybe consider using the BIC over a likelihood ratio test, even a modified LR test. In latent class analysis, which is like zero-inflated models, the BIC is well accepted. (NB: most properly, LCA and zero-inflated models are both subsets of finite mixture models, although LCA is disjoint from zero-inflated regressions.)

        Second, you could double check the probability of non-participation (i.e. being in the structural zero class) with this syntax. Compare that to the conditional probability of responding a 0 conditional on being a participant. I think we are both expecting a positive probability for the first, and a near zero probability for the second. Above, you predicted the joint, not conditional, probability of responding 0 and being a participant (and actually, you asked for the marginal effects of your predictors; here I'm just thinking you can check the overall margin to double check our interpretation).

        Code:
        margins, predict(pnpar)
        margins, predict(pcoint1 outcome(0))
        Be aware that it can be very hard to answer a question without sample data. You can use the dataex command for this. Type help dataex at the command line.

        When presenting code or results, please use the code delimiters format them. Use the # button on the formatting toolbar, between the " (double quote) and <> buttons.

        Comment


        • #5
          Hi,

          Thanks for following up with this suggestion, and it's always interesting to think about zero-inflated models as mixture models, even though people may not always recognize that! I had actually used just BIC and AIC for model comparison (since it is what the estat ic function provided), and the vuong test gave me a warning that it is no longer permissible for ZIOP versus OP comparisons. I wasn't able to run the pcoint1 function following a ZIOP model, but was able to do something similar where I compared the overall margins for any zero value, and then for specifically non-participation; these gave identical results, so I think our interpretation is right. It seems like without the presence of any zero-consumers in the estimated model, that ZIOP may make little sense given that's largely why it's utilized, even if it fits better than the OP based on fit indices. I'm going to discuss this with my advisors and figure out a solution, but it seems like a binary probit may be the best approach given violation of the parallel lines assumption in the OP variant of the model in question, and too few cells for use of gologit without collapsing categories anyways.

          Again, I very much appreciate your help as I've come up with questions!

          Comment

          Working...
          X