November 2025
Updates the code for CEriskav and its plot method to work with the ggplot version.
Allows to set the graphical engine globally. Still defaults at base, but can set options(bcea.graph="gg") to change the behaviour for the session.
Fixes a nasty bug in ceplane_plot_graph.R -- now that we're not using reshape2, we must enforce the column comparison created in the object delta_ce to be a factor.
Updates code in contour_ggplot_params.R to avoid ggplot2 warnings about aes_string() and the use of size instead of linewidth (both now deprecated). Also updates code in other functions to remove warnings about ggplot2 deprecation.
October 2025
In bcea.default.R, removes the methods specific to bugs, rstan and rjags, since we didn't really need them? This streamlines the package is it removes the dependencies on rstan and rjags. (34efe54).
Updates the help for CreateInputs.R to clarify the nature of the inputs object. (34efe54).
Updates the tests according to the changes in bcea.default.R. (34efe54).
Removes a few (now) unnecessary dependencies: MCMCvis, reshape2, rlang, rstan. Also removes the suggested packages, coda, plotrix, RColorBrewer, rjags, rmarkdown, splancs and vdiffr. Installation should be quicker now. (34efe54).
September 2025
Fix documentation and order of the arguments in evppi.R. (ded3dc8).
Move rstan to Suggests. (ded3dc8).
Removes the make.report function, which is now completely left to BCEAweb. Automatic creation of a pdf/docx report is still possible, but can be done calling BCEAweb. (ded3dc8).
Removes revdep as it was a left-over of an older version. (ded3dc8).
July 2025
Fix the code in the vignettes to remove dependency on reshape2 (6279bb6).
Removes the folder inst/jags, which contains an old Rmd example, that is not used any more (6edb41c).
Simplifies documentation of contour (a41aec6).
Removes the Suggest for vdiffr, which is not really used (6e3ef67).
Updates documentation for CEriskav (40b0183).
Removes the dependence to the deprecated reshape2 and move code to use tidyr (dfbd68b).
The helper function line_labels would mess up with the labels in the multi.ce plot. Fixed now (37bd270).
July 2025
Fix a small issue in multi.ce. The CRAN version has removed the use of BCEA:::compute_p_best_interv, which computes the probability that each intervention is the
most cost-effective, for each value of the willingness to pay. The output of that call must be passed as input to BCEA:::ceac_plot_XXXX.pairwise in order for
ceac.plot to produce the individual probability of cost-effectiveness
Fix the function summary.pairwise to comply with the changes in multi.ce
June 2025
In bcea() the probability of an intervention being 'best' was the most cost-effective one calculated using compute_p_optimal_best(). However, this is not actually how this is defined in the literature
for the cost-effectiveness acceptability frontier (CEAF). Is should be calculated as the probability that the best intervention is the 'optimal' one, that is the one on average using the mean cost and mean effectiveness. We're replaced
this internal with compute_p_optimal_best(). In most cases this will make very little difference but when the cost or effectiveness are (highly) skewed they may deviate (a0b9ed6).
Many changes to the plotly infrastracture, which are helpful for BCEAweb (a565620).
Reformatting of the example datasets (daa2494).
Aligns examples and code with newer version of ggplot2 (c1e0aac).
January 2025
ceplane.plot() for {ggplot2} version used the ggplot syntax thats already used for other plotting arguments so that we can now pass, e.g. wtp = list(value = 20000, colour = "blue", x = 10, y = 10, size = 4). This closes issue #151 so can do something like wtp = list(size = 0) to hide the willingness to pay text. (3d8a770)ggplot version legend to take a vertical or horizontal part to the pos argument (85ba87f).ceplane.plot() and ceac plot relative font size argument rel fixed (8d1586f).eib_plot and evi_plot text size ggplot argument added (1e32788) and (84aaa2f).ceplane.plot() now haslabel.pos logical argument fixed for ggplot (92e9eb0) and base R (c7351e4).February 2024
Patch fixing small bugs from last CRAN release.
{voi} package to Suggests in DESCRIPTION and added requireNamespace() in evppi() to avoid error when not installed (e.g. on CRAN) (f3e3e3e)man-roxygen folder to md (cf858b1){ggplot2} changed in version 3 to linewidth from size argument and had only changed some of the code. Updated to scale_linewidth_manual(). (60bea9c)testdata folder {testthat} unit tests. (cbce0fa)November 2023
Some cosmetic changes to clean up.
Remotes in the DESCRIPTION file to point to the correct GitHub repos for voi and plotrixsmoking_output to be used in the evppi example avoiding the need for rjagsOctober 2023
Moved internal EVPPI calculation out of BCEA and now uses voi package instead.
Refactoring but retaining same interface and functionality.
{voi} which has a patch so that BCEA can use it without losing functionality
{voi} needed when we use check = TRUE in voi::evppi() in order to access fitting data (6e436b5, 94f5fc5)evppi() tested against all use cases in BCEA book (1c1457d2)evppi() (f2e4d005)voi package for methods sal and so (#140)evppi() matching output of old evppi() (1e2c5e7)voi needed when we use check = TRUE in voi::evppi() in order to access fitting data (6e436b5, 94f5fc5)INLA package to be available inside of BCEA so can remove direct dependency. This helps with passing CRAN checks and GitHub Actions ()June 2023
{MCMCvis} wasn't used conditionally in unit test. Moved to Required packages in DESCRIPTION.May 2023
plot.bcea() (cf1ee43)make.report() change variable name (f940f2e)summary.bcea() now only prints results for chosen comparisons and not always all of them. kstar and best in bcea() object were not updated with subset of interventions (#125)withr::with_par() used in plotting function plot.bcea() to only temporarily change graphics parameters. (725c536)@md and markdown syntax in function documentationpsa.struct() to add the absolute value in the formula to compute the weights (1cea278)dplyr piping new syntax from .data$* to simply using speech marks "*" (2b280ad)August 2022
summary.bcea() wasn't passing wtp argument to sim_table() internally (5440eb3)summary() was the same for basic bcea and multi.ce objects. Now has own summary.pairwise() method. (88ade51)struct.psa() output now works with summary() and plots all still work without having to use $ to get at bcea object as before. (b014c83)wtp argument in bcea() to k because wtp in the plotting functions refers to the wtp line and so is a scalar whereas k is a grid of points. Added an error message to use new argument. (b014c83)bcea() still allows a scalar k but added a warning that this will give empty plots.r-lib/Actions version 2. There was an error with not finding INLA but this was solved by Gabor at RStudio (see thread here https://community.rstudio.com/t/not-finding-inla-package-not-on-cran-in-actions/141398)GrassmannOptim() function inside of package with acknowledgement.Rdpack for bibliography in documentation (229c96d)Smoking and Vaccine data sets have been renamed from c and e to cost and eff. This is to avoid any conflict with the c() function.ref_first argument (cc38f07)ceplane.plot() and ceac.plot() ggplot2 versions (6808aa6)ceplane.plot() of icer_annot to annotate each of the ICER points with the text label of the intervention name. Only for ggplot2 at the moment. (a7b4beb)pos argument to contour2() so that its consistent with contour() and ceplane.plot(). (50f8f8b)ref argument by name as well as index in bcea(). (9eab459)April 2022
ceplane_ggplot() missing legendevppi()ceplane.plot()ceplane_plot_base() wasn't showing grey area. Fixed by removing alpha transparencyceac.plot() wasn't showing confidence interval by default for one comparisoncompute_vi()setReferenceGroup() for CEAC plot legend error; doesn't use supplied names but generic intervention 1, intervention 2, ... (#82)multi.ce() line for reference group (#80)cli package for warning messagesggplot2 format style arguments e.g. as list
ceac.plot()) to take more style arguments than before for e.g. colour of lines, types of points and line thickness.ceplane.plot() code in contour()goodpractice package suggested changes
seq_len(), remove ;contour2() changed so xlim, ylim arguments are optional; the same as ceplane.plot() since they are passes to itcontour() and ceplane.plot() vignettes writtenOct 2021
bcea() is now a helper function which calls the constructor new_bcea(), separating concerns.new_bcea() composed of smaller HEE statistics functions with names starting with compute_* e.g. compute_CEAC(), compute_EIB(),.... This allows us to call and test them individually.
It also allows more flexibility in changing or adding functionality to new_bcea().ceplane_plot_ggplot(), are also split into parameter and data setting and plotting components.
This modulisation allows us to add new layers to plots or modify existing parameter sets and defaults. We could also return the data without the plotting step as in e.g. ggplot2::autoplot().
It also means we can reuse some functionality across plots such as axes and legend setting e.g. BCEA:::where_legend().ceac_plot() changes
mce.plot(). Now dispatched on ceac.plot() for both multi.ce() and bcea() outputs.bcea type object.summary() and sim_table() removed.createInputs() used for EVPI calculation now dispatches S3 methods by JAGS, BUGS, Stan and other R data types.make.report() rewritten to have separate section files.bcea() construction or separately using a setter functions setComparisons().setKmax() and setReferenceGroup(), respectively.multi.ce() and CEriskAv() also now work similarly. They operate by modifying the bcea object, rather than creating new one (think decorator pattern).bcea() methods for JAGS, WinBUGS, Stan (#76)NEWS.md file to track changes to the package. Details about previous releases, such as dates, versions, fixes and enhancements obtained from CRAN and code comments so a little patchy.pkgdown GitHub site made.26 Aug 2019
5 Aug 2019
11 July 2018
evppi to allow N to be selected in all methodsdiag.evppi18 Nov 2016
Nov 2016
legend.spacing() and plot.title hjust argument)22 May 2016
info.rank25 Jan 2016
ceef.plot to align with ggplot2 v2.0.0Oct 2015
Oct 2015
EVPPI function polished up6 May 2015 2015
xlim & ylim in the ceplane.plot(), contour() and contour2() functionsbcea for a scalar wtpevppi() function and method has been renamed evppi0, which means there's also a new plot.evppi0 method13 Jan 2015
if (require()) to if (requireNamespace(,quietly=TRUE))ceef.plot function13 Jan 2015
ceef.plot function included, additional modificationsOct 2014
ceef.plot, createInputs, struct.psa2 Dec 2013
2 Dec 2013
ceac.plot and eib.plot: option comparison included for base graphics2 Dec 2013
31 July 2013
30 July 2013
CreateInputs(), which takes as input an object in the class rjags or bugsevppi()evppi and show the overall EVPI with the EVPPI for the selected parameter(s)3 July 2013
17 September 2012
22 Feb 2013
15 Sept 2012
13 May 2012