Restricting microsimulation to DES/Markov nodes

I have a model where I have a decision tree with DES nodes at the leaves (all clones of one DES node). I would like to be able to do a microsimulation of the DES nodes only and use standard EV calculations for the chance nodes, because incremental costs are accrued at all of the leaves, but incremental effectiveness is only accrued at one leaf with low probability of being reached (~ 1%).

I have to run hundreds of thousands, if not millions of trials to get a stable estimate of the ICER, and I would also like to run a PSA!

Any suggestions would be most welcome.



  • DES models require individual patients (Microsimulation) in order to sample time-to-event values differently for each person. The chance nodes to the right of those DES nodes still function within the context of overall DES model analysis.

    If there were other strategies that did not have DES nodes (or trackers or individual-level distribution sampling), those strategies could be evaluated via EV calculations. However, it would still be best to evaluate those via Microsimulation in order to include the results in the full analysis for strategy comparison.

    Comment actions Permalink
  • Thank you Andrew, I think then that the answer is there is no simple way to do this.

    I have thought of a couple of ways it might be possible to engineer, perhaps you could comment on them?

    • Replace chance nodes (to the left of the DES nodes) with summation nodes and somehow weight the payoffs by the probability (i.e. force an EV-style calculation in TreeAge when the DES microsimulation runs).
    • Remove all the chance nodes and have each DES node the sole child of the root decision node. TreeAge will then run all the DES microsimulations (including using common PSA values if PSA is also included). Export the results and then construct a decision tree in TreeAge/Excel which uses the results.

    Fortunately I fixed a bug in my model which means the incremental benefits are significantly greater now, so not as many iterations are needed to produce a useful estimate of net benefit.

    Comment actions Permalink
  • I agree there is no straightforward solution here. TreeAge Pro requires Microsimulation as soon as the DES node appears. Note it also must be run if Markov models use trackers.

    TreeAge Pro currently has no mechanism to separate out the portions to the left of the DES nodes from the processing of those DES nodes themselves. We can consider this for future development, but it might be counterproductive as it may confuse users about when to run Microsimulation. Clearly, it would not confuse you.


    Comment actions Permalink
  • Thanks again, Andrew.

    I am fully on board with the idea that a piece of software should cover 80%-90% of use cases, and difficult people with the 10%-20% use cases should find ways around it, rather than overcomplicating the software or making it less affordable.

    If you use a summation node in a microsimulation I assume that all the child subtrees get processed, so my first solution could (potentially) work?

    Comment actions Permalink
  • Thanks for your understanding.

    Summation nodes should not be used with Microsimulation. They only work with EV calculations as a weighted average of its branches with all branches weighted at 100%.

    In Microsimulation, the individual will take a random walk to the top branch, which will not help you sum all the branches.

    Comment actions Permalink
  • In case anyone reads this and wants to know the eventual solution.

    You can use expected value calculations but also use the Tree(...) and Node(...) functions to perform microsimulations at another node (optionally in another tree). Therefore the approach is to create a separate tree which contains a DES node (the target tree) and then construct a decision tree which will call it (the calling tree) using payoffs like Tree("target-tree.trex"; "Node(-1; 1000)"). Alternatively if the model is not too messy, could create a DES node within your current model, exclude it from the analysis but refer to it in the payoffs in your decision tree using only the Node(...) function.


    Comment actions Permalink
  • This is a very interesting approach. I should have considered and suggested the Node and Tree functions as a mechanism to handle this. Good thinking!!!

    For others...

    • Node function executes an analysis on another part of an existing model
    • Tree function executes an analysis on part of a different model

    Both functions are documented in system Help files, but they can be a little tricky to use. Reach out to for help as needed.

    Comment actions Permalink

Please sign in to leave a comment.

Didn't find what you were looking for?

New post