py-why / EconML

ALICE (Automated Learning and Intelligence for Causation and Economics) is a Microsoft Research project aimed at applying Artificial Intelligence concepts to economic decision making. One of its goals is to build a toolkit that combines state-of-the-art machine learning techniques with econometrics in order to bring automation to complex causal inference problems. To date, the ALICE Python SDK (econml) implements orthogonal machine learning algorithms such as the double machine learning work of Chernozhukov et al. This toolkit is designed to measure the causal effect of some treatment variable(s) t on an outcome variable y, controlling for a set of features x.
https://www.microsoft.com/en-us/research/project/alice/
Other
3.64k stars 689 forks source link

Is a feature engineered from treatment T another treatment to consider for CATE? #857

Open kalel1976x opened 3 months ago

kalel1976x commented 3 months ago

Hi EconML Team,

First of all a big thanks for this great library ! So I'm trying to determine the price elasticity of each customer of a base in order to determine the level of discount to apply to boost the quantities sold. So in the end, what I really need is counterfactual predictions for different discount levels for each individual. Here my treatment T is the selling price and the target variable is the quantities sold Y. Given that we can't directly obtain counterfactual predictions with econML, I have an xgboost model which predicts the quantities sold as a function of the price and other customer characteristics and the CausalForestDML which gives me the individual CATE. The CATE then allows me to determine the counterfactual predictions.

My problem is that in the xgboost model I use a feature derived from the treatment T, the difference between the internal sales price T and the average price of the competition, which is a very important feature in the model. So when the price T moves this engenniered feature also moves. Should I consider this feature as an additional treatment and therefore calculate the CATE for 2 treatments, the selling price T1 and the difference between the internal price and the competition price T2? Thank you in advance!