Skip to content

Releases: py-why/EconML

v0.9.0b1

01 Feb 16:39
Compare
Choose a tag to compare
v0.9.0b1 Pre-release
Pre-release

This is the beta for our next major release. It contains several major new features, as well as a few important breaks in backwards compatibility.

  • Introduces Cython implementations of GRF and CausalForestDML, greatly improving the performance of these estimators (#341)

  • Enables first stage nuisance estimates to be cached, allowing refitting only the final model for ortho learner subclasses (#360)

  • Enables averaging nuisance estimates over several random splits, resulting in lower variance estimates for ortho learner subclasses (#360)

  • Adds an RScorer class for performing model selection over different CATE estimators (#361)

  • Enables getting SHAP feature importances for CATE estimates (#336, #369)

  • Major Breaking Change: restructured package organization, moving estimators to more consistent locations; for example, the IntentToTreatDRIV estimator is now found at econml.iv.dr.IntentToTreatDRIV. For the moment, we also support using the old package organization (e.g. econml.ortho_iv.IntentToTreatDRIV), but this is deprecated and will be removed in a subsequent release (#370)

  • Breaking Change: the n_splits initializer argument for ortho learner subclasses has been renamed to cv to better match sklearn. For the moment, it is still possible to use the name n_splits, but this will be removed in a future release (#362)

  • Many small fixes and improvements (#337, #358, #373, #363, #365, #328)

v0.8.1

23 Nov 04:59
Compare
Choose a tag to compare

This is a bugfix release which addresses a few minor issues. The most important issues addressed are:

  • Our previous release was incompatible with some commonly used sklearn releases (#324)
  • Calling fit repeatedly should now return the same results each time when classes are initialized with a fixed random state (#325)
  • Improvements to how scoring is performed for some classes in econml.ortho_iv (#325)

v0.8.0

18 Nov 23:02
Compare
Choose a tag to compare

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.

v0.8.0b1

21 Oct 15:17
Compare
Choose a tag to compare
v0.8.0b1 Pre-release
Pre-release

This is a beta of our next major release, containing the following changes:

  • Support for python 3.8, tensorflow 2, and sklearn 0.22 and above (#210)
  • New case study notebooks incorporating DoWhy (#255)
  • Many bug fixes and small enhancements, such as enabling model serialization (#258, #248)

v0.7.0

09 Mar 14:20
3606b0b
Compare
Choose a tag to compare

This is a major release, with the following important changes:

  • Richer inference support, including hypothesis testing, p-values, and more when using linear models (#203)
  • New estimators supporting orthogonal approaches to IV, including DML IV and DR IV (#218)
  • Experimental support for using Azure Automated Machine Learning for model selection (#213)
  • Allows the use of bootstrap of little bags for inference with the OrthoForest (#214)
  • The CATE policy interpreter can now assign treatments to new units based on the learned policy (#228)
  • Added new Jupyter notebooks illustrating how to use the library for end-to-end scenarios (#230)
  • Several minor bugfixes (#220, #212, #223, #225, #226, #227, #232)

v0.7.0b1

18 Feb 17:57
a1c5f71
Compare
Choose a tag to compare
v0.7.0b1 Pre-release
Pre-release

This is the beta for our next major release, with the following important changes:

  • Richer inference support, including hypothesis testing, p-values, and more when using linear models (#203)
  • New estimators supporting orthogonal approaches to IV, including DML IV and DR IV (#218)
  • Experimental support for using Azure Automated Machine Learning for model selection (#213)
  • The ability to use bootstrap of little bags for inference with the OrthoForest (#214)
  • Several minor bugfixes (#220, #212)

v0.6.1

13 Jan 21:02
Compare
Choose a tag to compare

This release fixes a few bugs:

  • Improves the selection of alphas when using debiased lasso (#211)
  • Fixes an issue with weight clipping in non-parametric DML (#208)
  • Enables DRLearner subclasses to handle Y arrays with shape (n,1) instead of just (n,) (#209)

v0.6

07 Dec 07:37
Compare
Choose a tag to compare

This release includes the following changes:

  • Adds a new double ML class with a non-parametric final stage (#170)
  • Adds an "honest forest" sklearn-compatible regressor, plus forest-based DML and DR CATE estimators based on it (#170)
  • Adds classes to support visual interpretation of CATE estimates and policies, along with notebooks demonstrating their use (#177)
  • Vastly improves the documentation (#197)
  • Fixes an issue where we used more memory than necessary in a few places (#199)

v0.5

22 Nov 02:55
73964d3
Compare
Choose a tag to compare

This release includes many major changes.

  • Reorganized, expanded, and improved our documentation, including much better content around how to get started with the library (#159, #180)
  • Enabled the user to specify which inference method to use at fit-time.
  • Made several enhancements to our Double ML implementation (#75)
    • Added support for sample weights
    • Added support for statsmodels-like inference for confidence intervals
  • Introduced a more generic base class for orthogonal learners, enabling us to make our DML and DRLearner estimators more consistent with each other and setting the stage for future estimators like DMLIV (#132)
  • Made several improvements to the DRLearner (#137, #167)
  • Extended metalearners to handle multiple treatments (rather than only binary treatments) (#141)
  • Added a debiased lasso implementation to our utilities (#138), and used that as the basis for the sparse linear DML estimator (#162)
  • Enable automatic selection of appropriate models for DML (#172)
  • Separated the CATE intercept from the CATE coefficients on features for DML (#174)

We have also made many improvements around the ergonomics of the library (setting better defaults, making estimators APIs more consistent, etc.), and fixed many minor bugs.

v0.4

04 Jun 01:34
Compare
Choose a tag to compare

This update provides several minor improvements:

  • Adds support for controls to the NonparametricTwoStageLeastSquares estimator (this is a breaking change)
  • Fixes a few minor problems with the Deep IV implementation
    • Added support for treatments and outcomes that are vectors rather than 2-D arrays
    • Fixes a bug in the the effect method
  • Enables the BootstrapEstimator to work in non-thread-based parallel contexts
  • Adds a prototype of the DMLIV estimator (this is not included in the PyPI package because it is a prototype)