トラブル確認ロールレートモデル

私はGoogle検索を介してロールレート分析でこの論文を見つけました。私はリンクを掲示しますが、すべてのページには下部に「秘密」と記されています(簡単に見つけられるのでユーモラスな)。ナット・シェルでは、ロール・レートは、一定の期間にわたる勘定/ローンに従って、会社のポートフォリオがどのように実行されているかを決定するために使用されます。ロールレートを知るには(少なくともこのホワイトペーパーで説明されている方法で)、次のようにします。

  1. ある時点におけるすべてのアカウントの延滞状況を特定する
  2. 指定期間(本稿では6ヶ月)後、再びポートフォリオ全体のステータスを判断する
  3. 最終的に、1つの延滞ステータスから別のステータスへの変更の割合を特定します。

たとえば、ある特定の時点で、現在のすべてのローンのロール率を決定し、そのうちの100を持っているとしましょう。 6ヵ月後、そのうちの80件は現在のものであり、15件は延滞しており、5件は払い戻されています。これは現在の現在のロール率80%、現在のロール率30%、現在のロールオフ率5%に変換されます(このペーパーでは、この延滞状況に前払いを使用しています)。 ポートフォリオの詳細は、単にその結果を検証しようとしているため、重要ではないことに注意してください。以下は、6ヶ月の期間にわたりこのマトリックスを解釈するのに役立ついくつかの重要な声明と一緒に提供される実際のロールレートです。

