do.call(knitr::read_chunk, list(path = "../inst/vignettes-R/06-cea.R"))

Overview

The prior tutorials have focused on constructing economic models to simulate disease progression, costs, and quality-adjusted life-years (QALYs). While incremental cost-effectiveness ratios (ICERs) have been computed and probabilistic sensitivity analysis (PSA) has been employed, we have not yet formalized cost-effectiveness analysis (CEA) or represented decision uncertainty.

In this analysis we will perform a CEA given the output of model from the "Semi-Markov Multi-state Model" tutorial. We will use the CEA functions from hesim to summarize decision uncertainty and ggplot2 for visualization. The CEA will be peformed for a single target population, but you can review the hesim tutorial on CEA and the references therein for an example of CEA in the context of multiple subgroups.


Theory

CEA is based on estimating the net monetary benefit (NMB). For a given parameter set $\theta$, the NMB with treatment $j$ is computed as the difference between the monetized health gains from an intervention less costs, or,

$$ \begin{aligned} NMB(j,\theta) = e_{j}(\theta)\cdot k- c_{j}(\theta), \end{aligned} $$

where $e_{j}$ and $c_{j}$ are measures of health outcomes (e.g. QALYs) and costs using treatment $j$ respectively, and $k$ is a decision makers willingness to pay (WTP) per unit of health outcomes. The optimal treatment is the one that maximizes the expected NMB,

$$ \begin{aligned} j^{*} = \text{argmax}j E{\theta} \left[NMB(j,\theta)\right]. \end{aligned} $$

For a pairwise comparison, treatment $1$ is preferred to treatment $0$ if the expected incremental net monetary benefit (INMB) is positive; that is, if $E_\theta \left[INMB\right] > 0$ where the INMB is given by

$$ \begin{aligned} INMB(\theta) = NMB(j = 1, \theta) - NMB(j = 0, \theta). \end{aligned} $$

Treatments can be compared in an equivalent manner using the incremental cost-effectiveness ratio (ICER). The most common case occurs when a new treatment is more effective and more costly so that treatment $1$ is preferred to treatment $0$ if the ICER is less than the WTP threshold $k$,

$$ \begin{aligned} k > \frac{E_\theta[c_{1} - c_{0}]}{E_\theta[e_{1} - e_{0}]} = ICER. \end{aligned} $$ There are three additional cases. Treatment $1$ is considered to dominate treatment 0 if it is more effective and less costly. Treatment $1$ is dominated by treatment $0$ if it is less effective and more costly. Finally, treatment $1$ is preferred to treatment $0$ if it is less effective and less costly when $k < ICER$.

In practice, the distribution of $\theta$ is simulated from the output of the PSA. Specifically, For each treatment strategy, a PSA produces $m$ random draws from the distribution of health outcomes and costs,

$$ \begin{aligned} e_{j} &= [e_{j}^1, e_{j}^2, \dots, e_{j}^m] \ c_{j} &= [c_{j}^1, c_{j}^2, \dots, c_{j}^m]. \end{aligned} $$

Application

CEA can be performed using the hesim::cea() and hesim::cea_pw() functions. cea() summarizes results by taking into account each treatment strategy in the analysis, while cea_pw() summarizes "pairwise" results in which each treatment is compared to a comparator. Both functions return a number of outputs for summarizing a PSA.

The functions are generic functions, meaning that their implementation depends on the class of their input. The default method works on a generic data frame object like we simulated in the non-hesim Markov cohort modeling tutorial.


However, when a simulation has been conducted with hesim, it is typically more convenient to use the hesim::ce object generated from the economic model (as in the hesim Markov cohort modeling tutorial).


We focus our illustration on the case where the input is a hesim::ce object.


For completeness, we note that results would be nearly identical using the default method.


Incremental cost-effectiveness ratio

The output of cea_pw() can be used to create an ICER table with icer(), which can, in turn, be formatted for pretty printing with format(). A WTP threshold is needed to compute the INMB and is set with the wtp argument. Estimates of incremental QALYs and incremental costs are computed by averaging over PSA samples. Confidence intervals (CIs) are computed using the quantiles of the PSA and 95% CIs are displayed by default.


