- Added support for parametric treatment effect term in BCF #309
- 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
- Converted all R man page titles to title case #310
- 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
- Fixed status logging bugs for multi-chain R MCMC loops (#298)
- 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.
- Added
print,summary,plot, andextract_parametergeneric functions in R for thebartmodelandbcfmodelclasses (#271)
- 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)
- Fix prediction bug for univariate random effects models in R (#248)
- Fix prediction bug for Python BART and BCF models with random effects with labels that aren't straightforward
0:(num_groups-1)integers (#256)
- Encode expectations about which combinations of BART / BCF features work together and ensure warning (#250)
- 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)
- Modified default random effects initialization (#190)
- Avoid double prediction on training set (#178)
- 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)
- Clarify structure / layout of samples when users request multiple chains in BART and BCF models (#220)
- 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)
- Fixed initialization bug in several R package code examples for random effects models
- 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