hesim-dev / hesim

Health economic simulation modeling and decision analysis
https://hesim-dev.github.io/hesim/
63 stars 17 forks source link

cCTSTMs #124

Closed mclements closed 2 months ago

mclements commented 3 months ago

Devin,

I am working on a cohort-based CTSTMs for hesim with an initial implementation for Markov models. The math here is quite simple: Kolmogorov's forward (ordinary) differential equations for the state transition probabilities, with ordinary differential equations (ODEs) for length of stay, QALYs and costs (including costs by duration, for starting in a state or transition-specific costs).

I have made some progress, but am not quite ready to present a pull request.

Some notes:

dincerti commented 2 months ago

Hi Mark,

This seems like a very nice extension.

Devin,

I am working on a cohort-based CTSTMs for hesim with an initial implementation for Markov models. The math here is quite simple: Kolmogorov's forward (ordinary) differential equations for the state transition probabilities, with ordinary differential equations (ODEs) for length of stay, QALYs and costs (including costs by duration, for starting in a state or transition-specific costs).

I have made some progress, but am not quite ready to present a pull request.

Some notes:

  • The implementation needs C++ code for an ODE solver. I have given a solution that uses the BH package, which is slow to install. Is BH an acceptable dependency?

Would it be very difficult to implement with the current dependencies? Could BH be an optional dependency?

  • My first implementation outputs to a hesim::stateprobs_out object, which fits nicely with your current post-processing for DTSTMs. This is a modest extension.
  • My second implementation calculates probabilities together with accurate cumulative QALYs and costs during the ODE solution. Should I write a new output object or use a hesim::ev_out object?

If hesim::ev_out seems like a natural fit, I would.use it. But if it seems like a square peg in a round hole, Is create a new object.