'''''''''|''Current''|''''30''''|''''60+'''|'''Default'''|'''Prepay
'Current |   90.4%   |   2.9%   |   2.3%   |     0.1%    |    4.3%  
'  30    |   20.9%   |  16.4%   |  55.6%   |     6.4%    |    0.8% 
'  60+   |    7.0%   |  10.3%   |  68.5%   |    13.9%    |    0.3% 

- Key Observations:
    − 90.4% of current loans were still current 6 months later; 4.3% paid in full during the period.
    − Only 20.9% of 30 day loans were current 6 months later.
    − Only 7.00% of 60+ day loans were current 6 months later.

1に合わない2行目(1.001)を除いて、すべてがこの時点で問題ないと思われます。少し神秘的な最初の声明は次のとおりです。

- As of six months later, the portfolio is approximately 3.1% 60+ days delinquent.

私たちにはこれ以上の情報は与えられていません(つまり、最初から各状態にどれくらいのローン/口座があるか、6ヶ月後にいくつの口座があるかは分かりません)。したがって、結果を検証し、クレームを理解するために、最初に各ステータスにどれくらいのローンが入っていたかを判断するために、少し代数を行いました。これにより、各延滞状況のパーセンテージがわかります。また、このポートフォリオの今後の分析を進めることができます。以下は私の計算と一緒に私のセットアップです:

x = # of Current accounts at time 0
y = # of 30 day delinquent accounts at time 0
z = # of 60+ day accounts at time 0

今から6ヶ月のそれぞれの数を見つける必要があります:

x_1 = # of Current accounts 6 months later
y_1 = # of 30 day delinquent accounts 6 months later
z_1 = # of 60+ day accounts 6 months later

注:ポートフォリオを離れたままの「デフォルト」または「前払い」のローンには関心がありません。

x_1 = x(0.904) + y(.209) + z(.07)
y_1 = x(0.029) + y(.164) + z(.103)
z_1 = x(0.023) + y(.556) + z(.685)

したがって、 0.031 = z_1 /(x_1 + y_1 + z_1)を解決する必要があります。以下は、私の代数の多くのステップを残して(簡単に確認)です。

x(0.029636) + y(0.028799) + z(0.026598) = x(0.023) + y(.556) + z(.685)
x(0.006636) - y(0.527201) - z(0.658402) = 0

数字は任意であるので、x = 100,000と設定します

663.6 = y(0.527201) + z(0.658402)

これは、yとzの制限がそれぞれ1258.73(z = 0と仮定する)と1007.89(y = 0を仮定)であることを意味します。また、数字は任意であるため、y = 800とし、z = 367とします。また、アカウント/ローンの「一部」を持っているので、私は切り上げています。

x = 100000, y = 800, and z = 367 gives
2997/(90593 + 3070 + 2997) = 0.03100559... approx = 3.1%

私たちは完全なセットアップを完了したので、問題がある主張に進むことができます。彼らです:

- Assuming the 6 month experience repeats itself:
    − In two years, 13.9% of the portfolio will be 60+ day delinquent.
    − In three years, 17.9% of the portfolio will be 60+ day delinquent.
    − In five years, 23.8% of the portfolio will be 60+ day delinquent.
    − After a lifetime, 40.3% of the portfolio will be 60+ day delinquent.

このような実験を行うために R に関数を書いています。

RollRate60Analysis <- function(numC, num30, num60, mon6) {
    ## numC is the number of current accounts at time = 0
    ## num30 is the number of accounts that are 30 days delinquent at time = 0
    ## num60 is the number of accounts that are 60+ days delinquent at time = 0
    ## mon6 is the number of 6 month periods to carry out

    mymat <- matrix(c(0.904,0.029,0.023,0.001,0.043,0.2085,0.164,0.556,
                  0.064,0.0075,0.07,0.103,0.685,0.139,0.003), nrow = 3, byrow = TRUE)
    initMat <- matrix(c(numC, num30, num60, 0, 0), ncol = 5)
    for (j in 1:mon6) {
        tempMat <- mymat
        for (i in 1:3) {tempMat[i, ] <- tempMat[i, ] * sum(initMat[,i])}
        initMat <- ceiling(tempMat)
    }
    my60 <- sum(initMat[,3])
    total <- sum(apply(initMat, 2, sum)[1:3])
    list(initMat, 100*my60/total)
}

ここで少し不明な点があります。私は "2年後"を最初のロールレートが決定された後の時間と解釈し、したがって mon6 変数に5を渡します。これにより、 RollRate60Analysis(100000、800、367、5)= 12.60881 が生成されます。たとえ最初からのものであったとしても、私は間違った答えを得ます( RollRate60Analysis(100000、800、367、4)= 11.00218 )。私の結果は、時間が増えるにつれてさらに乖離し始めます。たとえば、3年後に RollRate60Analysis(100000,800,367,7)= 14.88264 になり、5年後に RollRate60Analysis(100000,800,367,11)= 17.21863

最後の主張では、私は 27.16%を取得します。 mon6が大きくなるようにすると、割合は 27.16049%に近づき始めます。観察する:

mon6 = 100, RollRate60Analysis(100000, 800, 367, 100) = 21.02804
mon6 = 200, RollRate60Analysis(100000, 800, 367, 200) = 27.16049
mon6 = 500, RollRate60Analysis(100000, 800, 367, 500) = 27.16049
mon6 = 1000, RollRate60Analysis(100000, 800, 367, 1000) = 27.16049
mon6 = 2000, RollRate60Analysis(100000, 800, 367, 2000) = 27.16049

これは 40.3%とはまったく異なります。 numC、num30、num60の最初の数字が不当な場合でも、 27.16049% RollRate60Analysis(100000,100000,100000,2000)= 27.16049 )。これは、ロールレートマトリックスが無限のすべてを決定し、最初に特定の延滞タイプの数を決定するべきではないので意味があります。

上記のロジックを変更して、60日以上延滞している貸出金として Default を含めても、その結果を複製することはできません。私は私の初期状態を得るために上記と同じ論理を使用します(私は代数的な詳細を惜しみません)。観察する:

RollRateAnalysisAltered <- function(numC, num30, num60, mon6) {
    mymat <- matrix(c(0.904,0.029,0.023,0.001,0.043,0.2085,0.164,0.556,
                      0.064,0.0075,0.07,0.103,0.685,0.139,0.003), nrow = 3, byrow = TRUE)
    initMat <- matrix(c(numC, num30, num60, 0, 0), ncol = 5)
    for (j in 1:mon6) {
        tempMat <- mymat
        for (i in 1:3) {tempMat[i, ] <- tempMat[i, ] * sum(initMat[,i])}
        initMat <- ceiling(tempMat)
    }
    my60 <- sum(initMat[,3]) + sum(initMat[,4])  ## including 4th column i.e. "Default"
    total <- sum(apply(initMat, 2, sum)[1:4])  ## including 4th column i.e. "Default"
    100*my60/total
}

mon6 = 1, RollRateAnalysisAltered (100000, 600, 300, 1) = 3.127362
mon6 = 5, RollRateAnalysisAltered (100000, 600, 300, 200) = 14.25458
mon6 = 7, RollRateAnalysisAltered (100000, 600, 300, 500) = 16.87869
mon6 = 11, RollRateAnalysisAltered (100000, 600, 300, 1000) = 19.54957
mon6 = 200, RollRateAnalysisAltered (100000, 600, 300, 2000) = 32.18391
mon6 = 2000, RollRateAnalysisAltered (100000, 600, 300, 2000) = 32.18391
mon6 = 2000, RollRateAnalysisAltered (100000, 100000, 100000, 2000) = 32.18391


Question:
Is there an error in their analysis or is my line of reasoning completely off? Again, we aren't given that much information, but it seems as though we should be able to replicate their results. Thanks!

1

答えはありません

0