Reputation: 1
I have a DEA model that is outputting efficiency scores for a set of DMUs that is taking a wide range of inputs. Some of the efficiency rankings seem a little counter intuitive, so I wanted visualize the impact the different indicators are having on the efficiency scores so I can troubleshoot it. Traditional methods such as shapley don't seem to work, so I was wondering if there is any test or method that would be more suited for the application?
I have tried using shapley in the following manner (and a few permutations thereof):
# Input dict
X = df[input_vars].T.to_dict('list')
# Output dict
y = df[ouput_vars].T.to_dict('list')
DMU = list(df.index.astype(int))
model = DEA.CRS(DMU, X, y, orientation="input", dual=False)
inputs = df[input_vars]
outputs = df[output_vars]
efficiency_scores = df['efficiency']
explainer = shap.Explainer(model, efficiency_scores)
shap_values = explainer.shap_values(input_vars)
# Visualize the Shapley values
shap.summary_plot(shap_values, efficiency_scores)
but I get this error: TypeError: The passed model is not callable and cannot be analyzed directly with the given masker!
While I'm not sure if I have implemented it correctly, I also have been told that shapley cannot be used to explain DEA models. I was just wondering if there is another method I can use?
Upvotes: 0
Views: 47