November 2025
-
Updates the code for
CEriskavand itsplotmethod to work with theggplotversion. -
Allows to set the graphical engine globally. Still defaults at
base, but can setoptions(bcea.graph="gg")to change the behaviour for the session. -
Fixes a nasty bug in
ceplane_plot_graph.R-- now that we're not usingreshape2, we must enforce the columncomparisoncreated in the objectdelta_ceto be a factor. -
Updates code in
contour_ggplot_params.Rto avoidggplot2warnings aboutaes_string()and the use ofsizeinstead oflinewidth(both now deprecated). Also updates code in other functions to remove warnings aboutggplot2deprecation.
October 2025
-
In
bcea.default.R, removes the methods specific tobugs,rstanandrjags, since we didn't really need them? This streamlines the package is it removes the dependencies onrstanandrjags. (34efe54). -
Updates the help for
CreateInputs.Rto clarify the nature of theinputsobject. (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,splancsandvdiffr. Installation should be quicker now. (34efe54).
September 2025
-
Fix documentation and order of the arguments in
evppi.R. (ded3dc8). -
Move
rstantoSuggests. (ded3dc8). -
Removes the
make.reportfunction, which is now completely left toBCEAweb. Automatic creation of a pdf/docx report is still possible, but can be done callingBCEAweb. (ded3dc8). -
Removes
revdepas 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 oldRmdexample, 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
reshape2and move code to usetidyr(dfbd68b). -
The helper function
line_labelswould mess up with the labels in themulti.ceplot. Fixed now (37bd270).
July 2025
-
Fix a small issue in
multi.ce. The CRAN version has removed the use ofBCEA:::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 toBCEA:::ceac_plot_XXXX.pairwisein order forceac.plotto produce the individual probability of cost-effectiveness -
Fix the function
summary.pairwiseto comply with the changes inmulti.ce
June 2025
-
In
bcea()the probability of an intervention being 'best' was the most cost-effective one calculated usingcompute_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 withcompute_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
plotlyinfrastracture, which are helpful forBCEAweb(a565620). -
Reformatting of the example datasets (daa2494).
-
Aligns examples and code with newer version of
ggplot2(c1e0aac).
January 2025
- In
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 likewtp = list(size = 0)to hide the willingness to pay text. (3d8a770) - Small features added which were missing for the new edition of the BCEA book:
- Extended
ggplotversion legend to take a vertical or horizontal part to theposargument (85ba87f). ceplane.plot()andceac plotrelative font size argumentrelfixed (8d1586f).eib_plotandevi_plottext sizeggplotargument added (1e32788) and (84aaa2f).ceplane.plot()now haslabel.poslogical argument fixed forggplot(92e9eb0) and baseR(c7351e4).
- Extended
February 2024
Patch fixing small bugs from last CRAN release.
- Moved
{voi}package to Suggests in DESCRIPTION and addedrequireNamespace()inevppi()to avoid error when not installed (e.g. on CRAN) (f3e3e3e) - Converted help documentation in
man-roxygenfolder to md (cf858b1) - bugfix: line width in CEAC plot.
{ggplot2}changed in version 3 tolinewidthfromsizeargument and had only changed some of the code. Updated toscale_linewidth_manual(). (60bea9c) - Using
testdatafolder{testthat}unit tests. (cbce0fa)
November 2023
Some cosmetic changes to clean up.
- Removed the (by now, unnecessary) appveyor webhook
- Added correct
Remotesin theDESCRIPTIONfile to point to the correct GitHub repos forvoiandplotrix - Changed the class of the object
smoking_outputto be used in theevppiexample avoiding the need forrjags
October 2023
Moved internal EVPPI calculation out of BCEA and now uses voi package instead.
Refactoring but retaining same interface and functionality.
- Ensure using latest CRAN release of
{voi}which has a patch so that BCEA can use it without losing functionality- Latest version of
{voi}needed when we usecheck = TRUEinvoi::evppi()in order to access fitting data (6e436b5, 94f5fc5)
- Latest version of
evppi()tested against all use cases in BCEA book (1c1457d2)- Select parameters by position (as well as name) in new
evppi()(f2e4d005) - Use single parameter case only like
voipackage for methodssalandso(#140) - New
evppi()matching output of oldevppi()(1e2c5e7) - Latest development version of
voineeded when we usecheck = TRUEinvoi::evppi()in order to access fitting data (6e436b5, 94f5fc5) - No longer require
INLApackage to be available inside ofBCEAso can remove direct dependency. This helps with passing CRAN checks and GitHub Actions ()
June 2023
- Patch to fix a CRAN checks error. Suggested package
{MCMCvis}wasn't used conditionally in unit test. Moved to Required packages inDESCRIPTION.
May 2023
- Consistent colours across plots for each intervention for grid of plots in
plot.bcea()(cf1ee43) make.report()change variable name (f940f2e)- Fixed issue with summary table where names of interventions in the wrong order (6a006e3)
summary.bcea()now only prints results for chosen comparisons and not always all of them.kstarandbestinbcea()object were not updated with subset of interventions (#125)
withr::with_par()used in plotting functionplot.bcea()to only temporarily change graphics parameters. (725c536)- Using
@mdand markdown syntax in function documentation - Update
psa.struct()to add the absolute value in the formula to compute the weights (1cea278) - Use
dplyrpiping new syntax from.data$*to simply using speech marks"*"(2b280ad)
- Template added for GitHub Issues (0ea59fa)
August 2022
summary.bcea()wasn't passingwtpargument tosim_table()internally (5440eb3)summary()was the same for basicbceaandmulti.ceobjects. Now has ownsummary.pairwise()method. (88ade51)struct.psa()output now works withsummary()and plots all still work without having to use $ to get atbceaobject as before. (b014c83)- Changed
wtpargument inbcea()tokbecausewtpin the plotting functions refers to the wtp line and so is a scalar whereaskis a grid of points. Added an error message to use new argument. (b014c83) bcea()still allows a scalarkbut added a warning that this will give empty plots.- Updated GitHub Actions for checking the package to use
r-lib/Actionsversion 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 package r-release-macos-x86_64 isn't available resulting in a CRAN check error and doesn't appear to be maintained. Tried emailing the author but bounced. Removed dependency and copied
GrassmannOptim()function inside of package with acknowledgement.
- Now uses
Rdpackfor bibliography in documentation (229c96d) - The cost and health values in the
SmokingandVaccinedata sets have been renamed fromcandetocostandeff. This is to avoid any conflict with thec()function. - Changed the axes labels in the cost-effectiveness planes from "differential" to "incremental". (688d98b)
- Can now specify what order the interventions labels are in the legend for ce plane (and contour plots) for base R and ggplot2 i.e. reference first or second with optional
ref_firstargument (cc38f07) - Can specify currency for axes in
ceplane.plot()andceac.plot()ggplot2versions (6808aa6) - Argument added to
ceplane.plot()oficer_annotto annotate each of the ICER points with the text label of the intervention name. Only forggplot2at the moment. (a7b4beb) - Added
posargument tocontour2()so that its consistent withcontour()andceplane.plot(). (50f8f8b) - Allow passing
refargument by name as well as index inbcea(). (9eab459)
April 2022
ceplane_ggplot()missing legend- Legend bug in
evppi() - Arguments in consistent same order as
ceplane.plot() ceplane_plot_base()wasn't showing grey area. Fixed by removingalphatransparencyceac.plot()wasn't showing confidence interval by default for one comparison- Typo fixed in dropping dimension in
compute_vi() setReferenceGroup()for CEAC plot legend error; doesn't use supplied names but generic intervention 1, intervention 2, ... (#82)- Missing
multi.ce()line for reference group (#80)
- Use
clipackage for warning messages - Clean @keywords in Roxygen
- Removed all the internal helper functions from the Manual by using @keyword internal
- Refactor contour plots
- Plot functions take more standard
ggplot2format style arguments e.g. as list- Extend some function (
ceac.plot()) to take more style arguments than before for e.g. colour of lines, types of points and line thickness. - Resuse
ceplane.plot()code incontour()
- Extend some function (
goodpracticepackage suggested changes- line length,
seq_len(), remove;
- line length,
- Contributor guidelines (#93)
- Deprecated functions document
contour2()changed soxlim,ylimarguments are optional; the same asceplane.plot()since they are passes to itcontour()andceplane.plot()vignettes written
Oct 2021
- Code base improved robustness and extensibility.
bcea()is now a helper function which calls the constructornew_bcea(), separating concerns.new_bcea()composed of smaller HEE statistics functions with names starting withcompute_*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 tonew_bcea().- Plotting functions have been rewritten. These functions now simply dispatch to the base R, ggplot2 or plotly versions (think strategy pattern).
Internally, these functions, e.g.
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- Deprecated
mce.plot(). Now dispatched onceac.plot()for bothmulti.ce()andbcea()outputs. - For a multiple comparison the plot for pairwise comparison over all interventions is returned by default. The alternative version of each comparison against the reference group is still available.
- Plots and tables using S3 methods for
bceatype object.
- Deprecated
- Tables updated. Duplication in
summary()andsim_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.
- Extend ways to set comparison interventions. Subsets of comparison can still be set in a call to a plotting function as before.
Now subsets can be set in both the original
bcea()construction or separately using a setter functionssetComparisons(). - Similarly, maximum willingness to pay and the reference group can be set with
setKmax()andsetReferenceGroup(), respectively. multi.ce()andCEriskAv()also now work similarly. They operate by modifying thebceaobject, rather than creating new one (think decorator pattern).bcea()methods for JAGS, WinBUGS, Stan (#76)
- Additional help documentation and examples.
- New vignettes about plotting and comparison intervention setting.
- Testing suite started. This is not comprehensive as of yet.
- Added a
NEWS.mdfile 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. pkgdownGitHub site made.- Cheatsheet written and published on RStudio site (#22).
- Dependency package ldr removed from BCEA because it was removed from CRAN (#74)
26 Aug 2019
5 Aug 2019
11 July 2018
- Fix in
evppito allowNto be selected in all methods - Fix
diag.evppi
18 Nov 2016
- Some changes to EVPPI
Nov 2016
- Fixes for new ggplot2 version (
legend.spacing()andplot.titlehjustargument)
22 May 2016
- Major update for the EVPPI to include PFC
- Fixed issues with
info.rank
25 Jan 2016
- Minor change to
ceef.plotto align with ggplot2 v2.0.0
Oct 2015
- Adds the info-rank plot
Oct 2015
- Cleaned up and aligned with R's settings
EVPPIfunction polished up
6 May 2015 2015
- New function for EVPPI using SPDE-INLA
- Modifications to the EVPPI functions
- Documentation updated
- Allows
xlim&ylimin theceplane.plot(),contour()andcontour2()functions - It is now possible to run
bceafor a scalar wtp - Old
evppi()function and method has been renamedevppi0, which means there's also a newplot.evppi0method
13 Jan 2015
- Migrated from
if (require())toif (requireNamespace(,quietly=TRUE)) - Documentation updated
- Added threshold argument to
ceef.plotfunction
Oct 2014
- modifications to
ceef.plot,createInputs,struct.psa
13 Jan 2015
- Documentation updated
- Smoking dataset and
ceef.plotfunction included, additional modifications
2 Dec 2013
2 Dec 2013
ceac.plotandeib.plot: option comparison included for base graphics
2 Dec 2013
31 July 2013
30 July 2013
- Implements two quick and general methods to compute the EVPPI
- Function
CreateInputs(), which takes as input an object in the class rjags or bugs - Compute the EVPPI for one or more parameters calling the function
evppi() - Results can be visualised using the specific method plot for the class
evppiand 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