Announcement

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

  • ZINB inflate part: brand dummy diverges/fails to converge in some categories but not others

    I am running separate zero-inflated negative binomial models on online review helpfulness
    data (helpful_vote as DV) for 4 product categories. The specification is:

    zinb helpful_vote two_sided z_width_ratio z_log_avg_attr_length z_image_count
    z_log_review_length z_review_age,
    inflate(i.store_id z_price z_rating z_readability_fog verified_purchase
    z_log_review_length z_review_age)
    vce(cluster parent_asin_id) difficult iterate(200)

    store_id is a categorical brand dummy with 11 levels (top-10 brands by review count
    + "Other"), entered with i. notation in the inflate (zero) equation.

    Problem 1 - non-convergence:
    For some categories, the model does not converge at all. The log likelihood repeats
    "(not concave)" for many iterations, stabilizes at a fixed value, and then
    "convergence not achieved" is returned (or the iteration limit is hit).

    Problem 2 - convergence with unidentified brand coefficients:
    For other categories, Stata reports convergence (log likelihood stabilizes, no error),
    but several store_id coefficients in the inflate part are extremely large
    (absolute value roughly 15 to 28), and either:
    - the standard error is missing (shown as "."), or
    - the standard error is itself extremely large (around 12-14),
    which is clearly implausible.
    All other variables in the same inflate equation (price, rating, readability,
    verified_purchase, review_age) have normal, interpretable coefficients and
    standard errors in the same run.

    What I have checked so far:
    - I directly tabulated brand-level zero-vote rates in the raw data (outside the
    model). Rates range smoothly from about 40% to 80% across brands in the
    problematic categories. No single brand has a rate near 0% or 100%, so this
    does not look like classic univariate complete/quasi-complete separation.
    - Categories that behave well (normal convergence, normal SEs on the same brand
    dummy) have similar sample sizes and a similarly structured brand variable
    (10 brands + Other), so it is not simply "too few observations per category."

    Questions:
    1. Is there a standard way to formally check for quasi-separation in a
    multi-predictor logit (the inflate equation here), beyond looking at
    univariate zero-rates by category?
    2. Given that some categories converge fine and others do not with an
    essentially identical specification, what would be the most useful next
    diagnostic step (e.g., dropping predictors one at a time from inflate(),
    collapsing brand categories further, checking for interactions between
    brand and another inflate-part variable)?
    3. Is Firth's penalized/bias-reduced logistic regression, or any other
    standard remedy for near-separation, applicable to the inflate part of a
    zinb model in Stata? Or is there a more standard approach specifically
    recommended for zero-inflated count models?

    Any pointers to the right diagnostic approach, relevant Stata commands, or
    literature would be appreciated.

  • #2
    I directly tabulated brand-level zero-vote rates in the raw data (outside the
    model). Rates range smoothly from about 40% to 80% across brands in the
    problematic categories. No single brand has a rate near 0% or 100%, so this
    does not look like classic univariate complete/quasi-complete separation.
    When you did this tabulation, did you remember to exclude any observation that contains a missing value for any variable in the -zinb- model (not just the -inflate()- part)? Those observations do not participate in the -zinb- estimation. It is possible that after those exclusions, you will find separation in the data that remains.

    Comment


    • #3
      Dear Lee Wooje,

      In addition to Clyde's very helpful reply, I would like to make some points that may, or may not, be helpful.

      1) The ZINB likelihood can have multiple maxima. I suggest trying to use plain NB or Poisson results as starting values.
      2) The fact that you are using a ZI model suggests that you have many zeros. If there is a covariate that perfectly identifies a zero response, you will have separation. That is likely to be the case here.
      3) Are you sure you want to use a zero inflated model? These only make sense if there are some reviews that necessarily have a score of zero, which does not seem likely in this context.
      4) If you just want to see what factors influence the expected usefulness of a review (that is, if you do not need to estimate the probability that a review is helpful), then I suggest using Poisson regression, even if you believe that there is overdispersion and the data has many zeros.

      Best wishes,

      Joao

      Comment


      • #4
        If other tips don't work, several suggestions for dealing with convergence problems can be found at

        https://journals.sagepub.com/doi/pdf...6867X261425756

        "Stata tip 167: Dealing with convergence issues and other seemingly inexplicable problems"

        A pre-publication version is available at

        https://academicweb.nd.edu/~rwilliam...p/SJTipWeb.pdf
        -------------------------------------------
        Richard Williams
        Professor Emeritus of Sociology
        University of Notre Dame
        StataNow Version: 19.5 MP (2 processor)

        EMAIL: [email protected]
        WWW: https://academicweb.nd.edu/~rwilliam/

        Comment

        Working...
        X