Changelog
stochtree 0.4.6-dev
Bug Fixes
- Fix the covariate range used to propose MCMC split points, which was computed incorrectly when all of a node’s values for a feature were negative or when the node’s first observation held its largest value, causing grow proposals to be rejected or drawn from the wrong range #425
- Fix the move-type and node-selection probabilities in the MCMC grow / prune Metropolis-Hastings acceptance ratios, so that the tree sampler targets the correct posterior over trees #426
- Fix ordering of missing (
NaN) covariate values when presorting features for the grow-from-root (GFR) sampler, which now sortsNaNs last, consistent with how numeric splits route them #427 - Fix the conditional posterior of the random effects variance components, which was missing factors of one half in its inverse gamma shape and scale #428
- Fix an uninitialized starting value when initializing cloglog forests in R, which could crash or corrupt the outcome data for binary and ordinal models with a cloglog link #420
Fixes in #425, #426, and #428 change sampler output, as does #427 for covariates with missing values, so results for a given random seed will differ from previous versions.
Documentation and Other Maintenance
- Remove unused variables flagged by compiler warnings #417
- Mark
Log::Fatalas[[noreturn]], which silences “may be used uninitialized” compiler warnings #418 - Explicitly initialize variables in the R forest initialization and sampling code #421
- Use shallow clones and canonical
.gitURLs for git submodules #422 - Updated Eigen version to 5.0.1, which also fixes builds on PowerPC without VSX support #424
- Add absolute tolerance to several python floating point comparison tests #430.
- Add exact-posterior tests of the MCMC tree sampler in R and Python, which check that a long chain on a small problem reproduces the analytically enumerated posterior over trees #431
stochtree 0.4.5
Bug Fixes
stochtree 0.4.4
Documentation and Other Maintenance
- Switch sampling default to single-threaded execution (
num_threads = 1) in both R and Python #396. This prevents CRAN pre-checks from failing due to limitations on core usage and also avoid unintentional default interaction with users’ own multi-core setups.
stochtree 0.4.3
Bug Fixes
- Fix serialization / deserialization roundtrip bugs in BART and BCF #393
- Safely handle / cast
float32inputs in python BART / BCF #389 - Fix ordinal cloglog probability transform for K>=4 categories #382
- Fixed bug that separated homogeneous parametric treatment effect term (
tau_0) from treatment effect forest predictions (tau(x)), only including the latter intaufor BCF predictions when a parametric term is included in the model #377 - Fixed BCF prediction bug for prognostic function and mu(X) when adaptive coding is used and the tau(x) forest is not also requested by a prediction call #377
- Fixed R BCF prediction bug when covariates are passed as dataframes and an internal propensity is sampled #374
stochtree 0.4.2
New Features
Bug Fixes
- Include boost headers in
sdistfor Python package #362 - Fixed prediction bug for cloglog BART in R #361
- Fixed assignment bug in RFX category tracker data structure #360
- Fixed prediction bugs in binary classification sklearn wrapper #359
- Fixed several initialization, sampling and prediction bugs for cloglog #357
- Fixed num_threads pass-through bug in R BART #339
- Fixed probit offset bug in R and Python #337
- Standardized multi-chain BCF handling of internal propensity models #334
- Fixed multi-chain BCF bugs with the parametric intercept term in R and Python #326
- Fixed indexing bugs for multivariate treatment BCF in Python #326
- Convert binary factor-valued treatments to 0/1 binary numeric treatment in
bcf()R function #332
Documentation and Other Maintenance
- Add support for python 3.14 and drop 3.8 and 3.9 #363
stochtree 0.4.1
Documentation and Other Maintenance
stochtree 0.4.0
New Features
- Added support for ordinal outcome modeling through complementary log-log link function in the BART models (#196)
- Added
__str__,__repr__,summary, andextract_parametermethods in Python for theBARTModelandBCFModelclasses (#298) - Added plotting utility function (
plot_parameter_trace) in Python that operates on both theBARTModelandBCFModelclasses (#298) - Added vignettes for summary / model inspection utilities in both R and Python (#298)
- Added
printmethods in R and__str__methods in Python for the forest container and random effects container objects (#298) - Updated R documentation to group related functions into topics (#302):
BARTSerializationBCFSerializationForestSamplesSerializationRandomEffectSamplesSerializationDataPreprocessingForestKernelComputationForestStateManagementRandomEffectStateManagement
- Converted the following R function names from snake case to camel case (#302):
compute_bart_posterior_interval->computeBARTPosteriorIntervalcompute_bcf_posterior_interval->computeBCFPosteriorIntervalcompute_contrast_bart_model->computeContrastBARTModelcompute_contrast_bcf_model->computeContrastBCFModelextract_parameter->extractParametersample_bart_posterior_predictive->sampleBARTPosteriorPredictivesample_bcf_posterior_predictive->sampleBCFPosteriorPredictive
Bug Fixes
- Fixed status logging bugs for multi-chain R MCMC loops (#298)
stochtree 0.3.1
New Features
- Replaced C++ standard library distributions (
discrete_distribution,uniform_real_distribution,normal_distribution, andgamma_distribution) with custom implementations for cross-platform reproducibility. - Substituted custom implementations for base R
mean(),var(), andsd()in the preprocessing logic of the Rbart()andbcf()functions for enhanced numeric stability across platforms.
stochtree 0.3.0
New Features
Bug Fixes
- Fix R bug where our approach to temporarily modifying users’ RNG state failed if
.Random.seeddid not exist (i.e. if the R RNG hadn’t yet been accessed by an R session) (#258) - Fix prediction bug for R BART models with random effects with labels that aren’t straightforward
1:num_groupsintegers when onlyy_hatis requested (#256) - Fix issue with C++ standard specification in Windows R package config (#276)
stochtree 0.2.1
Bug Fixes
Other Changes
- Encode expectations about which combinations of BART / BCF features work together and ensure warning (#250)
stochtree 0.2.0
New Features
- Support for multithreading in various elements of the GFR and MCMC algorithms (#182)
- Support for binary outcomes in BART and BCF with a probit link (#164)
- Enable “restricted sweep” of tree algorithms over a handful of trees (#173)
- Support for multivariate treatment in R (#183)
- Enable modification of dataset variables (weights, etc…) via low-level interface (#194)
Computational Improvements
Bug Fixes
- Fixed indexing bug in cleanup of grow-from-root (GFR) samples in BART and BCF models
- Avoid using covariate preprocessor in
computeForestLeafIndicesfunction when aForestSamplesobject is provided (rather than abartmodelorbcfmodelobject) - Correctly compute feature-specific split counts in R and Python (#220)
- Avoid override of user-specified
num_burninparameter in BCF models with an internal propensity score (#222) - Outcome predictions correctly incorporate adaptive coding of untreated observations in BCF with binary treatment (#231)
Documentation Improvements
- Clarify structure / layout of samples when users request multiple chains in BART and BCF models (#220)
Other Changes
- Standardized naming conventions for data elements of BART and BCF models across R and Python interfaces
- Covariates / features are always referred to as “
X” - Treatment is always referred to as “
Z” - Propensity scores are referred to as “
propensity” (rather than “pi”) - Outcomes are referred to as “
y” - Basis vectors for leaf-wise regression models in forest terms are referred to as “
leaf_basis” - Group labels for additive random effects models are referred to as “
rfx_group_ids” - Basis vectors for additive random effects models are referred to as “
rfx_basis”
- Covariates / features are always referred to as “
- Run-time checks for variables that are treated as continuous but have many “ties” (which presents issues with the current GFR algorithm) when only GFR samples are requested (#243)
stochtree 0.1.1
- Fixed initialization bug in several R package code examples for random effects models
stochtree 0.1.0
- Initial release on CRAN.
- Support for sampling stochastic tree ensembles using two algorithms: MCMC and Grow-From-Root (GFR)
- High-level model types supported:
- Supervised learning with constant leaves or user-specified leaf regression models
- Causal effect estimation with binary or continuous treatments
- Additional high-level modeling features:
- Forest-based variance function estimation (heteroskedasticity)
- Additive (univariate or multivariate) group random effects
- Multi-chain sampling and support for parallelism
- “Warm-start” initialization of MCMC forest samplers via the Grow-From-Root (GFR) algorithm
- Automated preprocessing / handling of categorical variables
- Low-level interface:
- Ability to combine a forest sampler with other (additive) model terms, without using C++
- Combine and sample an arbitrary number of forests or random effects terms