本文档分为四个部分来求得转移概率矩阵,有几个点需要注意
数据为美国p2p网站lending club所发放贷款的历史还款情况的一个sample,其中每一行包含:
* 一条贷款在某一个月的还款情况(包括应还金额,实际还款金额,还款状态等),
* 最后一列LoanStatus显示了还款状态(Current表示正常还款,Late120表示拖欠超过120天,default表示违约等等)。
根据sample中的历史数据计算一个滚动率矩阵(transition matrix),即每个贷款经过一个月从某一个还款状态滚动到下一个还款状态的历史概率(即滚动率)。
我们估计贷款滚动率需要的数据是 loan id 和 loan status。
可以看出这里总共100个贷款,每个贷款6种状态。
里面 Fully Paid 状态只有73个,它的意思是贷款已经被还完了。而总共有74 个 Fully Paid, 这怎么可能呢?难道这是数据误差?(好像是fully paid 的贷款并没有取消记录)希望能被提供更多数据相关信息!
如何估计滚动率呢?
每个贷款的状态分为6种,我们可以用频率来估计贷款状态之间的转移概率。于是计算状态之间的转移频数是关键!
上面的函数计算一个数组 x 中从状态 i 转移到状态 j 的频率, 那么对于给定的贷款数据集合对应的函数如下
下面就可以得到转移频率矩阵和滚动率矩阵了。
按照频率估计的概率的方法,利用贷款样本的状态转移频率,最终的滚动率表格及其完整获取代码如下:
结果的第一行都是 NaN是因为贷款状态 ChargedOff 表示贷款已经终结,所以它不转转移到任何状态。