transprob

从信用评级数据估算转移概率

描述

[transMatsampleTotalsidTotals] = transprob(数据构建从信用评级的历史数据的转换矩阵。

[transMatsampleTotalsidTotals] = transprob(___名称,值添加可选的名称-值对参数。

例子

全部收缩

使用历史信用评级表从输入数据Data_TransProb.mat显示前十行并计算转换矩阵:

加载Data_TransProb数据(1:10,:)
ans =10×3的表身份证号评级_______售予_________{‘00010283’}{10 - 11月- 1984的}{“CCC”}{‘00010283’}{12 - 1986年5月——”}{B}{‘00010283’}{截止1988年6月29日的}{“CCC”}{‘00010283’}{' 12 - 12月- 1991}{' D '}{‘00013326’}{' 09 - 2月- 1985}{A}{‘00013326’}{' 24 - 2月- 1994}{“AA”}{‘00013326’}{10 - 11月- 2000的}{BBB的}{‘00014413’}{' 23 - 12月- 1982}{B}{‘00014413’}{20 - 4月- 1988}{“BB”}{‘00014413’}{的16 - 1月- 1998}{B}
使用默认设置估计转移概率的Transmat = transprob(数据)
的Transmat =8×8的93.1170 5.8428 0.8232 0.1763 0.0376 0.0012 0.0001 0.0017 1.6166 93.1518 4.3632 0.6602 0.1626 0.0055 0.0004 0.0396 0.1237 2.9003 92.2197 4.0756 0.5365 0.0661 0.0028 0.0753 0.0236 0.2312 5.0059 90.1846 3.7979 0.4733 0.0642 0.2193 0.0216 0.1134 0.6357 5.7960 88.9866 3.4497 0.2919 0.7050 0.0010 0.0062 0.1081 0.8697 7.3366 86.7215 2.5169 2.4399 0.0002 0.0011 0.0120 0.2582 1.4294 4.2898 81.2927 12.7167 100.0000 0 0 0 0 0 0 0

使用从历史信用评级表输入数据Data_TransProb.mat,计算转换矩阵队列算法:

%使用“队列”算法估计转移概率transMatCoh = transprob(数据,“算法”“队列”
transMatCoh =8×8的93.1345 5.9335 0.7456 0.1553 0.0311 0 0 0 1.7359 92.9198 4.5446 0.6046 0.1560 0 0 0.0390 0.1268 2.9716 91.9913 4.3124 0.4711 0.0544 0 0.0725 0.0210 0.3785 5.0683 89.7792 4.0379 0.4627 0.0421 0.2103 0.0221 0.1105 0.6851 6.2320 88.3757 3.6464 0.2873 0.6409 0 0 0.0761 0.7230 7.9909 86.1872 2.7397 2.2831 0 00 0.3094 1.8561 4.5630 80.8971 12.3743 0 0 0 0 0 0 0 100.0000

使用历史信用评级资料及评级投资级别('IG')、投机级(“SG”)和违约(' D '),从Data_TransProb.mat显示前十行并计算转换矩阵:

dataIGSG(1:10,:)
ans =10×3的表身份证号评级_______售予______{‘00011253’}{' 04 - 4月- 1983}{“搞笑”}{‘00012751’}{”1985年- 2月17日}{“SG”}{‘00012751’}{“19 - 1986年5月——”}{' D '}{‘00014690’}{的17 - 1月- 1983}{“搞笑”}{‘00012144’}{' 21 - 11月- 1984}{“搞笑”}{‘00012144’}{' 25 - 3月- 1992}{“SG”}{‘00012144’}{' 07 -可能- 1994}{“搞笑”}{‘00012144’}{' 23 - 1月- 2000}{“SG”}{‘00012144’}{20 - 8月- 2001}{“搞笑”}{‘00012937’}{' 07 - 2月- 1984}{“搞笑”}
transMatIGSG = transprob(dataIGSG,'标签',{'IG'“SG”' D '})
transMatIGSG =3×398.6719 1.2020 0.1261 3.5781 93.3318 3.0901 0 0 100.0000

使用与投资级评级的数字的历史信用评级数据(1)、投机级(2)和违约(3),从Data_TransProb.mat显示前十行并计算转换矩阵:

dataIGSGnum (1:10,:)
ans =10×3的表身份证号评级_______售予______{‘00011253’}{' 04 - 4月- 1983 '}1{‘00012751’}{”1985年- 2月17日}2{‘00012751’}{“19 - 1986年5月——”}3{‘00014690’}{的17 - 1月- 1983}1{‘00012144’}{' 21 - 11月- 1984 '}1{‘00012144’}{' 25 - 3月- 1992 '}2{‘00012144’}{' 07 -可能- 1994}1{‘00012144’}{' 23 - 1月- 2000}2{‘00012144’}{20 - 8月- 2001 '}1{‘00012937’}{' 07 - 2月- 1984}1
transMatIGSGnum = transprob (dataIGSGnum,'标签',{1,2,3})
transMatIGSGnum =3×398.6719 1.2020 0.1261 3.5781 93.3318 3.0901 0 0 100.0000

使用含有历史信用评级单元阵列的输入数据一个MATLAB®表(dataCellFormat)Data_TransProb.mat,使用默认设置估计转换概率。

加载Data_TransProbtransMat = transprob (dataCellFormat)
的Transmat =8×8的93.1170 5.8428 0.8232 0.1763 0.0376 0.0012 0.0001 0.0017 1.6166 93.1518 4.3632 0.6602 0.1626 0.0055 0.0004 0.0396 0.1237 2.9003 92.2197 4.0756 0.5365 0.0661 0.0028 0.0753 0.0236 0.2312 5.0059 90.1846 3.7979 0.4733 0.0642 0.2193 0.0216 0.1134 0.6357 5.7960 88.9866 3.4497 0.2919 0.7050 0.0010 0.0062 0.1081 0.8697 7.3366 86.7215 2.5169 2.4399 0.0002 0.0011 0.0120 0.2582 1.4294 4.2898 81.2927 12.7167 100.0000 0 0 0 0 0 0 0

使用历史信用评级单元阵列输入数据(dataCellFormat),使用计算出转换矩阵队列算法:

%使用“队列”算法估计转移概率transMatCoh = transprob (dataCellFormat,“算法”“队列”
transMatCoh =8×8的93.1345 5.9335 0.7456 0.1553 0.0311 0 0 0 1.7359 92.9198 4.5446 0.6046 0.1560 0 0 0.0390 0.1268 2.9716 91.9913 4.3124 0.4711 0.0544 0 0.0725 0.0210 0.3785 5.0683 89.7792 4.0379 0.4627 0.0421 0.2103 0.0221 0.1105 0.6851 6.2320 88.3757 3.6464 0.2873 0.6409 0 0 0.0761 0.7230 7.9909 86.1872 2.7397 2.2831 0 00 0.3094 1.8561 4.5630 80.8971 12.3743 0 0 0 0 0 0 0 100.0000

这个例子说明了如何可视化被用作输入到信用评级的转变transprob函数。该实例还描述了如何transprob当公司数据在分析的开始日期之后开始,或者当分析的结束日期在最后一次观察到的转换之后开始时,函数处理评级转换。

样本数据

设置用于说明目的虚构的样本数据。

数据= {“ABC”'17 -Feb-2015'“AA”;“ABC”'6-JUL-2017'“一个”;“LMN”'12 -Aug-2014'“B”;“LMN”“9 - 11月- 2015”“CCC”;“LMN”“7九月2016”' D ';'XYZ''14  -  5月-2013'“BB”;'XYZ'截止2016年6月21日的“BBB”};data = cell2table(数据、“VariableNames”,{'ID''日期''评分'});DISP(数据)
标识日期评分_______ _______________ _______ { 'ABC'} {'17 -Feb-2015 '} {' AA”} { 'ABC'} { '6-JUL-2017'} { 'A'} { 'LMN'} {'12 -Aug-2014 '} {' B”} { 'LMN'} { '9-NOV-2015'} { 'CCC'} { 'LMN'} { '7月-2016'} { 'd'} { 'XYZ'} {'14  -  5月,2013 '} {' BB '} { 'XYZ'} {'21 -Jun-2016 '} {' BBB'}

transprob函数理解此面板数据格式指示将新评级分配给给定公司的日期。transprob假设这样的评级保持不变,除非后续行明确表示等级的变化。例如,对于公司“ABC”transprob明白的“一个”评级将在以后的任何日期保持不变'6-JUL-2017'(无限期)。

计算转换矩阵和转换计数

transprob函数的主要输出是一个转换概率矩阵。还有一些可选输出,其中包含关于发生了多少转换的附加信息。有关更多信息,请参见transprob的可选输出的相关信息“队列”“持续时间”方法。

为了便于说明,此示例允许您选择StartYear(限于20142015年对于本例)和EndYear20162017年)。这个例子也使用hDisplayTransitions辅助函数(参见本地函数)来格式化转换信息,以便于阅读。

StartYear =2014;EndYear =2017年;startDate可以= datetime (StartYear, 12日31日“语言环境”“en_US”);endDate = datetime (EndYear, 12日31日“语言环境”“en_US”);RatingLabels = [“AAA”“AA”“一个”" BBB "“BB”“B”“CCC”“d”];[tm,圣]= transprob(数据,startDate可以的,开始日期,'结束日期'endDate,“算法”“队列”'标签',RatingLabels);

的过渡概率的Transmat输出表示评级之间的迁移概率。概率用%表示,即乘以100。

hDisplayTransitions(TM,RatingLabels,“转移矩阵”
转移矩阵AAA AA A BBB BB乙CCC d ___ __ ___ ___ __ _ ___ ___ AAA 100 0 0 0 0 0 0 0 AA 0 50 50 0 0 0 0 0 A 0 0 100 0 0 0 0 0 BBB 0 0 0 1000 0 0 0 0 BB 0 0 50 50 0 0 0 B 0 0 0 0 0 0 100 0 0 CCC 0 0 0 0 0 0 100 0 d 0 0 0 0 0 0 100

转换计数存储在sampleTotals可选输出,并指示整个样本(即所有公司)的评级之间发生了多少转换。

hDisplayTransitions (st.totalsMat RatingLabels,“过渡计数,所有的公司”
过渡,所有公司AAA AA BBB BB B CCC D ___ __ _一幅_ _ _ AAA 0 0 0 0 0 0 0 0 AA 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 BBB 0 0 0 1 0 0 0 0 BB 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 B CCC 0 0 0 0 0 0 0 1 D 0 0 0 0 0 0 0 1

第三个输出transprobidTotals包含在ID级由公司约转变信息,公司(以相同的顺序,这两家公司出现在输入数据)。

选择一家公司来显示转换计数和相应的转换可视化。该hPlotTransitions辅助函数(参见本地函数部分)显示了公司过渡的历史。

CompanyID =“ABC”;UniqueIDs =独特(data.ID,'稳定');[~,CompanyIndex] = ismember (CompanyID UniqueIDs);hDisplayTransitions(它(CompanyIndex) .totalsMat RatingLabels strcat (“过渡计数,公司ID:”,CompanyID))
过渡方面,ABC公司ID: AAA AA BBB BB B CCC D ___ __ _一幅_ _ _ AAA 0 0 0 0 0 0 0 0 AA 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 BBB 0 0 0 0 0 0 0 0 BB 0 0 0 0 0 0 0 0 B CCC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D 0 0 0 0 0 0 0 0
hPlotTransitions (CompanyID startDate可以,endDate、数据RatingLabels)

要了解如何transprob当第一个观察日期在分析的开始日期之后,或者最后一个观察日期在分析的结束日期之前,处理数据时,请考虑以下示例。为公司“ABC”假设分析具有的开始日期2014年- 12月31日及截止日期2017年- 12月31日。对于该分析时间窗口,该公司只报告了两个转换。第一次观察到“ABC”发生在17 - 2月- 2015。因此,2015年- 12月31日快照是对公司的第一次观察。通过2016年- 12月31日,该公司仍留在原“AA”评分。通过2017年- 12月31日,降级为“一个”是记录。与此一致,转换计数显示从“AA”“AA”(从2015年末到2016年底),并从一个过渡“AA”“一个”(2016年底至2017年底)图中用虚线表示最后的评级,以强调数据中的最后评级是对未来的无限推断。没有对过去的推断;该公司的历史被忽略,直到一个公司的评级是已知的整个过渡时期(2015年- 12月31日通过2016年- 12月31日在…情况下“ABC”)。

计算转换矩阵NR(未评级)评级

考虑仅包含单个公司不同的样本数据“DEF”。该数据包含公司的转变“DEF”“一个”'NR'评级和随后的过渡'NR'“BBB”

dataNR = {“DEF”'17 -mar-2011'“一个”;“DEF”'24 -mar-2014''NR';“DEF”'26 -sep-2016'“BBB”};dataNR = cell2table (dataNR,“VariableNames”,{'ID''日期''评分'});disp (dataNR)
身份证日期评级累积售予{“DEF”}{的17 - 3月- 2011}{A} {“DEF”}{' 24 - 3月- 2014}{NR的}{“DEF”} {' 26 - 9 - 2016} {BBB的}

transprob对待'NR'作为另一个评级。下面的过渡矩阵显示了过渡到和退出的估计概率'NR'

StartYearNR = 2010;EndYearNR = 2018;startDateNR = datetime (StartYearNR, 12日31日“语言环境”“en_US”);endDateNR = datetime (EndYearNR, 12日31日“语言环境”“en_US”);CompanyID_NR =“DEF”;RatingLabelsNR = [“AAA”“AA”“一个”" BBB "“BB”“B”“CCC”“d”“NR”];[tmNR ~, itNR] = transprob (dataNR,startDate可以的startDateNR,'结束日期'endDateNR,“算法”“队列”'标签',RatingLabelsNR);hDisplayTransitions (tmNR RatingLabelsNR,“转移矩阵”
过渡矩阵AAA AA BBB BB B CCC D NR ______ AAA ____ ____ ______ ____ ____一幅中国画100 0 0 0 0 0 0 0 0 AA 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 66.667 33.333 BBB 100 0 0 0 0 0 0 0 0 0 0 0 0 100 BB 0 0 0 0 B 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 CCC 0 0 D 0 0 0 0 0 0 0 100 0 NR 0 0 0 0 0 0 0 50

显示转变计数和转换的对应的可视化。

hDisplayTransitions(itNR.totalsMat,RatingLabelsNR,strcat的(“过渡计数,公司ID:”,CompanyID_NR))
过渡计数,公司ID:DEF AAA AA A BBB BB乙CCC d NR ___ __ _ ___ __ _ ___ _ __ AAA 0 0 0 0 0 0 0 0 0 AA 0 0 0 0 0 0 0 0 0 A 0 0 2 00 0 0 0 1 BBB 0 0 0 2 0 0 0 0 0 BB 0 0 0 0 0 0 0 0 0 B 0 0 0 0 0 0 0 0 0 CCC 0 0 0 0 0 0 0 0 0 d 0 0 0 00 0 0 0 0 0 NR 0 0 1 0 0 0 0 1
hPlotTransitions (CompanyID_NR、startDateNR endDateNR、dataNR RatingLabelsNR)

删除'NR'从转换矩阵中,使用'excludeLabels'中的名-值输入参数transprob。要排除的标签列表可以在名称-值对参数中指定,也可以不指定标签。例如,无论是RatingLabelsRatingLabelsNR产生从输出相同的transprob

[tmNR,STNR,itNR] = transprob(dataNR,startDate可以的startDateNR,'结束日期'endDateNR,“算法”“队列”'标签'RatingLabelsNR,'excludeLabels''NR');hDisplayTransitions (tmNR RatingLabels,“转移矩阵”
转移矩阵AAA AA A BBB BB乙CCC d ___ ___ ___ ___ ___ ___ ___ ___ AAA 100 0 0 0 0 0 0 0 AA 0 100 0 0 0 0 0 0 A 0 0 100 0 0 0 0 0 BBB 0 0 0 1000 0 0 0 BB 0 0 0 0 100 0 0 0 B 0 0 0 0 0 100 0 0 CCC 0 0 0 0 0 0 100 0 d 0 0 0 0 0 0 0 100

显示转变计数和转换的对应的可视化。

hDisplayTransitions (itNR.totalsMat、RatingLabels strcat (“过渡计数,公司ID:”,CompanyID_NR))
过渡方面,公司ID: DEF AAA AA BBB BB B CCC D ___ __ _一幅_ _ _ AAA 0 0 0 0 0 0 0 0 AA 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 BBB 0 0 0 2 0 0 0 0 BB 0 0 0 0 0 0 0 0 B CCC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D 0 0 0 0 0 0 0 0
hPlotTransitions(CompanyID_NR,startDateNR,endDateNR,dataNR,RatingLabels)

与前面的情节一致,转换计数仍然显示两个来自“一个”“一个”(从2012年年底到2014年底),并从两个过渡“BBB”“BBB”(从2017年底到2019年年底)。

然而,从以前的剧情不同,指定'NR'使用'excludeLabels'的名称 - 值输入参数transprob属性中移除所有进出的转换'NR'评分。

本地函数

函数hDisplayTransitions (TransitionsData RatingLabels、标题)%Helper功能,将格式转换信息输出TransitionsAsTable = array2table (TransitionsData,“VariableNames”RatingLabels,“RowNames”,RatingLabels);fprintf中('\ n%s的\ n \ n'、标题)disp (TransitionsAsTable)结束函数hPlotTransitions (CompanyID startDate可以,endDate、数据RatingLabels)帮助函数来可视化评级之间的转换IND =串(data.ID)== CompanyID;DatesOriginal =日期时间(data.Date(茚基),“语言环境”“en_US”);RatingsOriginal =分类(data.Rating(印第安纳州),flipud (RatingLabels (:)), flipud (RatingLabels (:)));楼梯(DatesOriginal RatingsOriginal,“线宽”2)保持;%表示外推到未来的评级(任意选择91结束日期作为情节的最后日期后%天)endDateExtrap = endDate + 91;如果endDateExtrap> DatesOriginal(结束)DatesExtrap = [DatesOriginal(端);endDateExtrap];RatingsExtrap = [RatingsOriginal(端);RatingsOriginal(端)];楼梯(DatesExtrap,RatingsExtrap,“线宽”2,“线型”“:”结束保持;%添加线条指示快照日期% transprob使用1作为“snapsPerYear”的默认值,这里硬编码是为了简单对cfdates的调用生成的快照日期与transprob使用的快照日期完全相同snapsPerYear = 1;snapDates = cfdates (startDate-1 endDate snapsPerYear) ';yLimits = ylim;对于2 = 1:长度(snapDates)线([snapDates (ii) snapDates (ii)], yLimits,“颜色”“米”结束标题(strcat (“公司ID:”,CompanyID))结束

输入参数

全部收缩

运用transprob为了估计给定信用评级历史数据(即信用迁移数据)的转移概率数据输入可以是以下其中之一:

  • 一个nRecords——- - - - - -3MATLAB®包含表单的历史信用评级数据表:

    ID评级__________ _________________ ______日期“00010283”“10 - 11月- 1984”“CCC”“00010283”“12 - 1986年5月——”“B”“00010283”1988年6月29日的“CCC”“00010283”的12 - 12月- 1991 ' D '‘00013326’‘09 - 2月- 1985 A“00013326”1994年- 2月24日的“AA”“00013326”“10 - 11月- 2000”“BBB”“00014413”' 23 - 12月- 1982 ' ' B '
    其中每行包含一个ID(第1列)、一个日期(第2列)和一个信用评级(第3列)。第3列是在相应日期分配给相应ID的评级。同一ID对应的所有信息必须存储在连续的行中。不需要按日期对这些信息进行排序,但是为了提高效率,建议这样做。当使用MATLAB表输入时,列的名称是不相关的,但是ID、日期和评级信息分别假定在第一列、第二列和第三列中。此外,在使用表输入时,第一列和第三列可以是分类数组,第二列可以是日期时间数组。下面总结了表输入支持的数据类型:万博1manbetx

    数据输入类型 ID(第1列) 日期(2列) 评级(第3列)
    表格

    • 数字数组

    • 字符向量的单元数组

    • 分类数组

    • 数字数组

    • 字符向量的单元数组

    • Datetime数组

    • 数字数组

    • 字符向量的单元数组

    • 分类数组

  • 一个nRecords——- - - - - -3包含表单历史信用评级数据的字符向量单元数组:

    '00010283' ' 1984年11月10日' 'CCC' ' '00010283' ' 1986年5月12日' 'B' '00010283' ' 1988年6月29日' 'D' '00013326' ' 1985年2月12日12日' 'A' '24- 1994年2月24日' 'AA' '00013326' '10- 2000年11月10日' 'BBB' '00014413' ' 1982年12月23日' 'B'
    其中每行包含一个ID(第1列)、一个日期(第2列)和一个信用评级(第3列)。第3列是在相应日期分配给相应ID的评级。同一ID对应的所有信息必须存储在连续的行中。不需要按日期对这些信息进行排序,但是为了提高效率,建议这样做。id、日期和评级以字符向量格式存储,但也可以以数字格式输入。下面总结了支持的单元格数组输入数据类型:万博1manbetx

    数据输入类型 ID(第1列) 日期(2列) 评级(第3列)
    细胞

    • 数字元素

    • 字符向量元素

    • 数字元素

    • 字符向量元素

    • 数字元素

    • 字符向量元素

  • 使用获得的预处理过的数据结构transprobprep。这个数据结构包含字段“idStart”“numericDates”“numericRatings”,“ratingsLabels”

数据类型:|细胞|结构

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。的名字是参数的名称和价值是对应的值。的名字必须出现引号内。您可以按照任何顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:transMat = transprob(数据、“算法”、“群”)

估计算法,指定由逗号分隔的对组成“算法”和一个值为的字符向量“持续时间”“队列”

数据类型:字符

估计时间窗的结束日期,指定为逗号分隔的一对组成的'结束日期'和日期字符向量,序列号日期或日期时间对象。该endDate之前不能是约会startDate可以

数据类型:字符||datetime

信用评级尺度,指定为逗号分隔的一对组成的'标签'和一个nRatings——- - - - - -1,或1——- - - - - -nRatings字符向量的单元阵列。

标签必须与第三栏中使用的评级标签一致数据。使用数字的单元格数组进行数字评级,使用字符向量的单元格数组进行分类评级。

注意

当输入参数数据从以前调用而获得的经过预处理的数据结构transprobprep,这个可选输入的标签是因为未使用的标签“ratingsLabels”领域的transprobprep优先。

数据类型:细胞

每年要考虑用于估计的信用评级快照的数量,指定为逗号分隔的对“snapsPerYear”的数值12346,或12

注意

此参数仅用于“队列”算法

数据类型:

估计时间窗的开始时间,指定为逗号分隔的一对组成的startDate可以的和日期字符向量,序列号日期或日期时间对象。

数据类型:字符||datetime

转换间隔的长度,以年为单位,由逗号分隔的对组成'transInterval'和数值。

数据类型:

从转移概率计算中排除的标签,指定为逗号分隔的对组成'excludeLabels'以及字符向量、字符串或数字等级。

如果要排除多个标签,'excludeLabels'必须是包含所有要排除的标签的单元格数组。所给标签的类型'excludeLabels'必须在指定的数据类型一致标签输入。

要排除的标签列表可以指定,也可以不指定标签

数据类型:|字符|字符串

输出参数

全部收缩

以百分比表示的转移概率矩阵,返回为anRatings——- - - - - -nRatings转换矩阵。

结构与样本总数,返回与字段:

  • totalsVec- 大小的矢量1——- - - - - -nRatings

  • totalsMat-矩阵大小nRatings——- - - - - -nRatings

  • 算法-带有值的字符向量“持续时间”“队列”

“持续时间”算法,totalsMat一世Ĵ)包含评级的观察出总过渡一世进入等级Ĵ(所有对角元素为0)花费在评级上的总时间一世存储在totalsVec一世)。例如,如果有三个评级类别,投资级别(IG)、投机级(SG)和违约(d),以及以下信息:

花费的总时间IG SG d在评级:4859.09 1503.36 1162.05过渡IG SG d出(行)IG 0 89 7到(列):SG 202 0 32 d 0 0 0
然后
totals.totalsVec = [4859.09 1503.36 1162.05] totals.totalsMat = [0 89 7 202 0 32 0 0 0] totals.algorithm = '持续时间'

“队列”算法,totalsMat一世Ĵ)包含从评级中观察到的所有转换一世对评级Ĵ,totalsVec一世)是排名的初始计数一世。例如,给定以下信息:

初始计IG SG d在评级:4808 1572 1145转换IG SG d从(行)IG 4721 80 7(列):SG 193 1347 32 d 0 0 1145
然后

totals.totalsVec = [4808 1572 1145] totals.totalsMat = [4721 80 7 193 1347 32 0 0 1145 totals.algorithm = '队列'

id汇总,以大小结构数组的形式返回nIDs——- - - - - -1,在那里ñ的第1列中不同的id的数量数据当它是一个表或电池阵列或等价地,等于所述长度idStart现场零下1时数据是从经过预处理的数据结构transprobprep。对于样本中的每个ID,idTotals包含一个结构以下字段:

  • totalsVec- 大小的稀疏矢量1——- - - - - -nRatings

  • totalsMat-大小的稀疏矩阵nRatings——- - - - - -nRatings

  • 算法-带有值的字符向量“持续时间”“队列”

这些字段包含用于输出所述相同信息sampleTotals的,但在一个ID的水平。例如,对于“持续时间”idTotalsķ)。totalsVec包含总时间ķ个公司花费在每个评级。

更多关于

全部收缩

群估计

队列算法基于一系列信用评级的快照,在定时间隔的时间点上估计转移概率。

如果一家公司的信用评级两点改动分别快照日期间两次,中间评级被忽视,只有最初和最后的收视率影响估计。

持续时间估算

不同于队列方法,持续时间算法估计基础上,充分的信用评级历史上的转移概率,看着上发生的信用评级迁移的确切日期。

在这个方法中没有快照的概念,所有的信用评级迁移都会影响评估,即使公司的评级在短时间内两次改变。

算法

全部收缩

群估计

该算法首先确定一个序列Ť0t…,ķ快照的日期。两个连续快照日期之间经过的时间,以年为单位Ťk - 1Ťķ等于1/ns,在那里ns每年快照的数量。这些ķ+1日期确定ķ过渡时期。

该算法计算 ñ 一世 ñ ,过渡时间段的数量,其中义务人ñ开始于评级一世。这些都增加了对所有债务人获得ñ一世,样本中开始在评级阶段的债务人的数量一世。债务人的债务期限ñ开始于评级一世并以评级结束Ĵ,或从一世Ĵ,表示通过 ñ 一世 Ĵ ñ ,也是计算得到的。这些也加起来得到 ñ 一世 Ĵ ,迁移的总数量从一世Ĵ在样例。

过渡概率的估计一世Ĵ在一个周期内,用表示 P 一世 Ĵ

P 一世 Ĵ = ñ 一世 Ĵ ñ 一世

这些概率被安排在一个单周期转移矩阵中P0,其中我,我在进入P0P一世Ĵ

如果快照的数量每年ns4个(季度快照),概率是P0为3个月(或0.25年)的转移概率。然而,你可能对1年或2年的转移概率感兴趣。后者的时间间隔称为过渡区间,ΔŤ,它用于转换P0成最终的转换矩阵,P,根据公式:

P = P 0 ñ 小号 Ť

例如,如果ns=4和ΔŤ=2P包含从季度快照估计的两年转换概率。

注意

对于队列算法,可选的输出参数idTotalssampleTotalstransprob包含以下信息:

  • idTotals .totalsVec (n)= ñ 一世 ñ 一世

  • idTotals .totalsMat (n)= ñ 一世 Ĵ ñ 一世 Ĵ

  • idTotals .algorithm (n)=“队列”

  • sampleTotals.totalsVec= ñ 一世 一世

  • sampleTotals.totalsMat= ñ 一世 Ĵ 一世 Ĵ

  • sampleTotals.algorithm=“队列”

对于效率,向量和矩阵idTotals存储为稀疏数组。

当评级必须排除(见excludeLabels名称-值输入参数),所有涉及被排除评级的转换都将从样本中删除。例如,如果“NR”评级必须排除,任何转换成“NR”进出“NR”都被排除在样本之外。所有其他评级的总数也相应调整。有关更多信息,请参见可视化transprob的转换数据

持续时间估算

该算法计算 Ť 一世 ñ ,债务人的总时间ñ在评级一世在估计时间窗口内。这些数量加起来超过了所有债务人的需要 Ť 一世 ,即花费在评级上的总时间一世,集体,由样品中的所有义务人。该算法还计算 Ť 一世 Ĵ ñ 的次数ñ迁移从评级一世对评级Ĵ一世不等于Ĵ,估计时间范围内。而且它也增加了,直到得到 Ť 一世 Ĵ ,由样本中所有义务人从评级中得出的迁移总数一世Ĵ一世不等于Ĵ

为了估计转移概率,持续时间算法首先计算一个生成器矩阵 Λ 。这个矩阵的每一个非对角条目都是对评级外转移率的估计一世进入等级Ĵ,是

λ 一世 Ĵ = Ť 一世 Ĵ Ť 一世 一世 Ĵ

对角线项计算如下:

λ 一世 一世 = Ĵ 一世 λ 一世 Ĵ

与生成矩阵和过渡间隔ΔŤ(例如,ΔŤ=2对应两年的转移概率),得到的转移矩阵为 P = 经验值 Δ Ť Λ ,在那里经验值表示矩阵取幂(expm在MATLAB)。

注意

对于持续时间算法,可选的输出参数idTotalssampleTotalstransprob包含以下信息:

  • idTotals .totalsVec (n)= Ť 一世 ñ 一世

  • idTotals .totalsMat (n)= Ť 一世 Ĵ ñ 一世 Ĵ

  • idTotals .algorithm (n)=“持续时间”

  • sampleTotals.totalsVec= Ť 一世 一世

  • sampleTotals.totalsMat= Ť 一世 Ĵ 一世 Ĵ

  • sampleTotals.algorithm=“持续时间”

对于效率,向量和矩阵idTotals存储为稀疏数组。

当评级必须排除(见excludeLabels名称-值输入参数),所有涉及排除评级的转换将从样本中删除。例如,如果“NR”评级必须排除,任何转换成“NR”进出“NR”都被排除在样本之外。总时间花费在“NR”(或任何其它排除的等级)也被去除。

参考文献

[1]汉森,S.,T. Schuermann。“置信区间违约率。”杂志银行与金融。第30卷(8),爱思唯尔,2006年8月,第2281-2301页。

Loffler, G., P. N. Posch。信用风险建模使用Excel和VBA。西苏塞克斯,英格兰:威利金融,2007年。

[3] Schuermann,T. “信用迁移矩阵”。在E.梅尔尼克,B.埃弗里特(编),定量风险分析和评估百科全书。威利,2008年。

介绍R2010b中