Usage Examples

The examples directory includes both standalone python scripts and jupyter notebooks to help you get started. (NB: Currently there are more scripts than notebooks).

A selection of topics covered:

  • Generating transition matrices from data (using various estimators)

  • Manipulating transition matrices

  • Computing and visualizing credit curves corresponding to a set of transition matrices

  • Mapping rating states between different rating systems

Python Scripts

The scripts are located in examples/python. For testing purposes all examples can be run using the run_examples.py script located in the root directory. Some scripts have an example flag that selects alternative input data or estimators.

List of Example Scripts

Script Name

Flag

Input Data

Description

adjust_nr_state.py

1

Adjust the NR (not-rated) statistics.

adjust_nr_state.py

2

Adjust the NR (not-rated) statistics.

credit_curves.py

Compute and Visualize credit curves

characterize_datasets.py

Load the available datasets and compute various statistics

compare_estimators.py

synthetic_data4.csv

Compare the cohort and aalen-johansen estimators on a discrete timestep sample

data_cleaning_example.py

rating_data_raw.csv

Prepare transition data sets (data cleansing) using some provided methods

deterministic_paths.py

Create a transition dataset by replicating give trajectories through a graph

empirical_transition_matrix.py

1

synthetic_data7.csv

Credit Rating Migration example

empirical_transition_matrix.py

2

synthetic_data8.csv

Simple 2x2 Matrix for testing

empirical_transition_matrix.py

3

synthetic_data9.csv

Credit Rating Migration example with timestamps in raw date format

estimate_matrix.py

rating_data.csv

An end-to-end example of estimating a credit rating matrix from historical data

fix_multiperiod_matrix.py

sp_1981-2016.csv

Detect and solve various pathologies that might be affecting transition matrix data

generate_full_multiperiod_set.py

sp_NR_adjusted.json

Use infinitesimal generator methods to generate a full multi-period matrix set.

generate_synthetic_data.py

1

Generate synthetic data. The first set of examples produces duration type data.

generate_synthetic_data.py

2

The second set of examples produces cohort type data using markov chain simulation

generate_synthetic_data.py

3

The second set of examples produces cohort type data using markov chain simulation

generate_visuals.py

6

JLT.json

Plot Transition Probabilities

generate_visuals.py

7

JLT.json

Logarithmic Sankey Diagram of Credit Migration Rates

generate_visuals.py

5

scenario_data.csv

Plot Entity Transitions Plot

generate_visuals.py

1

synthetic_data1.csv

Step Plot of a single observation

generate_visuals.py

4

synthetic_data3.csv

Entity Transitions Plot

generate_visuals.py

2

synthetic_data4.csv

Step Plot of individual observations

generate_visuals.py

3

synthetic_data5.csv

Histogram Plots of transition frequencies

matrix_from_cohort_data.py

3

synthetic_data4.csv

S&P Style Credit Rating Migration Matrix

matrix_from_cohort_data.py

2

synthetic_data5.csv

IFRS 9 Style Migration Matrix (Large sample for testing)

matrix_from_cohort_data.py

1

synthetic_data6.csv

Simplest Absorbing Case for validation

matrix_from_duration_data.py

1

synthetic_data1.csv

Duration example with limited data (dataset contains only one entity)

matrix_from_duration_data.py

2

synthetic_data2.csv

Duration example n entities with ~10 observations each, [0,1] state, 50%/50% transition matrix

matrix_from_duration_data.py

3

synthetic_data3.csv

matrix_lendingclub.py

Estimate a matrix from LendingClub data. Input data are in a special cohort format as the published datasets have some limitations

matrix_operations.py

Perform various transition matrix operations illustrating the matrix algebra

matrix_set_lendingclub.py

Estimate a matrix from LendingClub data. Input data are in a special cohort format as the published datasets have some limitations

matrix_set_operations.py

Perform operations with multi-period transition matrix sequences

state_space_operations.py

Examples working with state spaces (mappings)

Jupyter Notebooks

  • Adjust_NotRated_State.ipynb

  • Matrix_Operations.ipynb

  • Monthly_from_Annual.ipynb

Open Risk Academy Scripts

Additional examples are available in the Open Risk Academy course Analysis of Credit Migration using Python TransitionMatrix. The scripts developed in the course are available here