Getting started

github Version License: MIT

PySensMCDA

PySensMCDA is a comprehensive Python package tailored specifically for Multi-Criteria Decision Analysis (MCDA) sensitivity analysis. MCDA is a powerful tool used in decision-making processes to evaluate alternatives based on multiple conflicting criteria. PySensMCDA empowers users to delve deeper into the robustness and reliability of their decision models by exploring the sensitivity of results to variations in input parameters.

In essence, this package offers tools for:

  • Decision matrix sensitivity analysis

  • Weights sensitivity analysis

  • Ranking sensitivity analysis

  • Perturbation generation

  • Weights generation

  • Visualizations of sensitivity analysis

Installation

The package can be download using pip:

pip install pysensmcda

Testing

The modules performance can be verified with pytest library

pip install pytest
pytest tests

Modules and functionalities


  • Alternative:

Name

Reference

Discrete modification

-

Percentage modification

[14]

Range modification

-

Alternative removal

[8]


  • Criteria:

Name

Reference

Random distribution - weights generation

-

     Chisquare distribution

-

     Laplace distribution

-

     Normal distribution

-

     Random distribution

-

     Triangular distribution

-

     Uniform distribution

-

Percentage modification

[15]

Range modification

-

Weights scenarios

-

Criteria identification

[6]

Criteria removal

[13]


  • Probabilistic:

Name

Reference

Monte carlo weights generation

[10]

Perturbed matrix

[12]

Perturbed weights

[11]


  • Ranking:

Name

Reference

Ranking alteration

[7]

Demotion

-

Promotion

[9]

Fuzzy ranking

-


  • Compromise:

Name

Reference

Borda

[3]

Improved Borda

[4]

Dominance directed graph

[2]

Half-quadratic compromise

[5]

ICRA - Iterative Compromise Ranking Analysis

[1]

Rank position method

[3]


  • Graphs:

Name

Heatmap

Promotion-demotion ranking graph

Preference distribution

Rankings distribution

Values distribution

Weights barplot

Usage example