Computing Roll Rates using Markov Chain
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. 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 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: 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: 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 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.
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. Figure 1: Roll Rates 2 Markov Chain 2.1 Transition Model Roll rate model is a […]
Roll rate is the percentage of customers who become increasingly delinquent on their account. Banks use roll rates to predict credit losses based on
[]
["Go", "programming_languages:R", "AI", "programming_languages:Go", "Git", "GitHub", "R"]
["AI", "R", "Go", "Git", "GitHub", "programming_languages:R", "programming_languages:Go"]
Rohit Garg has close to 7 years of work experience in field of data analytics and machine learning. He has worked extensively in the areas of predictive modeling, time series analysis and segmentation techniques. Rohit holds BE from BITS Pilani and PGDM from IIM Raipur.