Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preprocess compositional data #845

Open
Leo-T-Zang opened this issue Jan 31, 2024 · 3 comments
Open

Preprocess compositional data #845

Leo-T-Zang opened this issue Jan 31, 2024 · 3 comments

Comments

@Leo-T-Zang
Copy link

Hi EconML Team,

I am working on causal inference over compositional data. I wonder if we need to furhter preprocess our data first (e.g., Centered log ratio transform) before we use any causal inference model (e.g. DML).

Thank you.

@kbattocchi
Copy link
Collaborator

The answer to this will depend somewhat on what specific models you use. If you use something like CausalForestDML (which will fit a non-parameterized final model) and you also use non-parametric models for your first stage model, then transforming X and W should generally not be necessary. However, the treatment effect model that we fit with any of our DML variants is always a linear effect of T on Y, so transforming Y and/or T will change the interpretation of the effect accordingly. (For example, in a pricing context you might take the log of Y and T, so that the computed effect is the price elasticity of demand, indicating that a one-percent change in price will have a corresponding percentage change in output, rather than that each price increase of a dollar will translate to a corresponding fixed decrease in demand).

Some of our other models, like LinearDML, have more structure (e.g. assuming that the effect \theta(X) is linear in X), in which case you would want to consider whether a transforming your data beforehand might make more sense.

Note that for convenience, most of our estimators allow you to pass a featurizer argument, which transforms X, and a treatment_featurizer argument, which transforms T, so if it's more convenient you can pass those transforms rather than explicitly transforming the data yourself.

@Leo-T-Zang
Copy link
Author

Thank you @kbattocchi !

I am using your CausalAnalysis API with heterogeneity model as LinearDML. I don't think CausalAnalysis supports featurizer at this moment right?

@kbattocchi
Copy link
Collaborator

That's correct - CausalAnalysis is designed to have a simpler interface so it doesn't expose all of the options that using the DML subclasses directly would provide.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants