EconML icon indicating copy to clipboard operation
EconML copied to clipboard

Can Dynamic Double Machine Learning use SHAP?

Open AyinMostima opened this issue 2 years ago • 0 comments

When there is only one panel, it works fine, but multiple panels will report “list index out of range”.for exmaple

Define DGP parameters

np.random.seed(123) n_panels = 5000 # number of panels n_periods = 3 # number of time periods in each panel n_treatments = 3 # number of treatments in each period n_x = 100 # number of features + controls s_x = 10 # number of controls (endogeneous variables) s_t = 10 # treatment support size

Generate data

Define additional DGP parameters

het_strength = .5 het_inds = np.arange(n_x - n_treatments, n_x)

Generate data

dgp = DynamicPanelDGP(n_periods, n_treatments, n_x).create_instance( s_x, hetero_strength=het_strength, hetero_inds=het_inds, random_seed=12) Y, T, X, W, groups = dgp.observational_data(n_panels, s_t=s_t, random_seed=1) ate_effect = dgp.true_effect het_effect = dgp.true_hetero_effect[:, het_inds + 1] #%%

est = DynamicDML( model_y=RandomForestRegressor(), model_t=RandomForestRegressor(),cv=3) est.fit(Y, T, X=X, W=W, groups=groups, inference="auto") #%% import shap

explain the model's predictions using SHAP values

shap_values = est.shap_values(X, feature_names=['A', 'B', 'C'], background_samples=100) shap.summary_plot(shap_values['Y0']['T0'])

AyinMostima avatar Apr 24 '23 08:04 AyinMostima