Releases: py-why/dowhy
v0.12: Python 3.12 compatibility, [experimental] support for time-series data, and extensions to new scenarios
New features and example notebooks, several bug fixes, and runtime improvements. Now compatible with Python 3.12.
- Python 3.12 support
- A new distribution change method that's more robust and converges faster (Multiply-robust causal change attribution, Quintas-Martinez et al. (2024))
- Support for effect estimation over time-series data (Notebook)
- New rank-based anomaly scorer
- New example notebook on sale attribution (Notebook)
- New example notebook applying DoWhy for counterfactual fairness (Notebook)
- Misc. updates to improve efficiency
- Ask queries about DoWhy using Gurubase.io
Contributors: @bloebp, @amit-sharma, @kursataktas, @vivianqin214, @kapkic, @GregVS, @kmhj13, @Yangliu-SY, @nparent1, @rahulbshrestha, @srivhash, @darthtrevino, @yogabonito, @jonlives, @krz, @victor5as, @sinhaharsh, @Zethson, @dw-610, @diligejy
v0.11.1: Bug fixes and improvements
- New feature allowing users to write equations for the DGP of each node and obtain a causal model back with the mechanisms assigned (#1106 )
- Convenience function to access fitted estimator instances from CausalModel (#1113 )
- Bug fixes in Kernel-based independence test and networkx plot function
- Bug fixes for confidence intervals and regressionestimator
- Some improvements to CI/CD (auto-check readme on each PR, updated package publishing process, fix for timeout error)
Contributors: @bhatt-priyadutt, @drawlinson, @bloebp, @amit-sharma
v0.11: New GCM features and improved compatibility of GCM with CausalModel API
- New functional API is ready for use. Try out the notebook
- A notebook showing how to use causal-learn graph discovery with DoWhy
- New notebook demonstrating use of the intrinsic causal influence feature
- Enhanced compatibility between GCM and CausalModel api
- Frontdoor identification now supports multiple variables
- New module for evaluating performance and falsifying assumptions of GCM models
- GCM auto assignment now returns a summary
- Extended documentation, revised and simpler README
- Bug fixes and improvements
A big thank you to all the contributors: @amit-sharma, @bloebp, @kunwuz
v0.10.1: Minor fixes to main 0.10 release
This is a patch release.
- Added support for exposing interventional outcomes (@drawlinson)
- Fixed bugs for pandas 2.0 support (@bloebp) and confidence value for statistical test (@amit-sharma)
- Additions to invariant nodes in GCM (@bhatt-priyadutt)
- Fixing release pipeline (@kbattocchi)
Thanks to everyone for contributing issues and fixes for this patch.
v0.10: New user guide, causal prediction API, and two more refutations
- Introducing an updated user guide for navigating the world of causality. The user guide is a great resource to learn about the different causal tasks, which ones may be relevant for you, and how to implement them using DoWhy.
- Causal prediction is the latest task supported by DoWhy! Try out the prediction notebook by @jivatneet
- A new technique for validating causal graphs. Check out the notebook by @eeulig
- New refutation: Overrule for learning boolean rules to describe support of the data/overlap between treatment and control groups in the data. Check out the notebook by @moberst
- Added a new method to estimate intrinsic causal influences for a single sample.
- Refactor of estimator API that allows separate fit and estimate methods
- Several optimizations and speed-ups of GCM methods
- Python 3.11 support and a simpler dependency list
A big thanks to all the contributors. @AlxndrMlk @amit-sharma @andresmor-ms @bloebp @darthtrevino @eeulig @eltociear @emrekiciman @jivatneet @kbattocchi @Klesel @MFreidank @MichaelMarien @moberst @Padarn @petergtz @RoseDeSicilia26 @sgrimbly @vspinu @yoshiakifukushima @Zethson
v0.9.1: Python 3.10 support and dependency fixes
Minor update to v0.9.
- Python 3.10 support
- Streamlined dependency structure for the dowhy package (fewer required dependencies)
- Color option for plots (@eeulig)
Thanks @darthtrevino, @petergtz, @andresmor-ms for driving this release!
v0.9: New functional API (preview), faster refutations, and better independence tests for GCMs
-
Preview for the new functional API (see notebook). The new API (in experimental stage) allows for a modular use of the different functionalities and includes separate fit and estimate methods for causal estimators. Please leave your feedback here. The old DoWhy API based on CausalModel should work as before. (@andresmor-ms)
-
Faster, better sensitivity analyses.
- Many refutations now support joblib for parallel processing and show a progress bar (@astoeffelbauer, @yemaedahrav).
- Non-linear sensitivity analysis [ `Chernozhukov, Cinelli, Newey, Sharma & Syrgkanis (2021), example notebook ] (@anusha0409)
- E-value sensitivity analysis [ Ding & Vanderweele (2016), example notebook] (@jlgleason)
-
New API for unit change attribution (@kailashbuki)
-
New quality option
BEST
for auto-assignment of causal mechanisms, which uses the optional auto-ML library AutoGluon (@bloebp) -
Better conditional independence tests through the causal-learn package (@bloebp)
-
Algorithms for computing efficient backdoor sets [ example notebook ] (@esmucler)
-
Support for estimating controlled direct effect (@amit-sharma)
-
Support for multi-valued treatments for econml estimators (@EgorKraevTransferwise)
-
New PyData theme for documentation with new homepage, Getting started guide, revised User Guide and examples page (@petergtz)
-
A contributing guide and simplified instructions for new contributors (@MichaelMarien)
-
Streamlined dev environment using Poetry for managing dependencies and project builds (@darthtrevino)
-
Bug fixes
v0.8: GCM support and partial R2-based sensitivity analysis
A big thanks to @petergtz, @kailashbuki, and @bloebp for the GCM package and @anusha0409 for an implementation of partial R2 sensitivity analysis for linear models.
-
Graphical Causal Models: SCMs, root-cause analysis, attribution, what-if analysis, and more.
-
Sensitivity Analysis: Faster, more general partial-R2 based sensitivity analysis for linear models, based on Cinelli & Hazlett (2020).
-
New docs structure: Updated docs structure including user and contributors' guide. Check out the docs.
-
Bug fixes
Contributors: @amit-sharma, @anusha0409, @bloebp, @EgorKraevTransferwise, @elikling, @kailashbuki, @itsoum, @MichaelMarien, @petergtz, @ryanrussell
Graph refuters, support for dagitty, and creating your own estimators
-
Graph refuter with conditional independence tests to check whether data conforms to the assumed causal graph
-
Better docs for estimators by adding the method-specific parameters directly in its own init method
-
Support use of custom external estimators
-
Consistent calls for init_params for dowhy and econml estimators
-
Add support for Dagitty graphs
-
Bug fixes for GLM model, causal model with no confounders, and hotel case-study notebook
Thank you @EgorKraevTransferwise, @ae-foster, and @anusha0409 for your contributions!
v0.7: Causal discovery, ID identification, and faster backdoor identification
-
[Major] Faster backdoor identification with support for minimal adjustment, maximal adjustment
or exhaustive search. More test coverage for identification. -
[Major] Added new functionality of causal discovery [Experimental].
DoWhy now supports discovery algorithms from external libraries like CDT.
Example notebook -
[Major] Implemented ID algorithm for causal identification. [Experimental]
-
Added friendly text-based interpretation for DoWhy's effect estimate.
-
Added a new estimation method, distance matching that relies on a distance
metrics between inputs. -
Heuristics to infer default parameters for refuters.
-
Inferring default strata automatically for propensity score stratification.
-
Added support for custom propensity models in propensity-based estimation
methods. -
Bug fixes for confidence intervals for linear regression. Better version of
bootstrap method. -
Allow effect estimation without need to refit the model for econml estimators
Big thanks to @AndrewC19, @ha2trinh, @siddhanthaldar, and @vojavocni