# Software tools for Imprecise Probabilities

This page provides information about software related to imprecise probabilities. If you have a developed such software, or are aware of software that would be useful to our community, please contact our Executive Editor.

### Credal networks and other graphical models

aGrUM is a C++ library for graphical models, and pyAgrum is a Python wrapper with GUI for aGRuM. They are designed for easily building applications using graphical models, including Bayesian networks and credal networks. They provide the basic building blocks to design, learn and elicit graphical networks, as well as to use these graphical networks for inference.

**Ducamp, G., Gonzales, C., Wuillemin, P.-H.** "aGrUM/pyAgrum : a toolbox to build models and algorithms for Probabilistic Graphical Models in Python". In: Jaeger, M., Nielsen, T.D. (Eds), Proceedings of the 10th International Conference on Probabilistic Graphical Models (PGM 2020), Proceedings of Machine Learning Research 138, PMLR, Skørping, Denmark.

**Language:** C++/Python

**Open source:**
yes

**Free to use:**
yes

Credici (Credal Inference for Causal Inference) is an open-source Java library for causal analysis. Inference is done using well-founded methods for inference on credal networks. The main features of Credici are: easy definition of Structural Causal Models, causal inference (causal effects and counterfactuals) based on a reduction to credal network inference.

**Cabañas, R., Antonucci, A., Huber, D., Zaffalon, M.** "CREDICI: a Java library for causal inference by credal networks". In: Jaeger, M., Nielsen, T.D. (Eds), Proceedings of the 10th International Conference on Probabilistic Graphical Models (PGM 2020), Proceedings of Machine Learning Research 138, PMLR, Skørping, Denmark.

**Language:** Java

**Open source:**
yes

**Free to use:**
yes

Crema (CREdal Models Algorithms) is a Java library for inference in credal networks. The main features of Crema are: providing a simple API for the definition of credal networks, embedding exact and approximate algorithms for credal inference, and loading and exporting credal networks in a UAI-based format.

**Huber, D., Cabañas, R., Antonucci, A., Zaffalon, M.** (2020). "CREMA: a Java library for credal network inference". In Jaeger, M., Nielsen, T.D. (Eds), Proceedings of the 10th International Conference on Probabilistic Graphical Models (PGM 2020), Proceedings of Machine Learning Research 138, PMLR, Skørping, Denmark.

**Language:** Java

**Open source:**
yes

**Free to use:**
yes

ELVIRA is a tool that allows to encode bayesian networks or influence diagrams with discrete variables. It comes with a GUI and has methods both for inference and learning. ELVIRA accepts interval probabilities in conditional tables.

**Language:** Java

**Open source:**
yes

**Free to use:**
yes

### Decision making and classification

The classifip project is a library of imprecise probabilistic classifiers. The goal is to offer a simple-to-use framework to implement and use imprecise probabilistic classifiers. The library accepts arff files as data sets format, so that WEKA files can be used directly.

**Language:** Python

**Open source:**
yes

**Free to use:**
yes

DecideIT encompasses several multi-criteria decision and risk analysis methods using imprecise models. The software is free when used for academic purposes.

**M. Danielson L. Ekenberg J. Johansson and A. Larsson** "The DecideIT Decision Tool". ISIPTA 2003: 204-217.

**Language:** N.A.

**Open source:**
no

**Free to use:**
for academic use

This software encodes the extension of the Naive Bayes Classifier into credal networks: that is bayesian networks where conditional probabilities can be imprecisely specified. Thanks to the use of imprecise probabilities and of imprecise probabilistic decision criterium (i.e. interval dominance) the Naive credal classifier returns sets of most plausible classes rather than single classes on instances when not enough information is available to return a single class.

**G.Corani M. Zaffalon** "Learning Reliable Classifiers From Small or Incomplete Data Sets: The Naive Credal Classifier 2" Journal of Machine Learning Research. 9. 581--621. 2008.

**Language:** Java

**Open source:**
yes

**Free to use:**
yes

**No longer maintained**

Weka-IP is an extension of Weka for credal classification written in Java and released under GPU Licence. In the current version it contains four credal classifiers and a set of metrics specifically designed for the evaluation of credal classification. The full integration of these models in the GUI of Weka makes their use very simple.

**Language:** Java

**Open source:**
yes

**Free to use:**
yes

**No longer maintained**

### Statistics

Bayesian methods are ubiquitous in many research areas. Nevertheless, the analysis of empirical results is typically performed by frequentist tests. This implies dealing with null hypothesis significance tests and p-values, even though the shortcomings of such methods are well known. The IDP Statistical Package aims to change this perspective by providing Bayesian nonparametric versions of the most used frequentist tests. IDP is based on a Prior Near-Ignorance Dirichlet Process. This is the class of all Dirichlet Processes obtained by fixing the prior strength of the Dirichlet Process and letting the normalized base measure vary in the set of all probability measures.

**Language:** R, Matlab

**Open source:**
yes

**Free to use:**
yes

**No longer maintained**

ImprProbEst is a statistical learning method used to identify a model. It is based on a minimum distance operator and computes an upper coherent prevision given a set of independently and identically distributed data.

**R. Hable** "Minimum distance estimation in imprecise probability models" Journal of Statistical Planning and Inference 40 (2010). pp. 461-479.

**Language:** R

**Open source:**
yes

**Free to use:**
yes

**No longer maintained**

This package implements the methodology of Likelihood-based Imprecise Regression (LIR) for the case of linear regression with interval data.

**M. Cattaneo and A. Wiencierz** "Likelihood-based Imprecise Regression." International journal of Approximate Reasoning 53 (2012). pp. 1137-1154.

**Language:** R

**Open source:**
yes

**Free to use:**
yes

**No longer maintained**

### Belief functions and other set functions

DSI (for Dempster Shafer with Intervals) is a toolbox containing many methods related to the handling of belief functions in the setting of the general Dempster-Shafer theory. This includes dependence modeling through copulas: sensitivity analysis: aggregation functions (Dempster rule and the like) : MC sampling and estimation of classical stastitical values (e.g. mean).

**P. Limbourg R. Savic J. Petersen and H.-D. Kochs** "Fault Tree Analysis in an Early Design Stage using the Dempster-Shafer Theory of Evidence European Safety and Reliability Conference" ESREL 2007. pp. 713-722.

**Language:** Matlab

**Open source:**
yes

**Free to use:**
yes

The package ibelief aims to provide some basic functions to implement the theory of belief functions, and includes many features such as:

- Fast Mobius Transformation to convert any of the belief measures (such as basic belief assignment, credibility, plausibility and so on) to another type;
- Some commonly used combination rules including DS rule, Smets’ rule, Yager’s rule, DP rule, PCR6 and so on;
- Some rules for making decisions;
- The discounting rules in the theory of belief functions;
- Different ways to generate random masses.

**Language:** R

**Open source:**
yes

**Free to use:**
yes

Kappalab is an R package that includes many routines to handle set functions such as games or capacities. It can be used to compute non-additive integrals (Sugeno or Choquet) Shapley value or Mobius transform. It is mainly oriented towards Multi-criteria decision making and game theoretic calculus but some routines can certainly be used to compute lower/upper expectations or to manipulate belief functions.

**Denneberg** "Non-additive measure and integral: basic concepts and their role for applications" M. Grabisch T. Murofushi and M. Sugeno Eds. Fuzzy Measures and Integrals: Theory and Applications. Physica-Verlag. pages 42-69.

**Language:** R

**Open source:**
yes

**Free to use:**
yes

RefereeToolbox is a java package implementing combination operators for fusing evidences. RefereeToolbox is based on an interpretation of the fusion rules by means of Referee Functions. This approach implies a dissociation between the definition of the combination and its actual implementation (a common feature to all referee-based combinations).

**F. Dambreville**. "Modeling evidence fusion rules by means of referee functions". Information Fusion 2009.

**Language:** Java

**Open source:**
yes

**Free to use:**
yes

**No longer maintained**

Thierry Denoeux makes available several tools derived from some of his work. Most works concern learning from data (in unsupervised and supervised settings) with evidential methods. Most codes are in Matlab and some more recent librairies are in R

**Language:** Matlab/R

**Open source:**
yes

**Free to use:**
yes

Arnoud Martin makes available two Matlab toolboxes for belief functions.

**Language:** Matlab

**Open source:**
yes

**Free to use:**
yes

**No longer maintained**

### Software for other or multiple purposes

EvCombR is an R package implementing different uncertainty representations. It includes combination rules of belief functions and imprecise probabilities.

**Language:** R

**Open source:**
yes

**Free to use:**
yes

Methods for addressing uncertainty in risk assessments using hybrid representations of uncertainty (probability distributions and fuzzy numbers and intervals and probability distributions with imprecise parameters) based on the developments derived from the close collaboration between BRGM (french geological survey) and IRIT (Toulouse Computer Science Laboratory). The uncertainty propagation procedure combines random sampling using Monte Carlo method with fuzzy interval analysis. The sensitivity analysis is based on the pinching method of Ferson and Tucker (2006).

**C. Baudrit and D. Dubois and D. Guyonnet** Joint propagation and exploitation of probabilistic and possibilistic information in risk assessment. IEEE transactions on fuzzy systems. 14. 593-608. 2006. **S. Ferson and W.T. Tucker.** Sensitivity analysis using probability bounding. Reliability Engineering and System Safety. 91. 1435-1442. 2006.

**Language:** R

**Open source:**
yes

**Free to use:**
yes

This Python library provides different tools to manipulate lower previsions and special cases of lower previsions. This includes: computing lower and upper expectations of conditional lower previsions: estimating extreme points : transformations between representations (including Mobius transform). It also includes computations on decision trees.

**Language:** Python/C++

**Open source:**
yes

**Free to use:**
yes

**No longer maintained**

Uncertainty quantification and propagation in the framework of Dempster-Shafer Theory and imprecise probabilities. This toolbox offers easy-to-use methods for using imprecise probabities for applied uncertainty modelling and simulation. The package comprises the basic functionality needed, with usability similar to standard probabilistic analysis:

- Fit imprecise probability distributions from data;
- Define imprecise probabilities based on distribution functions;
- Combine with various aggregation rules (e. g. Dempster's rule);
- Plotting tools;
- Propagate through arbitrary functions / simulations via Monte Carlo;
- Perform sensitivity analyses with imprecise distributions
- Example models for a quick start.

**Language:** R

**Open source:**
yes

**Free to use:**
yes

This package allows one to model and work with finitary sets of desirable gambles with arbitrary border structure. (It uses the CONEstrip algorithm under the hood for deriving inferences.) Specific methods are also available for specifying and inferring lower and upper previsions, so it can be used for working with previsions as well. Furthermore, conversion to and from and working with credal sets is possible to some degree.

**Language:** Python

**Open source:**
yes

**Free to use:**
yes

RAMAS allows to propagate uncertainty through functions that can be expressed as combinations of arithmetic operations or monotonic functions (e.g. log. exp). It allows to model uncertainty and incomplete probabilistic knowledge either with p-boxes or fuzzy sets or classical probabilities. Uncertainty propagation is achieved either by corresponding arithmetic (fuzzy or probabilistic) or by Monte-Carlo sampling.

**S. Ferson** "2002 RAMAS Risk Calc 4.0 Software: Risk Assessment with Uncertain Numbers." Lewis Publishers. Boca Raton. Florida.

**Language:** N.A.

**Open source:**
no

**Free to use:**
no