This is a major release containing several important improvements.
* Support for python 3.8, tensorflow 2, and sklearn 0.22 and above (210)
* Major enhancements to bootstrap inference, allowing stratified bootstrap for discrete treatments, full inference support \when using bootstrap (including things like `summary` to get nice results tables), and the ability to use pivot bootstrap (now the default) or bootstrap with a parametric normal assumption instead of percentile bootstrap (236, 299)
* Major performance improvements to our OrthoForest classes; in some of our tests the new code is ~10x faster (316)
* Added a CausalForest implementation comparable to grf (316)
* Added full inference support for our Forest classes using bootstrap of little bags (including things like `summary` to get a nice results table) (316)
* Added support for feature importance to ForestDML and ForestDRLearner, and sped them up substantially (306)
* Most estimators now support `inference='auto'` by default during fitting to use a fast recommended form of inference for that estimator (307)
* Added a robust linear model (`StatsModelsRLM`) that can be used as a final stage for DML while supporting inference (307)
* Enabled grouping during cross-fitting for DML and other OrthoLearner classes (273)
* New case study notebooks incorporating DoWhy (255)
* Many bug fixes and small enhancements, such as enabling model serialization (258, 248, 318, 305, 283)
**Upcoming breaking changes**
We have also taken this opportunity to deprecate some aspects of our existing code, and which we will remove completely in a future update to the library. You will now see a warning if you use these features.
* The DML estimators have been renamed to remove the `CateEstimator` suffix; for example, you can now use just `LinearDML` instead of `LinearDMLCateEstimator`. You can continue to use the old names for now, but should move to the new names since the old ones will be removed in a future update.
* The OrthoForest classes have also been renamed to make their names more similar to other classes in our package. `DiscreteTreatmentOrthoForest` is now `DROrthoForest` and `ContinuousTreatmentOrthoForest` is now `DMLOrthoForest`.
* Arguments to `fit` other than `Y` or `T` should now be passed by keyword rather than positionally; previously we had encountered cases where users were passing arguments in the wrong order, which we hope this change will prevent. Again, the old usage will generate a warning and will be removed in a future update.