Comments (3)
thanks @tszumowski for starting this discussion. Yes, you are right---DoWhy and Econml overlap only in the estimate section. DoWhy implements the full process of causal reasoning including model, identify, estimate and refute. In comparison, Econml implements only the estimate step.
In designing DoWhy, we kept a focus on the "ideal" process of doing a causal analysis, which includes identification and more importantly, refutation so that modeling assumptions can be tested. The estimators in DoWhy currently are the standard estimators for causal inference. As you rightly point out, EconML has much more advanced estimators for estimating the conditional average treatment effect (CATE). This is why we are implementing an interface in DoWhy so that you can call Econml methods directly from dowhy's estimate function. Here's an experimental Jupyter notebook to see it in action.
For your second question, there are actually two considerations when designing a causal analysis. One is about the modeling framework, and the other is about the target estimand.
Potential outcomes and structural equations are ways to construct a causal model. Another way is to use structural causal model which is based on a graphical model. The differences between these frameworks are often a matter of detail (and of big academic debate). But in practice, both econml and dowhy are compatible with these different ways of expressing a causal model. In DoWhy specifically, we use the structural causal model framework in the identify step, and rely heavily on methods derived from the potential outcomes framework in the estimate step.
The other consideration is the target estimand: do you want an effect for the full population (average treatment effect, ATE) or for a specific population, e.g., conditioned on "Gender=Female", (conditional average treatment effect, CATE). EconML methods are designed to estimate CATE, which is a subject of active research. Most of DoWhy's methods focus on estimating the ATE so far, although we are extending some of the methods to also estimate CATE.
Hope this helps.
from dowhy.
Wow. @amit-sharma thank you for the fantastic summary. I'm only recently trying to ramp up on causal analysis, coming from a stats/ML/bayesian background. I am noticing what you mean by "big academic debate" as I was getting a bit lost in the various different methods. This clarified a lot for me.
Regarding the EconML integration, I ran into an issue when trying to run that notebook. I'll create a separate issue for that. Otherwise, this ticket can be closed. Thank you.
from dowhy.
we use the structural causal model framework in the identify step
What does it mean by this? Is the identify step used as input for the estimate step? How are we integrating the prior into the estimation?
from dowhy.
Related Issues (20)
- Linear dataset functionality and parameters HOT 1
- Simple constraints for the SCM HOT 1
- How can I get more log messages from dowhy? HOT 4
- Identify effect not showing backdoor variable HOT 5
- numpy has no attribute 'long' HOT 1
- No common causes/confounders present. HOT 3
- Сausal effect for non-linear relationship HOT 1
- Compatability with networkx is broken HOT 8
- Continuous Treatment Variable HOT 1
- CausalEstimator reporting a 90% instead of 95% confidence interval for bootstrapping? HOT 5
- Hanging when refuting right after calculating confidence interval HOT 2
- Incomplete `method_name` argument documentation in `estimate_effect` HOT 4
- Add accessor to CausalModel._estimator_cache HOT 4
- Evaluation Metrics for Causal Graphs HOT 4
- Inconsistent encoding with pandas get_dummies causes prediction and effect estimation errors HOT 6
- Falsification of given DAG: not working on simulated data? HOT 4
- Causal Graph not provided. DoWhy will construct a graph based on data inputs. HOT 1
- how to use the function of estimate_effect of CausalModel class? HOT 4
- gcm.arrow_strength providing different ranking HOT 6
- conda release 0.11.1 is missing HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dowhy.