Boosted Multivariate Trees for Longitudinal Data
Overview
Implements Friedman's gradient descent boosting algorithm for modeling longitudinal response using multivariate tree base learners. Longitudinal response could be continuous, binary, nominal or ordinal. A time-covariate interaction effect is modeled using penalized B-splines (P-splines) with estimated adaptive smoothing parameter. Although the package is design for longitudinal data, it can handle cross-sectional data as well. Implementation details are provided in Pande et al. (2017), Mach Learn DOI:10.1007/s10994-016-5597-1.
This is a major maintenance and interface-cleanup release prepared for CRAN resubmission.
The release focuses on code correctness, documentation, naming consistency, and more predictable behavior for core fitting, prediction, and visualization workflows.
Major changes
- Refactored the package around a modular source layout while preserving the core
ntree = 1tree-based boosting path. - Standardized the public interface to lower-case, dotted naming conventions.
- Families are now specified as
"continuous","binary","nominal", and"ordinal". - Returned object components now use the same naming convention.
- Added
boostmtree.control()as the primary user-facing control interface for resampling, reproducibility, and other fitting options. - Clarified first-pass scope: the current refactor supports
control$ntree = 1.
Fitting and model-object updates
- Reworked preprocessing so that subject-level covariates, identifiers, times, and responses remain aligned throughout fitting.
- Improved handling of non-continuous responses, including binary, nominal, and ordinal encoding.
Show all changes in 2.0.0Hide the rest of the changes in 2.0.0
- Improved support for univariate fits when
tmandidare omitted. - Restored the original tree-fitting logic more faithfully in key places while keeping the refactored package structure.
- Simplified and regularized the structure of returned objects.
- Internal code keeps the boosted-subproblem (
q) representation. - Public objects flatten single-response results consistently for continuous and binary fits.
- Removed legacy object components and hidden option paths that were no longer needed in the first-pass redesign.
Resampling, OOB, and cross-validation
- Cleaned up the interaction between bootstrap sampling, OOB availability, cross-validation, and variable importance.
seednow controls reproducibility only.- Removed the silent legacy rewrite of
bootstrap = "none"into a full in-bag user bootstrap. - When
cv.flag = TRUE, the fit now enforces an OOB-producing resampling rule and records OOB availability in the fitted object. - Added explicit fitted-object fields documenting OOB behavior, including
oob.availableandoob.subject.count.
Prediction, printing, and plotting
- Updated
predict.boostmtree()to match the refactored object structure and naming conventions. - Improved prediction handling for:
- held-out longitudinal test data,
- new subjects evaluated on the fitted training time grid,
- user-supplied common time grids via partial prediction.
- Updated
print.boostmtree()so grow and predict objects are summarized correctly and consistently. - Updated
plot.boostmtree()so plotting now goes to the active graphics device by default. - PDF output is still available when explicitly requested.
- Plotting data can also be returned for user-directed graphics workflows.
Variable importance and effect plots
- Redesigned variable-importance output around a classed
vimp.boostmtreeobject. - Replaced the old
vimpPlot()workflow withplot()methods for variable-importance objects. - Added clearer checks for grow-object variable importance when OOB information is unavailable.
- Reworked partial and marginal effect plotting around canonical function names:
partial.plot()/partial.plot.boostmtree()marginal.plot()/marginal.plot.boostmtree()- Updated effect-plot functions to use the active graphics device by default instead of creating PDF files automatically.
- Added response-label selection for partial and marginal plots in multi-level response settings.
Documentation
- Rewrote the main
boostmtreehelp page in a more user-facing style. - Expanded examples to cover:
- continuous longitudinal fits,
- binary fits,
- univariate fits,
- held-out prediction,
- AF-data illustration,
- variable importance,
- partial and marginal plots.
- Improved documentation for
print,plot,predict, variable importance, and effect-plot methods. - Clarified the interpretation of
phi,rho,lambda,mod.grad, and prediction outputs such asmuandmuhat. - Updated package references to include later methodological and application papers:
- Pande A., Ishwaran H., Blackstone E.H., Rajeswaran J., and Gillinov M. (2022). Application of gradient boosting in evaluating surgical ablation for atrial fibrillation. *SN Computer Science*, 3:466.
- Pande A., Ishwaran H., and Blackstone E.H. (2022). Boosting for multivariate longitudinal responses. *SN Computer Science*, 3:186.
Backward-incompatible changes
- The package now uses canonical lower-case, dotted names throughout the public interface.
- Returned object components were renamed to match the new naming convention.
- Legacy mixed-case and underscore-style argument names are no longer supported in the first-pass refactor.
- Legacy plotting helpers such as
vimpPlot(),partialPlot(), andmarginalPlot()were replaced by classed objects andplot()methods or lower-case dotted interfaces. - Automatic PDF creation is no longer the default plotting behavior.
Internal cleanup and bug fixes
- Removed conflicting and duplicated legacy helper code from
utilities.R. - Fixed multiple issues uncovered during example-driven testing, including bugs affecting:
- univariate fits,
- longitudinal prediction,
- predict-object printing,
- grow/predict consistency for
mu,muhat, and related fields, - partial-plot indexing,
- compatibility between stored
gammarepresentations used during prediction. - Removed legacy components no longer needed for the first-pass package design, including
forest.tol.
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK13 OK2026-06-09
- ERROR12 OK, 1 ERROR2026-06-08
- OK7 OK2026-04-11
Documentation
- Help pages
- 14includes a package overview page
- Examples that run
- 83%10 run in a plain check · 2 only when donttest examples are enabled (R CMD check --as-cran)
- Exported functions with examples
- 91%
- Documented parameters
- 100%
- Return-value docs
- 100%
- Help pages citing references
- 71%
Downloads
Dependencies
Installing boostmtree adds 63 packages (32 with compiled code, 53 MB of source tarballs). Heaviest: stringi 11 MB, bslib 5.6 MB, igraph 4.8 MB.
Code & Tests
Datasets
People & History
Maintainer since 1.0.0 (2016)
Pick two releases to compare their code metrics.
- RR 4.6.0 released · 2026-04-24
- unarchivedReturned to CRAN2026-04-10
- 2.0.0Latest2026-04-10 · current release · diff ↗ ·
removed 3 exports
partialPlot, marginalPlot, vimpPlotadded 4 exports
boostmtree.control, partial.plot, marginal.plot, plot.vimp.boostmtree - RR 4.5.0 released · 2025-04-11
- archivedRemoved from CRAN2025-01-19issues were not corrected in time In 'randomForestSRC' by the same maintainer despite update
- RR 4.4.0 released · 2024-04-24
- RR 4.3.0 released · 2023-04-21
- RR 4.2.0 released · 2022-04-22
- unarchivedReturned to CRAN2022-03-10
- 1.5.12022-03-10 · diff ↗
- archivedRemoved from CRAN2022-02-23requires archived package 'randomForestSRC'
- RR 4.1.0 released · 2021-05-18
- 1.5.02020-11-24 · diff ↗
- RR 4.0.0 released · 2020-04-24
- 1.4.12019-11-21 · diff ↗
- 1.4.0
Show 10 earlier eventsHide 10 earlier events
Package metadata
- First published
- 2016-03-17
- Total releases
- 10 / 10 yrs
- License
- GPL (>= 3) OSI
- Minimum R
- ≥ 4.3.0
- Bundled data
- 194 KB / 2 files
- Download size
- 252 KB
Cite
Cite this package
Run in R for the authors' preferred citation:
citation("boostmtree")The package provides a citation file that builds its entry when R runs it. Run citation() to see it.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-24, which the citation names so these numbers can be found later. More on citing and the projects behind them.