The transitionMatrix Library ============================= .. image:: ../../examples/overview.png transitionMatrix is a pure Python powered library for the statistical analysis and visualization of state transition phenomena. It can be used to analyze any dataset that captures *timestamped transitions in a discrete state space.* * Author: `Open Risk `_ * License: Apache 2.0 * Development Website: `Github `_ * Code Documentation: `Read The Docs `_ * Mathematical Documentation: `Open Risk Manual `_ * Chat: `Open Risk Commons `_ * Training: `Open Risk Academy `_ * Showcase: `Blog Posts `_ Functionality ------------- You can use transitionMatrix to: - **Estimate** transition matrices from historical event data using a variety of estimators - **Characterise** transition matrices (identify their key properties) - **Visualize** event data and transition matrices - **Manipulate** transition matrices (derive generators, perform comparisons, stress transition rates etc.) - Access standardized Datasets for testing - Extract and work with credit default curves (absorbing states) - Map credit ratings using mapping tables - More (still to be documented :-) Architecture ------------ * transitionMatrix provides intuitive objects for handling transition matrices individually and as sets (based on numpy arrays) * supports file input/output in json and csv formats * it has a powerful API for handling event data (based on pandas and numpy) * supports visualization using matplotlib Installation ======================= You can install and use the transitionMatrix package in any system that supports the `Scipy ecosystem of tools `_ Dependencies ----------------- - TransitionMatrix requires Python 3 (currently 3.7) - It depends on numerical and data processing Python libraries (Numpy, Scipy, Pandas). - The Visualization API depends on Matplotlib. - The precise dependencies are listed in the requirements.txt file. - TransitionMatrix may work with earlier versions of python / these packages but it is not tested. From PyPI ------------- .. code:: bash pip3 install transitionMatrix From sources ------------- Download the sources in your preferred directory: .. code:: bash git clone https://github.com/open-risk/transitionMatrix Using virtualenv ---------------- It is advisable to install the package in a virtualenv so as not to interfere with your system's python distribution .. code:: bash virtualenv -p python3 tm_test source tm_test/bin/activate If you do not have pandas already installed make sure you install it first (this will also install numpy and other required dependencies). .. code:: bash pip3 install -r requirements.txt Finally issue the install command and you are ready to go! .. code:: bash python3 setup.py install File structure ----------------- The distribution has the following structure: :: | transitionMatrix/ Directory with the library source code | -- model.py File with main data structures | -- estimators/ Directory with the estimator methods | -- statespaces/ Directory with state space objects and methods | -- creditratings/ Directory with predefined credit rating structures | -- generators/ Directory with data generator methods | -- utils/ Directory with helper classes and methods | -- examples/ Directory with usage examples | ---- python/ Examples as standalone python scripts | ---- notebooks/ Examples as jupyter notebooks | -- datasets/ Directory with a variety of datasets useful for getting started | -- tests/ Directory with the testing suite Other similar open source software ----------------------------------- - etm, an R package for estimating empirical transition matrices - msSurv, an R Package for Nonparametric Estimation of Multistate Models - msm, Multi-state modelling with R - mstate, competing risks and multistate models in R - lifelines, python survival package