This release improves the numerical stability of the sample size and precision calculations.
bpm_valsamp(): for better stability, the root finding
for net-benefit targets (oa.nb, voi.nb) now
searches over log(N), for N between 1 and 100,000. The range can be
changed with ex_args$nb_n_range.bpm_valsamp(): net-benefit targets now handle edge
cases explicitly. If assurance under current information already meets
the oa.nb target, or EVPI is zero for voi.nb,
NA is returned with a message; a target not reached within
the search range returns NA with a warning. A new
$nb element holds each target’s value with no new data and
the N found. Targets must be single values strictly between 0 and
1.bpm_valsamp() and bpm_valprec(): the
mapping from prevalence and c-statistic to the parameters of the
distribution of calibrated risks is more reliable. The package now
requires mcmapper (>= 0.0.12), and if the mapping fails for a single
Monte Carlo draw it is retried from a different starting point instead
of stopping with an error.bpm_valsamp() and bpm_valprec(): an
infinite confidence interval width for O/E calibration now gives a
warning instead of opening the debugger.evidence, the net-benefit calculations now use all of its
rows (bpm_valsamp()), and sensitivity and specificity are
computed at the requested threshold (bpm_valprec()).Bug-fix release addressing several issues in the evidence-processing and correlation-induction internals.
process_evidence(): named native beta parameters (e.g.
beta(alpha = 2, beta = 3)) no longer error with
“non-numeric argument to binary operator”; parameters supplied by name
are now coerced to a numeric vector before use.process_evidence(): native probitnorm
parameters now produce correct moments (an internal call referenced a
mistyped distribution name and returned NULL moments).process_evidence(): named native parameters
mu/sigma are now accepted for
logitnorm and probitnorm; a mix of named and
unnamed parameters (e.g. beta(0.4, var = 0.04)) is now
rejected as ambiguous rather than silently misread; moment names are
standardised to m/v across all specification
styles.infer_correlation(): fixed matrix indexing that caused
the prevalence and mean-calibration columns to be computed from a single
value rather than the simulated data, which corrupted the correlation
matrix used for correlation induction in bpm_valsamp() and
bpm_valprec().cal_oe) now works in both bpm_valsamp() and
bpm_valprec(). Previously bpm_valsamp()
handled only mean calibration when imputing the calibration intercept,
and correlation induction failed for cal_oe evidence
because infer_correlation() did not return an O/E column.
All three calibration parameterisations (cal_mean,
cal_oe, cal_int, each with
cal_slp) are now supported by both functions.process_evidence() to document
all supported evidence specification styles (native parameters, moments
with a variance or standard deviation, and mean plus upper
quantile).print() method for bpm_evidence
objects (returned by process_evidence()) that displays each
component’s distribution, native parameters, and implied mean and
variance.summary() for bpm_evidence objects now
also reports the 95% range (2.5th and 97.5th percentiles) of each
evidence component.testthat test suite covering the moment
helpers, performance-metric calculators, evidence processing, and the
main entry points.