EconML icon indicating copy to clipboard operation
EconML copied to clipboard

Preprocess compositional data

Open Leo-T-Zang opened this issue 1 year ago • 3 comments

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.

Leo-T-Zang avatar Jan 31 '24 19:01 Leo-T-Zang

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.

kbattocchi avatar Feb 05 '24 22:02 kbattocchi

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?

Leo-T-Zang avatar Feb 05 '24 22:02 Leo-T-Zang

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.

kbattocchi avatar Feb 06 '24 03:02 kbattocchi