NEWS
curves 0.4.0 (2026-05-11)
New features
- Added
interactions(), which ranks numeric predictor pairs by the
count-weighted magnitude of their centred second-order ALE surfaces.
- Added
top_n to bivariate() for method = "ale" so the plotting
interface can rank all eligible pairs with interactions() and display only
the strongest interaction surfaces.
curves 0.3.1
Fixes
bivariate(method = "ale") now masks grid cells that contain no
observations as NA in the returned surface and renders them in the
fill scale's na.value (default light grey) rather than colouring them
with a value extrapolated from neighbouring cells. This prevents the
interaction surface from displaying confident estimates over regions of
feature space that the data does not support, which previously misled
readers when predictors were correlated.
bivariate(method = "ale") now defaults to n = 10 (the second-order
surface uses an n x n cell grid; n = 40 left most cells empty for
typical data) and to rug = TRUE so the data density is always visible.
ale_surface_limits() is robust to surfaces that are entirely NA.
- Updated docs/
Rd to describe the half-cell centring convention used for
the 2D ALE accumulation and the empty-cell masking behaviour.
- Enabled categorical ALE in
multimodel() and mapcurve(), matching the
univariate ALE support and using a shared level order across ensemble
members when multimodel() averages unordered factor effects.
- Added
extrapolate = FALSE to bivariate() so unsupported ALE grid cells
remain masked by default but can be shown on request using the interpolated
values already used internally for accumulation.
curves 0.3.0
New features
- Extended
univariate() with method = "profile", "pdp", "ice", and
"ice+pdp" so single-profile, partial dependence, and ICE plots share one
entry point.
- Added
method = "ale" to univariate() for accumulated local effects
curves on numeric predictors.
- Changed
univariate(method = "ale") to warn and skip factor predictors
instead of failing when numeric predictors are also available.
- Split
univariate() and mapcurve() sampling controls so n
sets numeric grid resolution while background_n sets the number of
randomly sampled background rows used for PDP/ICE.
- Added
interval to univariate() and mapcurve() so method = "pdp" can
draw central quantile ribbons for numeric predictors.
- Added adaptive raster sampling for
univariate() so PDP/ICE methods can draw
more background predictor combinations when predict_data comes from a
SpatRaster.
- Added
bivariate() for bivariate response surfaces with static heatmap and
contour views.
- Extended
bivariate() with method = "pdp" and method = "ale", plus
optional marginal rugs for numeric predictor pairs in static plots.
- Added optional interactive 3D response surfaces for numeric predictor pairs
when
plotly is installed.
- Added support for selecting predictor pairs by column name or column index.
- Added support for list-valued
fun in multimodel() so mixed model types
can use model-specific prediction wrappers before averaging curves.
Changes
- Renamed the bivariate plotting mode argument from
type to plot_type so
model-specific type arguments can still be passed through ... to
predict().
- Changed
bivariate(plot_type = "heatmap") to use a viridis fill scale by
default and to stop drawing contour overlays on heatmaps.
- Updated the random forest species distribution vignette to use a smaller
predictor set and to include
univariate() examples for profile, PDP, and
ICE + PDP plots.
- Stopped drawing connecting lines for unordered factor predictors in
univariate(), so categorical panels no longer imply numeric intervals.