Note that get_labels() was used to create labels for the identification variables in the hesim_data() object. This is useful because it can be passed to summary functions (e.g., icer()) as well as plotting functions (as will be shown below).

Representing decision uncertainty

There are a number of measures that are typically used to represent decision uncertainty including cost-effectiveness planes, cost-effectiveness acceptability curves (CEACs), cost-effectiveness acceptability frontiers (CEAFs), and the expected value of perfect information (EVPI). ggplot2 graphics can be quickly generated with hesim using the functions plot_ceplane(), plot_ceac(), plot_ceaf(), and plot_evpi(). Users who desire more control over plotting may also create custom plots using the output of cea() and cea_pw() as demonstrated below.

Cost-effectiveness plane

The cost-effectiveness plane plots the incremental effectiveness of a treatment strategy (relative to a comparator) against the incremental cost of the treatment strategy. The plot is useful because it demonstrates both the uncertainty and the magnitude of the estimates. Each point on the plot is from a particular random draw from the PSA.

Data for plotting a cost-effectiveness plane comes from the delta output generated from the cea_pw() function, which, for each sampled parameter set and treatment strategy, estimates differences in costs and QALYs relative to the comparator.

head(cea_pw_out$delta)

The dotted line in the plot is the WTP line, with slope equal to the desire value of $k$ (in this case \$100,000). For a chosen $k$, points below the line are cost-effective while those above it are not.


Cost-effectiveness acceptability curves (CEAC)

Simultanous comparison

A useful summary measure for quantifying uncertainty is the probability that each treatment strategy is the most cost effective, which is estimated from simulation output as the proportion of simulation draws that each strategy has the highest NMB.


The probability that the new treatment is the most cost-effective is increasing in WTP.

Pairwise comparison

The difference between this plot and the one above is that it compares each strategy to a single comparator rather than considering all strategies simultaneously. Since there are only two treatment strategies the distinction is not meaningful, but it can be important when there are 3 or more treatment strategies.


Cost-effectiveness acceptability frontier (CEAF)

One drawback of the CEAC is that the probability of being cost-effective cannot be used to determine the optimal treatment option. Instead, if a decision-makers objective is to maximize health gain, then decisions should be based on the expected NMB. The cost-effectiveness acceptability frontier (CEAF), which plots the probability that the optimal treatment strategy (i.e., the strategy with the highest expected NMB) is cost-effective, is appropriate in this context.


Value of perfect information

A limitation of the prior measures are that they ignore the magnitude of cost or QALY gains. A measure which combines the probability of being most effective with the magnitude of the expected NMB is the EVPI, which, intuitively, provides an estimate of the amount that a decision maker would be willing to pay to collect additional data and completely eliminate uncertainty. Mathematically, the EVPI is defined as the difference between the maximum expected NMB given perfect information and the maximum expected NMB given current information. In other words, we calculate the NMB for the optimal treatment strategy for each random draw of the parameters and compare that to the NMB for the treatment strategy that is optimal when averaging across all parameters,

$$ \begin{aligned} EVPI &= E_\theta \left[max_j NMB(j, \theta)\right] - max_j E_\theta \left [ NMB(j, \theta)\right]. \ \end{aligned} $$

The cea() function performs the EVPI calculation across all simulation draws from the PSA and for a number of WTP values $k$. A plot by group of the the EVPI for different values of $k$ is shown below. The kink in the plot represents the value of $k$ where the optimal strategy changes.


Custom plotting with ggplot2 {#custom-plotting}

As noted above, it is often desirable to have full control over plotting. For this reason, the output of cea() and cea_pw() contain all data required to represent decision uncertainty: the delta element returned by cea_pw() can be used to create a cost-effectiveness plane, the mce element returned by cea() can be used to create a CEAC for simultaneous comparisons and a CEAF, the ceac element returned by cea_pw() can be used to create a CEAC for pairwise comparisons, and the evpi element returned by cea() can be used to plot the EVPI.

We demonstrate each case below, while leveraging a couple of helper functions.


Cost-effectiveness plane


Cost-effectiveness acceptability curves (CEAC)

Simultanous comparison


Pairwise comparison


Cost-effectiveness acceptability frontier (CEAF)


Value of perfect information




hesim-dev/learn-cea documentation built on April 23, 2022, 3:05 p.m.