Calculate the expected value of partial perfect information from a decision model
evppi(
outputs,
inputs,
pars = NULL,
method = NULL,
se = FALSE,
B = 500,
nsim = NULL,
verbose = FALSE,
...
)
Arguments
outputs |
This could take one of two forms
"net benefit" form: a matrix or data frame of samples from the uncertainty
distribution of the expected net benefit. The number of rows should equal
the number of samples, and the number of columns should equal the number
of decision options.
"cost-effectiveness analysis" form: a list with the following named
components:
"c" : a matrix or data frame of samples from the distribution of
costs. There should be one column for each decision option.
"e" : a matrix or data frame of samples from the distribution of
effects, likewise.
"k" : a vector of willingness-to-pay values.
Objects of class "bcea" , as created by the BCEA package, are in
this "cost-effectiveness analysis" format, therefore they may be supplied as
the outputs argument.
If outputs is a matrix or data frame it is assumed to be of "net
benefit" form. Otherwise if it is a list, it is assumed to be of "cost
effectiveness analysis" form. |
inputs |
Matrix or data frame of samples from the uncertainty
distribution of the input parameters of the decision model. The number
of columns should equal the number of parameters, and the columns should
be named. This should have the same number of rows as there are samples
in outputs , and each row of the samples in outputs should
give the model output evaluated at the corresponding parameters. |
pars |
A character vector giving the parameters of interest, for which
a single EVPPI calculation is required. If the vector has multiple
element, then the joint expected value of perfect information on all these
parameters together is calculated.
Alternatively, pars may be a list. Multiple EVPPI calculations are
then performed, one for each component of pars defined in the above
vector form.
pars must be specified if inputs is a matrix or data frame.
This should then correspond to particular columns of inputs . If
inputs is a vector, this is assumed to define the single parameter
of interest, then pars is not required.
|
method |
Character string indicating the calculation method. The default
methods are based on nonparametric regression:
"gam" for a generalized additive model implemented in the gam()
function from the mgcv() package. This is the default method for
calculating the EVPPI of 4 or fewer parameters.
"gp" for a Gaussian process regression, as described by Strong et al.
(2014) and implemented in the SAVI package
(http://savi.shef.ac.uk/SAVI/).
"inla" for an INLA/SPDE Gaussian process regression method, from
Heath et al. (2016). This is the default method for calculating the EVPPI
of more than 4 parameters.
"earth" for a multivariate adaptive regression spline with the
earth package (Milborrow, 2019).
"so" for the method of Strong and Oakley (2013). Only supported
for single parameter EVPPI.
"sal" for the method of Sadatsafavi et al. (2013). Only supported
for single parameter EVPPI.
|
se |
If possible, calculate a standard error for the EVPPI. Currently
only supported for method="gam" . |
B |
Number of parameter replicates for calculating the standard error. |
nsim |
Number of simulations from the model to use for calculating
EVPPI. The first nsim rows of the objects in inputs and
outputs are used. |
verbose |
If TRUE , then messages are printed describing each step of
the calculation, if the method supplies these. Useful to see the progress
of slow calculations. |
... |
Other arguments to control specific methods.
For method="gam" :
gam_formula : a character string giving the right hand side of the formula supplied to the gam() function. By default, this is a tensor product of all the parameters of interest, e.g. if pars = c("pi","rho") , then gam_formula defaults to t(pi, rho, bs="cr") . The option bs="cr" indicates a cubic spline regression basis, which more computationally efficient than the default "thin plate" basis. If there are four or more parameters of interest, then the additional argument k=4 is supplied to te() , specifying a four-dimensional basis, which is currently the default in the SAVI package (http://savi.shef.ac.uk/SAVI/).
For method="gp" :
gp_hyper_n : number of samples to use to estimate the hyperparameters
in the Gaussian process regression method. By default, this is the minimum
of the following three quantities: 30 times the number of parameters of
interest, 250, and the number of simulations being used for calculating
EVPPI.
maxSample Maximum sample size to employ for method="gp" . Only
increase this from the default 5000 if your computer has sufficent memory to
invert square matrices with this dimension.
For method="inla" , as described in detail in Baio, Berardi and Heath
(2017):
int.ord (integer) maximum order of interaction terms to include in
the regression predictor, e.g. if int.ord=k then all k-way
interactions are used. Currently this applies to both effects and costs.
cutoff (default 0.3) controls the
density of the points inside the mesh in the spatial part of the mode.
Acceptable values are typically in
the interval (0.1,0.5), with lower values implying more points (and thus
better approximation and greatercomputational time).
convex.inner (default = -0.4) and convex.outer (default = -0.7)
control the boundaries for the mesh. These should be negative values and can
be decreased (say to -0.7 and -1, respectively) to increase the distance
between the points and the outer boundary, which also increases precision and
computational time.
robust . if TRUE then INLA will use a t prior distribution for
the coefficients of the linear predictor, rather than the default normal.
h.value (default=0.00005) controls the accuracy of the INLA
grid-search for the estimation of the hyperparameters. Lower values imply a
more refined search (and hence better accuracy), at the expense of
computational speed.
plot_inla_mesh (default FALSE ) Produce a plot of the mesh.
max.edge Largest allowed triangle edge length when constructing the
mesh, passed to inla.mesh.2d .
For method="so" :
n.blocks Number of blocks to split the sample into. Required.
For method="sal" :
n.seps Number of separators (default 1).
|
Value
A data frame with a column evppi
giving the EVPPI.
If outputs
is of "cost-effectiveness analysis" form so that there is
one EVPPI per willingness-to-pay value, then a column k
identifies the
willingness-to-pay.
If pars
is a list, so that multiple EVPPI calculations are performed
with different parameters, then another column pars
identifies the
parameters.
If standard errors are requested, then the standard errors are returned in
the column se
.
References
Strong, M., Oakley, J. E., & Brennan, A. (2014). Estimating multiparameter
partial expected value of perfect information from a probabilistic
sensitivity analysis sample: a nonparametric regression approach. Medical
Decision Making, 34(3), 311-326.
Heath, A., Manolopoulou, I., & Baio, G. (2016). Estimating the expected
value of partial perfect information in health economic evaluations using
integrated nested Laplace approximation. Statistics in medicine, 35(23),
4264-4280.
Baio, G., Berardi, A., & Heath, A. (2017). Bayesian cost-effectiveness
analysis with the R package BCEA. New York: Springer.
Milborrow, S. (2019) earth: Multivariate Adaptive Regression Splines. R
package version 5.1.2. Derived from mda:mars by Trevor Hastie and Rob
Tibshirani. Uses Alan Miller's Fortran utilities with Thomas Lumley's leaps
wrapper. https://CRAN.R-project.org/package=earth.
Strong, M., & Oakley, J. E. (2013). An efficient method for computing
single-parameter partial expected value of perfect information. Medical
Decision Making, 33(6), 755-766. Chicago
Sadatsafavi, M., Bansback, N., Zafari, Z., Najafzadeh, M., & Marra, C.
(2013). Need for speed: an efficient algorithm for calculation of
single-parameter expected value of partial perfect information. Value in
Health, 16(2), 438-448.