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.
Dear Authors
Thanks for your great work.
I am trying to use the DeepIVEstimator to estimate treatment effect for a dataset. I am getting different estimated treatment effect each time I run the estimator. Do you have any suggestion on how to interpret the outputs (i.e., the estimated treatment effect). Shall we average the result across multiple runs?
Sorry for the late response. Unfortunately it's difficult to know how to advise you without more information. Here are a few thoughts:
In general, there is some randomness involved, so you should expect results to vary somewhat. You can see this, for example, if you repeatedly fit the model in our Deep IV notebook against the same data and plot the results. There will generally be a pretty good fit, but there's some variation. If this is the case then averaging over multiple runs seems reasonable.
However, if your results are very different from run to run, then this probably indicates that something's wrong. Some possibilities are
You don't have enough data, so there is no hope of fitting a good model.
You haven't chosen the best architecture for your neural networks.
Your Z does not meet the requirements of an instrument for this estimator. Deep IV requires even stronger conditions on the instrument than traditional IV estimators do (but the conditions are somewhat hard to state in simple terms). If this isn't the case, then even in the limit as the number of samples goes to infinity, and even if you pick an ideal neural network architecture, then there will still be more than once possible effect function that's consistent with the data and so you could see very different results from run to run.
Without knowing more specific details about your problem, it's hard to know which case might apply to you.
Dear Authors Thanks for your great work. I am trying to use the DeepIVEstimator to estimate treatment effect for a dataset. I am getting different estimated treatment effect each time I run the estimator. Do you have any suggestion on how to interpret the outputs (i.e., the estimated treatment effect). Shall we average the result across multiple runs?
from econml.deepiv import DeepIVEstimator treatment_model = ... response_model = ... keras_fit_options = ... deepIvEst = DeepIVEstimator(...)
deepIvEst.fit(Y=our_Y,T=our_T,X=our_X,Z=our_Z) treatment_effects = deepIvEst.effect(X = our_X_test, T0 = T0, T1 = T1)
Thank you!