Announcement

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

  • Mlogit with Multiple Imputation Produces Relative Risk Ratios with Negative Values

    I am analyzing summarized Medicaid data (N = 1,102,479) and using Stata 17.0. I am looking at various co-occurring mental health and substance use disorder variables coded as binary in relation to a 5-category variable that captures increasing levels of opioid use and misuse. I have been running separate mlogit models for each disorder. Because I want to control for demographic covariates, I am including in the model a small set of demographic predictors (e.g., race/ethnicity, gender, age, etc.).

    Code:
    *** Run multinomial Logistic Regression by Co-occurring Disorder ***
    
    foreach var of varlist alchl_flag tbcco_flag cnnbs_flag hllgn_flag inhlnts_flag ///
                sha_flag stmlnts_ccne_flag stmlnts_othr_flag mh_dsrdr_anxty mh_dsrdr_adhd mh_dsrdr_atsm ///
            mh_dsrdr_bplr mh_dsrdr_dprssn mh_dsrdr_intllctl mh_dsrdr_prsnlty mh_dsrdr_ptsd mh_dsrdr_schz {
        
        mlogit cat_misuse5 i.(`var' male race_ethnic mrtl_stus_cd vet_ind ctznshp_ind) age, rrr nolog    
    }

    Running the models on the raw data and requesting relative risk ratios produces meaningful coefficients for each predictor (i.e., all values greater than 0). However because several of the predictors had a large number of missing values (race_ethnic missing = 38,880/1,102,479; marital status = 137,727/1,102,479), I decided to run multiple imputation and then rerun the mlogit models with the imputed values to compare with the non-imputed models:

    Code:
    *** Rerun using multiple imputation to impute race/ethnicity and marital status ***
    
    mi set flong
    mi register imputed race_ethnic mrtl_stus
    mi register regular cat_misuse5 age alchl_flag tbcco_flag cnnbs_flag ///
                        mh_dsrdr_bplr stmlnts_ccne_flag mh_dsrdr_dprssn mh_dsrdr_anxty ///
                        mh_dsrdr_schz mh_dsrdr_ptsd
                        
    mi impute chained (mlogit) race_ethnic mrtl_stus = i.(cat_misuse5 alchl_flag tbcco_flag cnnbs_flag ///
                                stmlnts_ccne_flag mh_dsrdr_bplr mh_dsrdr_dprssn mh_dsrdr_anxty ///
                                mh_dsrdr_schz mh_dsrdr_ptsd) c.age, add(5)
    
    mi estimate: mlogit cat_misuse5 i.(alchl_flag male race_ethnic mrtl_stus vet_ind ctznshp_ind) age, rrr nolog
    The results were very different, dramatically so and then I noticed that the coefficients for many of the predictors had negative values, which I don't believe is possible with risk ratios. In fact, removing the rrr option produced the same results as having the rrr option specified. So I don't believe I am able to get risk ratios with mi estimate: mlogit. Or am I doing something very wrong?

    Any help would be much appreciated.
    Last edited by James Swartz; 01 Mar 2023, 15:28.

  • #2
    The results were very different, dramatically so and then I noticed that the coefficients for many of the predictors had negative values, which I don't believe is possible with risk ratios. In fact, removing the rrr option produced the same results as having the rrr option specified. So I don't believe I am able to get risk ratios with mi estimate: mlogit.
    When using -mi estimate-, exponentiation options for the command being estimated are ignored. To get them to work you have put them as options to -mi estimate- itself:
    Code:
    mi estimate, rrr: mlogit cat_misuse5 i.(alchl_flag male race_ethnic mrtl_stus vet_ind ctznshp_ind) age, nolog
    will get you the relative risk ratios.

    Comment


    • #3
      Thanks very much for the quick reply. Saved me a ton of time. And my apologies for the duplicate post. I got lost trying to put in the output and did not realize it had already posted.

      James

      Comment

      Working...
      X