Image may be NSFW.
Clik here to view.Roll rate is the percentage of customers who become increasingly delinquent on their account. Banks use roll rates to predict credit losses based on delinquency. Analysing roll rates is an effective way to review overall trends and estimate future performance.
Image may be NSFW.
Clik here to view.
Figure 1: Roll Rates
2 Markov Chain
2.1 Transition Model
Roll rate model is a loan level state transition where the probability of transiting to a new state is dependent on information in current state and does not depend on prior states. For the purpose of model development, the portfolio is classified into 4 distinct and mutually exclusive loan states based on Days Past Due (DPD)
Table 1: Delinquency States
Clean | A loan that is not delinquent. Includes 1-29 DPD |
30 DPD | A loan that is 30-59 DPD |
60 DPD | A loan that is 60-89 DPD |
90 DPD | A loan that is 90+ DPD. This is the terminating state |
The predictions are chained together to create the probability that an account is in one of the 4 states, N periods in future.
Table 2: Loan Sate Transition Matrix
To (T+1) | ||||||
Clean | 30 DPD | 60 DPD | 90 DPD | Total | ||
From (T) | Clean | P C_C | P C_30 | 0 | 0 | 1 |
30 DPD | P 30_C | P 30_30 | P 30_60 | 0 | 1 | |
60 DPD | P 60_C | P 60_30 | P 60_60 | P 60_90 | 1 | |
90 DPD | 0 | 0 | 0 | 1 | 1 |
Once the loan enters terminal state it is locked and cannot exit. Hence the probability of transition to any other state is zero. Probability of an account to go from clean to 60 DPD, clean to 90 DPD, and 30 DPD to 90 DPD is zero, since more than one-time period is required for these jumps.
Table 3: Grading of transitions
Improving | 30 DPD to Clean, 60 DPD to Clean, and 60 DPD to 30 DPD |
Deteriorating | Clean to 30 DPD, 30 DPD to 60 DPD, and 60 DPD to 90 DPD |
Base | Clean to Clean, 30 DPD to 30 DPD, and 60 DPD to 60 DPD |
2.2 Introduction to Markov Chain
Figure 2: Markov Chain
Image may be NSFW.
Clik here to view.
Markov chain is a model of some random process that happens over time. Markov chains are called that because they follow a rule called Markov property. The Markov property says that whatever happens next depends on how it is right now (it does not have a memory).
Table 4: Probability Table
From (T) | To (T+1) | Probability |
CLEAN | CLEAN | P1 |
CLEAN | 30 DPD | P2 |
30 DPD | CLEAN | P3 |
30 DPD | 30 DPD | P4 |
30 DPD | 60 DPD | P5 |
60 DPD | CLEAN | P6 |
60 DPD | 30 DPD | P7 |
60 DPD | 60 DPD | P8 |
60 DPD | 90 DPD | P9 |
2.3 Mathematics behind Markov Chain
Mechanically the transition model works in the following way, suppose we have n sates:
S = {S1, S2, …, Sn}
At the start of forecast an account is in the specific state. For example an account in state1 (Clean) has 100% probability of being in state 1 (Clean) and 0% probability of being in any other state:
U = {1, 0, 0, 0}
Transition matrix which governs the flow from row to column in each state is given by:
Image may be NSFW.
Clik here to view.
Each element of the matrix mij represents the probability of moving from state i to sate j. By definition sum of probabilities in each row i must be equal to 1:
∑mij (over j) = 1
If sij is a terminal state then transition rate from i to j is equal to 1. The dynamics governing the movements of units from period t to t+1 is:
U (t+1) = U (t) * M
Example:
Image may be NSFW.
Clik here to view.
Iteration | Clean | 30 DPD | 60 DPD | 90 DPD |
0 (start) | 1.0000 | 0.0000 | 0.0000 | 0.0000 |
1 | 0.9901 | 0.0099 | 0.0000 | 0.0000 |
2 | 0.9837 | 0.0141 | 0.0022 | 0.0000 |
3 | 0.9791 | 0.0161 | 0.0038 | 0.0010 |
4 | 0.9754 | 0.0171 | 0.0048 | 0.0027 |
5 | 0.9721 | 0.0177 | 0.0054 | 0.0049 |
3 Implementation in SAS
3.1 SAS Code Snippets
Step 1: Setting up the Transition Matrix: The historical transition data is analysed and the following transition matrix is calculated:
Table 5: Transition Matrix
To (T+1) | ||||||
Clean | 30 DPD | 60 DPD | 90 DPD | Row Total | ||
From (T) | Clean | 0.9901 | 0.0099 | 0.0000 | 0.0000 | 1 |
30 DPD | 0.3478 | 0.4348 | 0.2174 | 0.0000 | 1 | |
60 DPD | 0.0909 | 0.1136 | 0.3409 | 0.4545 | 1 | |
90 DPD | 0.0000 | 0.0000 | 0.0000 | 1.0000 | 1 |
Step 2: Defining Starting Population: The starting population is the number of accounts in various delinquency buckets at the start of the observation window:
%let clean = 25250; à there are 25250 accounts in clean bucket
%let dpd30 = 575; à there are 575 accounts in 30 DPD %let dpd60 = 220;à there are 220 accounts in 60 DPD %let dpd90 = 0; à there are 0 accounts in 90 DPD, since any account going into 90 DPD is moved out of the book |
Step 3: Matrix multiplication: The transition matrix is multiplied with the number of accounts in each bucket (for time period T) to get the number of accounts in each bucket (for time period T+1):
data calc_mat;
clean_to_clean = 0.9901 * &clean.; clean_to_dpd30 = 0.0099 * &clean.; dpd30_to_clean = 0.3478 * &dpd30.; dpd30_to_dpd30 = 0.4348 * &dpd30.; dpd30_to_dpd60 = 0.2174 * &dpd30.; dpd60_to_clean = 0.0909 * &dpd60.; dpd60_to_dpd30 = 0.1136 * &dpd60.; dpd60_to_dpd60 = 0.3409 * &dpd60.; dpd60_to_dpd90 = 0.4545 * &dpd60.;
call symput(‘clean’,sum(clean_to_clean,dpd30_to_clean,dpd60_to_clean)); call symput(‘dpd30’,sum(clean_to_dpd30,dpd30_to_dpd30,dpd60_to_dpd30)); call symput(‘dpd60’,sum(dpd30_to_dpd60,dpd60_to_dpd60)); call symput(‘dpd90’,sum(&dpd90.,dpd60_to_dpd90)); run; |
Full code can be found at: https://github.com/f2005636/Markov-Chain/blob/master/Markov_Chain_12.sas
3.2 12-Months Forecasting
Figure 3: 12-Months Forecasting
Image may be NSFW.
Clik here to view.
3.3 Limitations of Markov Chain
- While roll rate transition methodology is not perfect, the tool is well suited for top down overview approach of estimating future performance and assessing the overall health of the portfolio.
- In general, the use of historical roll rate transitions does not account for external risk factors and macro-economic conditions, so roll rate transition matrices may be better suited for short term forecasting.
The post Computing Roll Rates using Markov Chain appeared first on Analytics India Magazine.