- dplyr’s pipe now causes an error when chaining survival operation. The new pipe |> is required in this situation.
`define_survival()`

has been renamed`define_surv_dist()`

for naming consistency- It is now necessary to use
`define_surv_fit()`

to specify a survival fit created with`survfit()`

,`flexsurvreg()`

or`flexsurvspline()`

- It is now possible to run probabilistic sensitivity analysis (PSA) with survival objects - either created from a parametric distribution (with
`define_surv_dist`

) or with real data fitted with`survfit()`

or`flexsurvreg()`

. See`vignette("j-survival_2_psa")`

`plot.surv_object()`

gains`psa`

argument allowing to plot the distribution to check for its variability.- Created method
`c.uneval_parameters()`

to combine outputs of`define_parameters()`

.

- All operation functions on survival objects are now of class
`surv_object`

- Remove lazyeval, plyr and pryr dependency
- For PSM, when OS is lower to PFS, force the transition probability to be 0 (#7 @william-rawlinson)
`get_who_mr()`

is working again- Mortality rates gathered with
`get_who_mr(..., local = TRUE)`

are only available as

pooled for high income countries. `prop`

,`multinom`

and`make_gamma`

, deprecated since a long time are now unavailable, to be replaced with`binomial`

,`multinomial`

and`gamma`

, respectively.`markov_cycle`

is now deprecated in favor of`model_time`

and`state_cycle`

in favor of`state_time`

Compliance with r-devel

- Performance improvements: using state_time is much faster now, as well as probabilistic sensitivity analyses

- Rebuild vignettes
- fix guides(
= FALSE)

- updates for compatibility with rlang 1.0.0

- checks cairo_pdf availability

- argument “method” for run_model was inverted. Now “beginning” overestimates costs and “end” underestimates costs (#345 @zaddyzad)

Prepare for dplyr 1.0.0

- Fix problem with state_time (fix #343 @Reale3)

- Ready for tibble 3.0
`look_up()`

displays a more informative message when searching several values at once

- States are now length 2 lists:
- .dots: the state values
- starting_values: the state values when entering the state

- Compatibility with dplyr 0.8: replaced all underscored (SE) versions of all verbs

`get_who_mr()`

is again able to fetch data from GHO server

`define_state()`

gains the`starting_values`

argument (same as`define_strategy()`

).

- Compatibility with dplyr v0.8

- Remove
`Hmisc`

dependency for weighted summaries.

- Survival function renamed:
`pool()`

=>`mix()`

.

- Starting values with
`define_starting_values()`

. - Check for comma as a decimal separator in tabular data.
- Auto-re-indent transition matrices with
`reindent_transition()`

. - Discounting per year with the
`period`

argument. - BCEA interface with
`run_bcea()`

. `use_distribution()`

to re-sample from empirical data (e.g. MCMC fit posterior distribution).

- Better error-checking in multinomial parameters definition.
- Cleaner
`define_psa()`

back-end code, variables can now be used to define distribution parameters. - Handle cases when parameters depend on
`state_time`

but those parameters are not used by a strategy. - Empty calls to
`modify()`

are supported. - Fix error in survival vignette.

- The development branch is now called
`master`

, the release branch is called`cran`

. - Survival operation are wrapped in a common class.
- Expansion code moved to own function.
- Faster computation of expanded states.
- Stricter dependency version management (to avoid install failures on an outdated system).
- Removed dependency to
`tidyr`

.

- Survival function renamed:
`project()`

=>`join()`

. - Removed
`get_code()`

.

- NMB is now reported as relative values.

- Fixed error with
`run_dsa()`

in state expansion situations.

- Multiple changes to prepare for the
`dplyr`

update 0.6.0.

`heemod`

can now be cited with:

Filipovic-Pierucci A, Zarca K and Durand-Zaleski I (2017). “Markov Models for Health Economic Evaluations: The R Package heemod.” *ArXiv e-prints*. R package version 0.8.0, 1702.03252

- Model calibration with
`calibrate_model()`

. `init`

and`inflow`

can refer to values from`define_parameters()`

, and are thus accessible to PSA / DSA.`inflow`

can be time-varying.

`get_probs_from_surv()`

=>`compute_surv()`

.

- Operations on survival functions, see
`vignette("j-survival")`

. Thanks to Jordan Amdahl. - Model calibration with
`calibrate_model()`

. Thanks to Matthew Wiener. - State membership correction works for partitioned survival model.
- Custom state membership correction functions can be passed to the
`method`

argument of`run_model()`

. `get_who__mr()`

can take a`region`

argument, and automatically pool results when`sex`

is not passed.- Additional DSA plotting options.

`heemod::discount()`

now produces results similar to`discount()`

.

- Renamed memoised functions.
- NSE aliases (
`*_`

) to survival operation functions.

`strategy`

becomes a reserved parameter name.- Counting method
`"half-cycle"`

is deprecated. `resample`

argument in`run_psa()`

renamed to`psa`

.- Probability distributions for PSA were renamed, see
`?distributions`

. `state_cycle`

renamed to`state_time`

, added a`model_time`

alias to`model_time`

.- The
`inflow`

argument for budget impact analysis is specified with`define_inflow()`

. `prob_to_prob()`

=>`rescale_prob()`

.

- Transition probabilities from survival models with
`get_probs_from_surv()`

:- Parametrically defined by
`define_survival()`

. - Or fitted on data by the
`flexsurv`

package.

- Parametrically defined by
- Support for partitioned survival models with
`define_part_surv()`

. - Plot EVPI.
- Export PSA files for Sheffield Accelerated Value of Information software.
- Individuals can enter the model after the beginning with the
`inflow`

argument in`run_model()`

(mainly for budget impact analysis). - Strategy name can be used to define values with
`dispatch_strategy()`

or using the`strategy`

name (vignettes*homogeneous*and*probabilistic*have been updated to use this feature). - Beta and triangle distributions for PSA.
- Custom distributions can be defined.
- Co-variance analysis on strategy differences, more options for
`gam()`

fitting.

- Convenience function
`rescale_discount_rate()`

. - Better error messages at parameter evaluation.
`combine_probs()`

: given several independent probabilities of an event, return the total probability of the event.- More informative error messages for incorrect matrices.
- Infinite parameter values generate an error.
- New parameters can be added with
`modify()`

.

- Cleaner handling of clusters.
- Package
`diagram`

,`Hmisc`

and`logitnorm`

moved from`Imports`

to`Suggests`

.

- Fixed several bugs that would return incorrect efficiency frontiers in some situations, or would return duplicated strategy names in some edge cases (thanks to Vince Daniels).
- Fixed a failure of tabular input when a column could be read as all numeric.
- Character variables from
`newdata`

were mistakenly parsed as lazy expressions. `newdata`

now handles factor variables.`state_cycle_limit`

was not passed to PSA, DSA, or updating.- PSA and DSA tabular files were not saved.

- Thanks to Matthew Wiener, especially for the survival analysis code.

- Fixed an error resulting in incorrect co-variance analysis results when relations between values and parameters were negative.

- Some plotting arguments changed (e.g.
`type`

=>`results`

).

- Added co-variance analysis for PSA with
`type = "cov"`

plot. - All plotting functions can now represent multiple strategies with facets.
- CECA plotted on a log scale by default.
- Black & white plots for publications with the
`bw`

plot option. - Remove variables that are not sensitive in DSA with
`remove_ns`

.

- Important object structure change (from attributes to lists).
- More systematic use of getter functions.
- More standardized processing of model objects.
- Unit tests rely less on printed results.
- Using new nomenclature in back-end functions (
`model`

=>`strategy`

). `base_strategy`

divided in 3 concepts:`central_strategy`

,`root_strategy`

,`noncomparable_strategy`

.- Non-heemod versions of
`discount()`

throw warnings.

- Base model cannot be specified anymore: it is always the least costly model.
- Renamed argument
`transition_matrix`

=>`transition`

in`define_strategy()`

.

- Parallel computing with
`use_cluster()`

. - Compute average values from PSA.

- Acceptability curve returns probabilities at 0.
- Correctly identify efficiency frontier.
- ICER are computed on the efficiency frontier.

- Thanks to Matthew Wiener, Zdenek Kabat and Vojtech Filipec for their great contributions to this update.

- Added
`formatR`

to suggest list.

- Some functions were renamed for clarification:
`define_model()`

=>`define_strategy()`

`run_models()`

=>`run_model()`

`define_matrix()`

=>`define_transition()`

`define_sensitivity()`

=>`define_dsa()`

`define_distrib()`

=>`define_psa()`

`run_sensitivity()`

=>`run_dsa()`

`run_probabilistic()`

=>`run_psa()`

- Values and probabilities can depend on state time with
`state_cycle`

, allowing to reproduce the results of micro-simulations. `define_sensitivity()`

now accepts any expression as input, and can call references to model parameters.- Discount rates can now be specified as parameters (allows for rates to be modified in DSA & PSA).
- Any state value can be plotted.
- Additional output: csv files for many of the tabular results.

- Edges where P=0 are not plotted anymore for transition matrices.
- There used to be a potential error when you wanted to save output but there had been no psa.

`update()`

for heterogeneity analysis and to compute population-level values, with vignette.`run_models_tabular()`

to import models from tabular input, with vignette.`look_up()`

to look up values from external data.- Added option to pool female and male mortality rates in WHO data.
- Counting method now defaults to life-table.
`plot_sensitivity()`

now plots by default the widest bar on top.- Convenience functions for converting rates to probabilities.
- Models can be run without state values, to compute counts only.
- Much more informative error messages.
- Objects can be converted to the
`R`

code to generate them (same idea as`dput()`

, but easier to read). - New options
`heemod.verbose`

and`heemod.memotime`

. - More informative messages, especially in verbose mode.
- Use WHO data cached locally in case of connection problems.
- New functions:
`get_counts()`

and`get_init()`

to get state membership counts. - Smart sex code conversion for
`get_who_mr()`

.

*really*fixed problem when the argument to`discount()`

was not defined as a parameter.

`eval_model_newdata()`

, the function behind re-sampling and sensitivity analysis now returns list-variables.

- Thanks to Matthew Wiener, Zdenek Kabat and Vojtech Filipec for their great contributions to this update.

- Added a vignette to exactly reproduce results from Decision Modelling for Health Economic Evaluation.

- Fixed problem when argument to
`discount()`

was not defined as a parameter. - Corrected several errors in the vignettes (thanks to Michael Schenkenberg from SBU, Stockholm, Sweden).
- Updated mortality rate tests to reflect GHO database update.

- Fix mishandling of matrix index with
`C`

in`eval_matrix()`

(thanks to Matthew Wiener). - Fix problem with upcoming version of
`tidyr`

.

- A single set of parameters is now used for a set of models.

- Correct error in probabilistic analysis vignette.
- Fix incompatibility with upcoming
`dplyr`

update.

`shiny`

interface.- Added support for different counting options.
`get_who_mr()`

to extract mortality rates from WHO data.

- Added ability to plot matrix.
- Added framework for probabilistic uncertainty analysis.
- Written vignette for probabilistic and sensitivity analysis.
- Added complement alias for matrix definition.
`run_*`

functions now output a single table instead of a list of tables.- Variables corresponding to cost and effect must now be specified in
`run_models()`

. - Plotting for sensitivity and probabilistic analysis.

- added
`*_`

functions.

`run_model_newdata()`

cannot run`uneval_model`

anymore.- Removed need to use
`define_state_list()`

.

- Initial CRAN submission.