Renamed the default quantreg() method from
"local" to "exchangeable", retaining
"local" as an alias. Exchangeable and forest-weighted
quantiles and moments are now calculated directly from the saved
residual distribution. They no longer depend on the maxn
reporting grid, and quantiles can extend beyond the training-response
range.
Added get.pinball.error() for scoring selected
probability levels, observations, and continuous outcomes without
refitting. Added quantreg.tau controls for printed losses
and optional plot annotations.
Quantile plots now include an empirical training-response null
CRPS curve by default, controlled by crps.null. Graphical
arguments in ... now customize the main panel; use the new
inset.args argument for the CRPS inset. Improved subset
handling and preservation of multipanel graphics layouts.
Fixed prediction-time quantile probability alignment and default Greenwald–Khanna tolerances for singleton or repeated-singleton probability requests. Improved handling of selected multivariate responses, missing predictions, and singleton output dimensions.
Improved validation of imputation inputs and controls, support for tabular data containers and non-syntactic column names, and column alignment in blocked imputation.
Integer restoration now rounds only generated imputations, preserving observed fractional values. Corrected detection of integer-supported variables and avoided integer conversion when it would lose information.
Learned-imputer saving now stages and reads back learners before replacing an existing destination. Added path and learner-layout checks, protection against overwriting a full learner bank with a loaded subset, and recovery handling for failed replacements.
Training now reports partially failed learner banks and stops when no target learner succeeds. Prediction preserves previous fills when an update fails and reports convergence and failed-update diagnostics. Added support for empty deployment tables and reporting of numeric conversion failures.
Corrected OOD scoring of invalid class probabilities and discrepancies above the training reference. Improved numerical stability for extreme aggregation weights and powers.
Fixed partial-dependence extraction for multivariate and mixed
outcomes, singleton dimensions, factor codes, and competing-risk event
selection. plot.variable() now returns
partial.summary with means, standard deviations, standard
errors, and finite prediction counts. Standard errors consistently use
the empirical spread and available row count.
Improved graphical argument handling and cached partial-plot
reuse, together with axis limits, labels, and horizontal layouts in
plot.subsample().
Corrected nonparametric VIMP p-values to use the same centered subsampling distribution as confidence intervals. Subsampling and double-bootstrap summaries now align outcomes, predictors, and class/event columns by name and preserve unavailable statistics. Fixed performance-only double bootstrapping when the original forest already contains VIMP, and singleton-stratum sampling.
Added a training-data Kaplan–Meier null Brier reference to
plotBrierAUC(), enabled by default through
brier.null = TRUE. The reference uses the same evaluation
rows and censoring weights as the forest score.
Added threshold = "auto" and
threshold = "bayes" to
get.imbalanced.performance(). Improved probability-column
alignment, consistent exclusion of unavailable outcomes and predictions,
and handling of zero-valued F-scores and threshold
optimization.
Corrected AUC and Brier handling when scores are unavailable, and preserved available multivariate errors when another response has no error output.
Quantile grow objects now store numerical training residuals as
residual and residual.oob, also retained in
the saved forest, with source metadata recorded separately. These
replace the legacy yvar.grow and res.grow
fields.
Normalize data-frame subclasses before training and prediction.
Removed the lsos export.
Added dedicated help topics for classification performance, multivariate extraction, and fast save/load utilities. Expanded documentation for quantile regression, imputation, partial dependence, subsampling, and plotting.
Expanded get.brier.survival() to support
user-selected prediction horizons, optional pointwise confidence
intervals, and optional retention of the subject-by-time IPCW loss
matrix. The censoring distribution is estimated from the full grow data,
while predictions are scored against their correctly aligned grow or
test outcomes.
Added get.auct.survival() for cumulative/dynamic
time-dependent AUC using the time-specific risk 1 - S(t).
The implementation uses efficient weighted rank calculations, gives half
credit to ties, and returns case and control counts together with IPCW
effective sample sizes and maximum normalized weights.
Added plotBrierAUC(), a base-R helper for plotting
Brier and AUC(t) curves with optional pointwise confidence bands. No new
package dependencies are required.
Added fixed-fit conditional standard errors. Brier-score uncertainty uses the delete-one jackknife of subject-level IPCW losses, which is equivalent to the empirical influence-value calculation when predictions and censoring weights are held fixed. AUC(t) uncertainty uses a stratified delete-one jackknife that separately deletes cases and controls and renormalizes the remaining IPCW weights; with equal weights it reduces to the ordinary DeLong variance.
Corrected plot.survival() and the underlying Brier
calculations for prediction objects. Test predictions are now paired
with test outcomes, arbitrary subsets retain their proper outcome
alignment, and prediction objects without outcomes are limited to
survival-curve displays rather than incorrectly calculating Brier score
or CRPS.
Restored compatibility with reduced objects returned by
rfsrc.fast(..., forest = FALSE) for the default
Kaplan–Meier censoring model. Requests for
cens.model = "rfsrc" now give an informative error when
stored grow or evaluation covariates are unavailable.
New hybrid proxmity and distance that compares test
observations (rows) with original training observations.
impute.learn() now supports training-time storage of
OOD calibration objects through save.ood = TRUE (default),
allowing deployment pipelines to return row-level anomaly summaries in
addition to imputed values.impute.learn() now accepts optional OOD
weight values at fit time. These can be supplied as named
target weights, are stored in the manifest, and are reused automatically
by impute.ood() when score-time weights are not
supplied.score and a
calibrated score.percentile, with optional target-level
details when return.details = TRUE.impute.ood() now supports generalized row aggregation
through aggregate and aggregate.args, allowing
users to experiment with row-level anomaly metrics beyond the default
weighted mean. Initial options include weighted mean, weighted
L_p, weighted L_p after a log-tail transform,
top-k, and a bounded product metric on
1 - u_j.newdata are now tracked
row-wise and are assigned maximal row-level OOD scores so schema and
category anomalies are easy to identify.cache.learners support and richer diagnostics.weight vector is supplied, weights are
matched by target name; omitted targets receive weight 0,
and extra names are ignored.score.percentile remains
available for arbitrary target subsets and test-time weight overrides
rather than being limited to the original training-time weighting
scheme.target.mode = "all",
impute.learn() still fits deployable predictive-imputation
learners so later score-time missingness and OOD scoring can be handled
without retraining.cache.learners normalization in the OOD scoring
path.1.score output even when legacy objects do not
contain enough saved OOD information to rebuild
score.percentile under the new calibration logic.impute.learn help topic to document
impute.ood(), OOD score interpretation, saved weights,
test-time overrides, and unseen-level diagnostics.target.mode = "all", weighted OOD scoring, and alternate
row aggregators.impute.learn() now supports training-time storage of
out-of-distribution (OOD) calibration references through
save.ood = TRUE (default), enabling a new test-time OOD
scoring workflow via impute.ood() /
impute.ood.rfsrc().impute.ood() scores new cases by masked reconstruction
across the learned imputation targets and returns row-level OOD scores,
plus score percentiles when the saved row-level calibration is directly
reusable.impute.ood() usage, arguments, return values, and
examples to the existing impute.learn help topic instead of
creating a separate help page.target.mode = "all" is the recommended
training configuration when OOD scoring is intended for deployment
use.cache.learners argument normalization in the OOD
scoring path.