Announcement

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

  • Network meta-analysis: Suppressing specific pooled-overall estimates, changing legend size, inverting risk ratios, and other questions

    Hello,

    I am conducting a network meta-analysis evaluating efficacy of different treatments for preventing skin cancer (SCC = squamous cell carcinoma, NMSC = nonmelanoma skin cancer). I'm using the user-written "network" suite of programs.

    Here are the data:

    Code:
    * Example generated by -dataex-. For more info, type help dataex
    clear
    input str16 study str10 treatment int(nmsc scc ntotal) byte(otr fumonths)
    "Dirschka 2013"    "pdt"         19   . 545 0 12
    "Dirschka 2013"    "control"      5   . 100 0 12
    "Karrer 2021"      "PDT_dl"       1   0  29 0 24
    "Karrer 2021"      "control"      1   1  29 0 24
    "Piacquadio 2020"  "pdt"         11   . 112 0 12
    "Piacquadio 2020"  "control"      7   .  54 0 12
    "Togsverd-Bo 2015" "pdt"          0   0  25 1 36
    "Togsverd-Bo 2015" "control"      1   0  25 1 36
    "Togsverd-Bo 2022" "pdt"          2   1  46 1 72
    "Togsverd-Bo 2022" "control"      2   2  46 1 72
    "Wulf 2005"        "pdt"          0   0  27 1 12
    "Wulf 2006"        "control"      0   0  27 1 12
    "Blauvelt 2021"    "tirb"         1   1 353 0 12
    "Blauvelt 2021"    "control"      0   0 349 0 12
    "Gollnick 2019"    "imiquimod"    4   4 242 0 36
    "Gollnick 2019"    "diclofenac"   7   7 237 0 36
    "Hasan 2021"       "5fu"          .   0  13 1 12
    "Hasan 2021"       "imiquimod"    .   1  14 1 12
    "Hasan 2021"       "control"      .   0  13 1 12
    "Unpublished"      "imiquimod"    6   1 244 0 36
    "Unpublished"      "ingenol"     15   7 240 0 36
    "Rosenberg 2019"   "calcip5fu"    6   2  30 0 36
    "Rosenberg 2019"   "control"     13  11  40 0 36
    "Stockfleth 2004"  "imiquimod"    .   0  25 0 24
    "Stockfleth 2004"  "control"      .   1  10 0 24
    "Ulrich 2021"      "pdt"          .   .   . 0 12
    "Ulrich 2021"      "control"      .   .   . 0 12
    "Weinstock 2012"   "tretinoin"  296 124 566 0 40
    "Weinstock 2012"   "control"    310 140 565 0 40
    "Weinstock 2018"   "5fu"        182  52 468 0 30
    "Weinstock 2018"   "control"    177  56 464 0 30
    end


    I'm running into several problems:

    Using SCC incidence as the outcome:


    When generating the forest plot, I would like to:

    - Suppress the "pooled overall" estimate when there is only one study for a specific comparison
    - Make the legend smaller
    - For comparisons of control versus another treatment, I want the risk ratio to be calculated as treatment/control, rather than control/treatment
    - Add numerical data labels

    This is the syntax I've been using for the SCC meta-analysis and forest plot:

    Code:
    ///for SCC
    clear
    
    import excel "/Users/ashleyoskardmay/Documents/***RESEARCH***/***SYSTEMATIC REVIEW***/***INCLUDED***/SR Analysis data.xlsx", sheet("Condensed") firstrow case(lower)
    
    drop if scc==.
    
    network setup scc ntotal, studyvar(study) rr trtvar(treatment) ref(control) armvars(keep) zeroadd(0.1) format(augmented) nocode
    
    
    /// do network meta analysis w/inconsistency. save just the chi2 with DF (in parentheses) and p value. good if not significant
    network meta i
    
    ///network meta analysis with consistency
    network meta c
    
    
    //forest plot
    
    network forest, eform diamond ncolumns(2) ytitle(Studies) xtitle(Risk ratio and 95% CI) title(Field Treatments SCC Network) contrastopt(mlabsize(vsmall)) xlabel(0.001 0.01 0.1 0.5 1 2 5 10 100) xline(1) inconsistency(off) list
    ______



    Using NMSC incidence as the outcome:
    - The networks are disconnected - should I just not do a network meta-analysis on this outcome, or is there a way to circumvent this?



    This is the syntax I've been using for the NMSC meta-analysis and forest plot:

    Code:
    ////for NMSC
    
    clear
    
    import excel "/Users/ashleyoskardmay/Documents/***RESEARCH***/***SYSTEMATIC REVIEW***/***INCLUDED***/SR Analysis data.xlsx", sheet("Condensed") firstrow case(lower)
    
    drop if nmsc==.
    
    network setup nmsc ntotal, studyvar(study) rr trtvar(treatment) ref(control) armvars(keep) zeroadd(0.1) nocode
    
    
    /// do network meta analysis w/inconsistency. save just the chi2 with DF (in parentheses) and p value. good if not significant
    network meta i
    
    ///network meta analysis with consistency
    network meta c
    
    //forest plot
    
    network forest, eform diamond ncolumns(2) ytitle(Studies) xtitle(Risk ratio and 95% CI) title(Field Treatments NMSC Network) contrastopt(mlabsize(vsmall)) xlabel(0.001 0.01 0.1 0.5 1 2 5 10 100) xline(1) inconsistency(off) list

    I'm also not sure how to do meta-regression or any quantitative evaluation of heterogeneity using the network commands - is this possible?

    Many thanks!

    Ashley

  • #2
    Hello, bumping; if anyone has advice on any part of this post, I would be very grateful!

    Comment


    • #3
      Hi, Ashley.

      In network meta-analysis, there is no point in presenting trial-level estimates. You should show only the summary-level estimates. You can plot a comparison between direct, indirect and mixed estimates, but this is typically more informative to assess inconsistency.

      If you want more complex forest plots, you should extract the estimates from -network meta-, do some data manipulations and plot them via -metan- or -meta-. This can be a bit cumbersome, but it is the way to do it.

      For the nmsc analysis, indeed, the network is disconnected. Possible solutions are:

      1. Find additional trials to connect that network;
      2. Perform two network meta-analyses for each network, and then compare the estimates using Bucher's method.

      It is possible to conduct meta-regression and assess the heterogeneity. You can check:

      https://www.ncbi.nlm.nih.gov/pmc/art...9-e2017047.pdf

      https://journals.sagepub.com/doi/pdf...867X1501500402



      Hope this helps a bit.

      Comment


      • #4
        Very helpful; thank you so much!

        Comment


        • #5
          Just wanted to give an update - I was previously having an issue with the forest plot displaying "control vs treatment" instead of "treatment vs control", even though I had set "control" as the reference value. I was able to circumvent this by recoding treatments with numeric values using 0 for control, then adding value labels, then again making control the reference value (though I had to type the label and not the coded value to do this).

          Comment

          Working...
          X