emulator_from_data changed to avoid overfitting in edge
caseshit_by_wave when number of waves
exceeded the number of targetsemulator_from_data now safely terminates if users
supply width-zero ranges, or if regression is a ‘perfect fit’ for data;
behaviour of check.ranges = TRUE modified to ensure
consistent ranges are calculated.slice_sample now stable
against strange edge case behaviour.exp_sq).seek_good and importance_sample
to more efficiently propose points where the plausible set is already
large.hit_by_wave now accepts an n.sig parameter
to allow user determination of what constitutes a match to observational
data.plot_lattice now accepts parameter subset plotting,
aiding visualisation for large dimensional parameter spaces.emulator_plot a small (between 2 and 4) list of emulators
using the include_legend argument.Proto_emulator, generate_new_design can be
forced to maintain emulator ordering rather than order for
efficiency.purrr); documentation updates.diagnostic_pass for automated
diagnostics and modifications of emulators; hit_by_wave for
visualisation of history matching progress.simulator_plot et al. where some
combinations of wave_numbers and zero_in
caused out-of-index errors.emulator_type = "variance" or
emulator_type = "covariance".xx_emulator_from_data
functions are now a single function;
variance_emulator_from_data and
bimodal_emulator_from_data are now called using
emulator_from_data with argument
emulator_type = 'variance' and
emulator_type = 'multistate' respectively. To avoid
confusion about the output of the function,
generate_new_runs has been renamed to
generate_new_design. Older functions have been deprecated
and will be removed in a subsequent version.Changes to generate_new_design to avoid
implausibility asymptoting in edge cases.
Explicit checks included to ensure that ordering of parameter ranges matches with data.frames provided for training
Fixes to ensure that 1d systems behave as expected.
Fix to avoid singular correlation matrices in some situations
where corr_type = 'exp_sq'.
Fixes for edge-case multistate emulator training problems, and
for situations where model.matrix behaviour fails (due to
deparse truncation issues in core R functions).
Modifications to emulator design via
emulator_from_data: in particular hyperparameter estimation
has been made more robust; emulator regression surfaces now support
cubic terms; variance and multistate emulators now more robust to
different numbers of repetitions at different input sites.
Covariance emulation introduced (via
emulator_from_data(..., emulator_type = 'covariance')),
allowing a full covariance matrix to be robustly emulated. Results are
presented using a prototype emulator matrix EmulatedMatrix
to efficiently make predictions, including checks to ensure that
predicted matrices are semi-positive definite. In the future, covariance
matrices will be supported in implausibility measures and point
proposals.
Multiple fixes to deal with singletons: ensuring 1d examples work
with generate_new_runs; single output systems behave
appropriately under clustering, diagnostics, and implausibility for
bimodal_emulator_from_data; modifications to
simulator_plot for single output systems; bug-fix in
generate_new_runs for user-provided single-element
plausible sets.
Small fixes to guarantee compatibility with new functionality.
Fixed scoping issue with variance emulators where emulator would
not get the correct s_diag function when initialised within
a collection of emulators in
variance_emulator_from_data
Beeswarm plots added as alternative to
simulator_plot (credit to T.J. McKinley)
Custom multi-emulator implausibility now supported within
generate_new_runs: multiple conditions can be supplied as
part of the point-screening process via accept_measure.
Structure of optional arguments for generate_new_runs has
been modified (with backwards-compatibility for older code) - see help
file for details.
Added check to emulator_from_data to handle
mismatched input names and ranges
Proto_emulator introduced: the hmer
framework of diagnostics, visualisation, and point proposal can be used
with entirely custom objects.Fix to implausibility for variance emulators to take account of ensemble size
Functions full_wave,
variance_emulator_from_data,
bimodal_emulator_from_data all accept an na.rm
argument to handle missing data
Fixed edge cases where generate_new_runs could get
stuck at a particular implausibility cutoff, and increased stability of
termination for points generation from variance/bimodal
emulators
Other small fixes, including modification to ggplot
functions to handle deprecation of size aesthetic
Optimisation of emulator calculations, particularly within correlation matrices
Optimised point generation to leverage Latin Hypercube Designs, where useful
Modification to standard_errors to highlight points
of interest
Modifications made to facilitate support for custom emulators and implausibility measures (to come in a later update).
Implemented more error catching/handling for correlation functions, including explicit stop calls if hyperparameters are not provided/ill-specified and automatic coercion to data.matrix to ensure compatibility with derivative functions
Internal functions collect_emulators,
scale_input, convertRanges and
multiply_function modified to handle various edge case
usages and issues with multiple waves of stochastic or bimodal
emulators
Modified lhs_gen_cluster so that if emulators
cannot/need not be clustered, default lhs_gen behaviour is
used
Fixed Emulator code to address calculation issues
with derivatives that meant that partial derivatives did not
commute
Various other small fixes
Unit testing framework implemented and tracked; unit tests for all relevant functions are now in place
Functions generate_new_runs and
nth_implausible will try to determine a sensible value of
n or nth when calculating nth-maximum
implausibility if none is supplied by the user.
Badges and sticker added to readme
NEWS.md file to track changes to the
package.