Saurabh Levin
Saurabh Levin

Reputation: 1

Visualizing indicator impact on Data Envelopment Analysis scores

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

Answers (0)

Related Questions