dmphillippo / multinma

Network meta-analysis of individual and aggregate data in Stan
https://dmphillippo.github.io/multinma
33 stars 15 forks source link

Absolute effects with predict.stan_nma_surv #45

Open CamilleCCL opened 1 month ago

CamilleCCL commented 1 month ago

Hi @dmphillippo,

I am working on a ML-NMR on survival outcome and I had few questions about the function predict.stan_nma_surv from the multinma package 0.7.1.

I wanted to compute absolute effects estimates (median survival) for a new population. What is the baseline argument to plug in the function ? Should we always give a baseline_trt argument ? I had a new population with specific baseline characteristics but not associated Kaplan-Meier curves.

Regarding this baseline argument, it seems to have an important impact on the predicted median survival time. In the vignette about new diagnosed multiple myeloma, the median survival ranged from 1.76 to 2.81 (see the code from your vignette below). In the model I am running, a difference of few months is found depending on the target populations chosen, even when considering a model without covariates. For some target populations (taken directly from the included studies), predicted median survival times seem unrealisitc. How can I reduce these high differences? Is there another parameter to take into account to better control the baseline effect?

Thanks,

(medsurv <- predict(ndmm_fit, type = "median"))

> Warning: Evaluating M-spline at times beyond the boundary knots.

> Evaluating M-spline at times beyond the boundary knots.

> Evaluating M-spline at times beyond the boundary knots.

> Evaluating M-spline at times beyond the boundary knots.

> -------------------------------------------------------------- Study: Attal2012 ----

>

> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat

> pred[Attal2012: Pbo] 2.41 0.13 2.17 2.33 2.41 2.50 2.67 5533 3109 1

> pred[Attal2012: Len] 3.89 0.20 3.50 3.76 3.90 4.02 4.29 6980 3079 1

> pred[Attal2012: Thal] 2.69 0.30 2.17 2.49 2.67 2.87 3.34 3590 3103 1

>

> ----------------------------------------------------------- Study: McCarthy2012 ----

>

> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat

> pred[McCarthy2012: Pbo] 2.81 0.16 2.51 2.70 2.81 2.92 3.14 4700 3412 1

> pred[McCarthy2012: Len] 4.64 0.27 4.13 4.45 4.63 4.82 5.17 6116 3226 1

> pred[McCarthy2012: Thal] 3.20 0.34 2.58 2.97 3.19 3.42 3.91 4287 3134 1

>

> ------------------------------------------------------------ Study: Palumbo2014 ----

>

> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat

> pred[Palumbo2014: Pbo] 1.86 0.18 1.52 1.73 1.85 1.98 2.25 5166 3450 1

> pred[Palumbo2014: Len] 3.72 0.39 3.03 3.45 3.70 3.96 4.55 6734 3356 1

> pred[Palumbo2014: Thal] 2.30 0.37 1.66 2.03 2.27 2.53 3.09 4463 3521 1

>

> ------------------------------------------------------------ Study: Jackson2019 ----

>

> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat

> pred[Jackson2019: Pbo] 2.04 0.11 1.83 1.96 2.04 2.11 2.26 196 2566 1.02

> pred[Jackson2019: Len] 4.21 0.20 3.83 4.06 4.20 4.35 4.62 125 2626 1.03

> pred[Jackson2019: Thal] 2.60 0.32 2.04 2.37 2.58 2.81 3.29 4478 3345 1.00

>

> ------------------------------------------------------------- Study: Morgan2012 ----

>

> mean sd 2.5% 25% 50% 75% 97.5% Bulk_ESS Tail_ESS Rhat

> pred[Morgan2012: Pbo] 1.77 0.16 1.47 1.66 1.76 1.88 2.12 1912 3489 1.01

> pred[Morgan2012: Len] 4.09 0.57 3.17 3.69 4.03 4.41 5.37 3155 3106 1.01

> pred[Morgan2012: Thal] 2.30 0.21 1.92 2.15 2.29 2.43 2.74 4889 3545 1.00

dmphillippo commented 1 month ago

Hi @CamilleCCL,

To make absolute predictions in a target population you need to have information on the baseline hazard/survival curve in the target population. If you don't have an observed KM curve in this population then one option is to choose a representative study from the network. You can then name this study for the baseline and aux arguments in predict(), e.g. baseline = "Attal2012", aux = "Attal2012" and provide newdata with the covariate details for the target population.

The variation in median survival on placebo in this example is just what is observed in the data, and the data drives the predictions. You can see that the estimated survival curves fit the data well here.

CamilleCCL commented 4 weeks ago

Hello, Thank you for your response. In my case, I have another study I would like to use as baseline survival curve in the target population but the study is not included in the network. Is it feasible to use the KM curve from this new study to compute estimates? Otherwise, how do define a representative study from the network? Is it only based on relevance of the population? In the example from the vignette, the variations in median survival are around 1 or 2 months. In the analysis I am conducting, curves have a longer follow-up period, and I am sometimes getting differences of 20 months depending on the target population. Have you faced this kind of scenario before? Any support or ideas on how I could control this variation would be greatly appreciated. Thank you,

dmphillippo commented 3 weeks ago

Absolutely, if you have KM data for a target population you can include this in the network as a single-arm study. The model will then estimate the baseline hazard for this population, but it won't affect any other estimates. You can then specify to use this baseline hazard to produce estimates against in predict() with the baseline and aux arguments as described above.

Regarding the variation in median survival, I don't understand what the problem is here? Median survival will vary depending on the population characteristics (eg prognostic factors and effect modifiers) and baseline hazard. A model that captures this and produces appropriate predictions is a good thing!

CamilleCCL commented 1 week ago

Hello, In our example, we predicted median survival times using two different targeted populations that were very similar in terms of prognostic factors and effect modifiers profiles. We obtained large differences between estimates depending on the population. Does it mean that we are missing important adjustment factors that would help controlling for the baseline hazards? Otherwise, what could explain such differences when we would expect finding similar predicted values? Regards,