Announcement

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

  • Causal Mediation with Multiple Mediators- some continuous and some binary

    Hi everyone,
    Is there any way to produce causal mediation effects (NIE, NDE, TE) for a model that has multiple mediators of different distributions?

    Using Stata 18.5, I ran a gsem model that has a continuous dependent variable, binary treatment, and 6 mediator variables- 4 are continuous (bpi_avg_std, bpi_inter_avg_std, psq3_std, and se_index_std) and 2 are binary (postop_cr_ae_unsched_yn and postop_cr_rescue). The model produced estimates for the 'a' and 'b' effects but I want to calculate the NIE, NDE, and TE. I could use nlcom to estimate the indirect, direct, and total effects but this would not be accurate because of the use of both continuous and binary mediator variables. The nlcom command appears to overestimate the effect of the binary mediators.

    For simpler models in which we were looking at each mediator pathway separately, I used the mediate command to specify the NIE, NDE, and TE but I do not see that I can use mediate with multiple mediators of different distributions.

    Code:
    /*The gsem model:*/
    gsem (2.opioid -> overall_satisfied_postop, family(gaussian) link(identity)) (2.opioid -> bpi_avg_std, family(gaussian) link(identity)) (2.opioid -> bpi_inter_avg_std, family(gaussian) link(identity)) (2.opioid -> psq3_avg_std, family(gaussian) link(identity)) (2.opioid -> se_index_std, family(gaussian) link(identity)) (2.opioid -> 1.postop_cr_ae_unsched_yn, family(multinomial) link(logit)) (2.opioid -> 1.postop_cr_rescue, family(multinomial) link(logit)) (bpi_avg_std -> overall_satisfied_postop, family(gaussian) link(identity)) (bpi_inter_avg_std -> overall_satisfied_postop, family(gaussian) link(identity)) (psq3_avg_std -> overall_satisfied_postop, family(gaussian) link(identity)) (se_index_std -> overall_satisfied_postop, family(gaussian) link(identity)) (1.postop_cr_ae_unsched_yn -> overall_satisfied_postop, family(gaussian) link(identity)) (1.postop_cr_rescue -> overall_satisfied_postop, family(gaussian) link(identity)) (M1[site] -> overall_satisfied_postop, family(gaussian) link(identity)), covstruct(_lexogenous, diagonal) vce(cluster site) latent(M1 ) nocapslatent
    
    /*The nlcom statement:*/
    nlcom (nlcom_pain: _b[bpi_avg_std:2.opioid]*_b[overall_satisfied_postop:bpi_avg_std]) (nlcom_pint: _b[bpi_inter_avg_std:2.opioid]*_b[overall_satisfied_postop:bpi_inter_avg_std]) (nlcom_sint: _b[psq3_avg_std:2.opioid]*_b[overall_satisfied_postop:psq3_avg_std]) (nlcom_ssev: _b[se_index_std:2.opioid]*_b[overall_satisfied_postop:se_index_std]) (nlcom_appt: _b[overall_satisfied_postop:1.postop_cr_ae_unsched_yn]*_b[1.postop_cr_ae_unsched_yn:2.opioid]) (nlcom_rmed: _b[overall_satisfied_postop:1.postop_cr_rescue]*_b[1.postop_cr_rescue:2.opioid]) 
    
    /*Example mediate commands for individual models:*/
    mediate ( overall_satisfied_postop) (bpi_avg_std) (opioid), vce(cluster site)
    If anyone has any thoughts or comments, I would be incredibly appreciative. Thanks so much for your time- Tracy

    Data:
    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input long dag byte overall_satisfied_postop long opioid float(bpi_avg_std bpi_inter_avg_std psq3_avg_std se_index_std) byte(postop_cr_ae_unsched_yn postop_cr_rescue)
    1 1 2  -.3344965   .0811432 -1.0930908 -.21633343 0 0
    1 3 2  1.8984196  2.1327698  2.1251218   5.561748 0 0
    1 1 1  -.8095852  -1.471439 -1.0930908  -.7416136 0 0
    1 3 1  -.6433042  .13659258 -1.0930908  -.7416136 0 0
    1 2 2 -.09695224 -1.0278442 -1.0930908  -.9167069 0 0
    1 2 1  -.8333396  -1.305091 -.55672204  -.4789735 0 0
    1 1 2  .16434646  -.8060468 -.02035328  1.0093203 1 0
    1 3 2   .6156806   .5801875 -.55672204  -.8291602 . .
    1 1 2 -1.2609193 -1.0832937  .51601547 -.12878677 0 0
    1 2 2  .03963568  -.6396986 -.55672204  -.9167069 . .
    1 2 2   1.589612  1.8000735  2.1251218  .22140007 0 0
    1 2 2 -1.2609193  -.4733505 -.02035328  -.7416136 0 0
    1 3 2  1.0590967  -.8892207  1.0523843  .38427755 0 0
    1 1 2 -.59579533 -1.1387429 -1.0930908 -.12878677 0 0
    1 4 1   .4969085  2.1327698  2.1251218   .8342269 1 0
    1 3 2   .4018906  -1.305091 -.55672204 -.21633343 0 0
    1 1 1  -1.237165  -.3070023 -1.0930908 -.19393773 0 0
    1 3 1   1.138278   .3583899   1.588753  -.9167069 0 0
    1 2 1 -1.1183927  -1.471439 -1.0930908  -.9167069 0 0
    1 1 2  -.9521117 -1.0832937 -1.0930908  -.7416136 0 0
    1 2 2   .8215523   .8574342          .   3.365299 0 0
    1 2 2  .11683752  -.4179011   1.588753  1.7972405 0 0
    1 2 1  -.5007776  -.9169455 -.02035328  -.9167069 0 0
    2 3 2  -.6670585  -.4733505 -.55672204  -.9167069 0 0
    2 1 2  -.8333396  -.7505974 -.55672204  -.9167069 0 0
    2 2 1   .7344528   .4138393  .51601547  -.3038801 0 0
    2 2 2  .16434646 -1.0832937 -.02035328  -.9167069 0 0
    2 3 1  1.3520677  -.5287999  .51601547  -.3914268 0 0
    2 1 1  -1.355937  -.9723948 -1.0930908  .04630665 0 0
    2 2 2 -.09695224 -1.0278442  .51601547  -.8291602 0 0
    2 2 2 -1.4509547  -.6396986 -1.0930908  -.8291602 0 0
    2 2 2  .23560967  -.8060468 -.55672204 -.56652015 1 0
    2 1 1  -.5482864 -.14065439 -.02035328  -.8291602 0 0
    2 . 2 -1.1480857  -1.221917 -1.0930908  -.9167069 . .
    2 2 2  1.4470856   .9128836  1.0523843  -.9167069 0 1
    2 2 2   .9957513    .968333  .51601547   2.147427 0 0
    2 5 1  2.2666132   2.520915  2.1251218   2.413194 0 1
    2 2 1  -1.522218  -1.305091 -1.0930908  -.9167069 0 0
    2 1 2  -.2632333  -.5842493 -1.0930908  -.7416136 0 0
    2 1 2   .6334964   .0256938  1.0523843 -.05935316 0 0
    2 1 1 -1.7122535  -1.471439 -1.0930908  -.9167069 0 0
    2 1 2 -1.2134105 -1.1941923  .51601547  -.9167069 0 0
    2 2 2  .18810086  1.1901306  .51601547  1.9723338 0 0
    2 3 2  2.0409462  1.0792319  1.0523843 -.21633343 0 0
    2 1 2   .5681718  1.0792319  1.0523843  2.2349737 0 0
    2 . 1  1.7796475  1.9109722  2.1251218 -.21633343 . .
    3 2 1  -.6908129  -.7505974 -1.0930908  .04630665 0 0
    3 1 1  1.0195059  .52473813 -.02035328  1.0093203 0 0
    3 3 1  1.3283135    .968333  1.0523843 -.04124002 0 0
    3 1 1   .2118554  1.1346812 -.55672204  1.4470537 0 0
    3 2 1  -.7145675  -.9169455 -.55672204  -.6540669 0 0
    3 2 2  1.3995768   .8019848  2.1251218  .13385332 0 0
    3 2 1  1.7558932  2.3545675   1.588753  -.7416136 1 1
    3 2 2  1.8984196  1.3010292  .51601547   1.359507 0 0
    3 2 2   .4018906  1.1901306  1.0523843   1.359507 1 0
    3 3 1   .7344528   .4692887 -.55672204 -.21633343 0 0
    3 2 2  -.4770232  -.4733505 -.55672204  -.3038801 0 0
    3 2 2  .06932872   .7465357  1.0523843 -.21633343 0 0
    3 3 2   .6631894   .3583899 -1.0930908  -.8291602 0 0
    3 1 2   .4018906   -.861496 -.02035328  .13385332 0 0
    3 2 2  -.3463738   .6079121 -1.0930908 -.02873334 0 0
    3 1 2 -.14446117   .3583899 -.55672204   .5715868 0 0
    4 1 1  -.8511554  -.8892207 -.02035328 -.47272015 0 0
    4 2 2  .09308312  -.4733505 -.02035328  .48404005 0 0
    4 1 1   .5919261  -1.471439 -1.0930908  -.9167069 0 0
    4 2 1 -1.2134105  -.4179011 -1.0930908  -.9167069 0 0
    4 2 2  -.9283573  -.4733505 -.02035328   .5715868 0 0
    4 1 1  1.0432603  1.0237824 -.55672204  -.3914268 0 0
    4 1 1  -.9283573   .3583899  .51601547   4.686281 0 0
    4 1 1 -.04944343 -1.1387429 -1.0930908  -.9167069 0 0
    4 3 2  1.0432603   1.578276   1.588753  1.4470537 0 0
    4 1 1 -.09695224 -1.4159898 -1.0930908  -.6540669 0 0
    4 4 2   2.611053   2.021871  2.1251218  1.7972405 1 1
    4 2 2  -.6195498   .9128836  .51601547  -.7416136 0 0
    4 2 2  1.3283135  .24749137  1.0523843  -.4789735 0 0
    4 2 1  -.6433042 -.14065439  1.0523843  -.6947135 0 0
    4 2 2  -1.023375  1.1346812 -.55672204  .04630665 0 0
    4 2 2  -.9283573 -1.2496417 -.55672204  -.3914268 0 0
    4 2 1  1.9934375  2.3545675  2.1251218  2.0598805 1 0
    4 2 1  .06932872    .192042   1.588753 -.04124002 0 0
    4 2 1 -1.1421471  -.3624517 -1.0930908  -.6540669 0 0
    4 2 2  1.3995768   2.188219 -.55672204  2.2349737 0 0
    4 2 1   .2118554  .52473813  .51601547 -.21633343 0 0
    4 1 1   .8057161  -.5287999  .51601547   2.585161 0 0
    4 1 1  -.8808484  -.4733505 -.55672204  -.7416136 0 0
    4 2 2 -1.0471294 -1.0832937 -.02035328  -.8291602 0 0
    5 3 2  -.9204392  -.9723948 -1.0930908 -.19393773 0 0
    5 2 2  -1.474709  -.7505974 -1.0930908  -.6540669 0 0
    5 2 2 -1.7122535  -1.471439 -1.0930908  -.6540669 0 0
    5 3 2  -1.474709  -1.305091 -1.0930908  -.9167069 0 0
    5 1 1 -1.3321825  -1.471439 -1.0930908  -.8291602 0 0
    5 2 1  -.9996206  -.8060468 -.02035328  -.3914268 0 0
    5 2 2 -1.1183927 -.08520499 -.55672204  -.3914268 0 0
    5 1 2  -.7383219  -.7505974 -.55672204 -.56652015 0 0
    5 2 2  .44939965  -.5287999 -1.0930908  1.2719603 0 0
    5 2 2  -.8333396 -1.1941923 -1.0930908  -.9167069 0 0
    5 2 1  -.3344965  -.3624517   1.588753 -.12878677 0 0
    5 3 1  .47315395   .4692887 -.02035328  -.7416136 0 0
    5 2 1   .5681718  1.3564786  2.1251218  -.6540669 0 0
    5 2 2  -.7620763 -1.1387429 -1.0930908  -.4789735 0 0
    end
    label values opioid opioid
    label def opioid 1 "Non-Opioid", modify
    label def opioid 2 "Opioid", modify
Working...
X