主要内容

transprob

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

描述

例子

[transMatsampleTotalsidtotals.) = transprob (数据的)从信用评级的历史数据构造一个转移矩阵。

例子

[transMatsampleTotalsidtotals.) = transprob (___名称,值的)添加可选的名称-值对参数。

例子

全部折叠

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

负载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(数据)
变送=8×892.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.00020.0011 0.0120 0.2582 1.4294 4.2898 81.2927 12.7167 0000 00 100.0000

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

用“队列”算法估计转移概率transMatCoh = transprob(数据,“算法”“队列”的)
transMatCoh =8×893.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

使用历史信用评级数据,对投资级别进行评级(“搞笑”)、投机等级(“SG”),以及默认(' D '),从Data_TransProb.mat显示前10行并计算转换矩阵:

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,“标签”, {“搞笑”“SG”' D '})
transMatIGSG =3×398.6719 1.2020 0.1261 3.5781 93.3318 3.0910 00 100.0000

使用历史信用评级数据与数字评级进行投资等级(1)、投机等级(2),以及默认(3.),从Data_TransProb.mat显示前10行并计算转换矩阵:

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.0910 00 100.0000

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

负载Data_TransProbtransMat = transprob (dataCellFormat)
变送=8×892.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.00020.0011 0.0120 0.2582 1.4294 4.2898 81.2927 12.7167 0000 00 100.0000

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

用“队列”算法估计转移概率transMatCoh = transprob (dataCellFormat,“算法”“队列”的)
transMatCoh =8×893.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当公司数据在分析的开始日期之后开始时,或者当分析的结束日期在观察到的最后一个转换之后时,函数处理评级转换。

样本数据

为了演示目的,设置虚构的示例数据。

data = {“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 -May-2013'“BB”'XYZ'截止2016年6月21日的“BBB”};data = cell2table(数据、“VariableNames”, {“ID”'日期'“评级”});disp(数据)
身份证号评级  _______ _______________ _______ {' ABC '}{”2015年- 2月17日}{“AA”}{' ABC '}{的6 - 7月- 2017}{A}{‘LMN}{' 12 - 8月- 2014}{B}{‘LMN}{' 9 - 11月- 2015}{“CCC”}{‘LMN} {' 7 - 9 - 2016} {' D '}{“XYZ”}{' 14 - 5 - 2013}{“BB”}{“XYZ”}{截止2016年6月21日的}{BBB的}

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

计算转移矩阵和转移计数

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

出于演示的目的,这个示例允许您选择StartYear(限于20142015对于本例)和EndYear20162017).这个例子也使用了hDisplayTransitions辅助函数(请参阅本地函数章节),以格式化过渡信息,以方便阅读。

StartYear =2014;EndYear =2017;startDate可以= datetime (StartYear, 12日31日'locale'“en_US”);endDate = datetime (EndYear, 12日31日'locale'“en_US”);ratinglabels = [“AAA”“aa”“一个”" BBB "“bb”“B”“CCC”“D”];[tm,圣]= transprob(数据,startDate可以的,开始日期,'结束日期'endDate,“算法”“队列”“标签”, RatingLabels);

的转移概率TransMat输出表示在评级之间迁移的概率。概率用%表示,也就是说,它们乘以100。

(toyota hDisplayTransitions RatingLabels,“过渡矩阵”的)
过渡矩阵AAA AA BBB BB B CCC D  ___ __ ___ ___ __ _ ___ ___ AAA 100 0 0 0 0 0 0 0 AA 0 50 50 100 0 0 0 0 0 0 0 0 0 0 0 0 BBB 0 0 0 100 0 0 0 0 BB 50 50 0 0 0 0 0 0 0 0 0 0 0 0 100 B 0 CCC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 100 D

转换计数存储在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 =独特(数据。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 0 0 0 0 0 0 0 0
hPlotTransitions (CompanyID startDate可以,endDate、数据RatingLabels)

图中包含一个轴对象。以Company ID: ABC为标题的坐标轴对象包含楼梯、直线类型的6个对象。

了解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 - 3月- 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日'locale'“en_US”);endDateNR = datetime (EndYearNR, 12日31日'locale'“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 100 0 0 0 0 0 0 0 0 NR 50 0 0 0 0 0 0 0 50

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

hDisplayTransitions (itNR.totalsMat、RatingLabelsNR strcat (“过渡很重要,公司ID:”, CompanyID_NR))
转型计数,公司ID:DEF AAA AA A BBB BB B CCC D NR ___ ___ ____ ___ ___ ________ 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 D 0 0 0 00 0 0 0 0 NR 0 0 0 1 0 0 0 0 1
hPlotTransitions (CompanyID_NR、startDateNR endDateNR、dataNR RatingLabelsNR)

图中包含一个轴对象。标题为Company ID: DEF的轴对象包含11个类型为stair, line的对象。

删除NR的从转移矩阵,使用'不包括标签'中的名称-值输入参数transprob.要排除的标签列表可以在名称-值对参数中指定,也可以不指定标签.例如,两者都是RatingLabelsRatingLabelsNR生成相同的输出transprob

[TMNR,STNR,ITNR] = TRANSPROB(DATANR,startDate可以的startDateNR,'结束日期'endDateNR,“算法”“队列”“标签”RatingLabelsNR,'不包括标签'NR的);hDisplayTransitions (tmNR RatingLabels,“过渡矩阵”的)
转换矩阵AAA AA A BBB BB B CCC D ___ ___ ___ ___ ___ ___ ___ ___ AAA 100 0 0 0 0 0 0 0 a 0 0 0 0 0 0 0 0 0bb 0 0 0 1000 0 0 0 BB 0 0 0 0 100 0 0 0 0 0 0 0 0 0 100 0 0 CCC 0 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 0 0 0 0 0 0 0 0
hPlotTransitions (CompanyID_NR、startDateNR endDateNR、dataNR RatingLabels)

图中包含一个轴对象。标题为Company ID: DEF的轴对象包含11个类型为stair, line的对象。

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

但是,不同于前面的图,指定NR的使用'不包括标签'的名称-值输入参数transprob删除到和从NR的评分。

本地函数

函数hDisplayTransitions (TransitionsData RatingLabels、标题)%帮助程序功能格式化转换信息输出TransitionsAsTable = array2table (TransitionsData,...“VariableNames”RatingLabels,“RowNames”, RatingLabels);流(“\ n % s \ n \ n”、标题)disp (TransitionsAsTable)结束函数hPlotTransitions (CompanyID startDate可以,endDate、数据RatingLabels)% Helper函数可视化评级之间的转换IND = String(data.id)== CompanyID;datesiginal = datetime(data.date(ind),'locale'“en_US”);RatingsOriginal =分类(data.Rating(印第安纳州),flipud (RatingLabels (:)), flipud (RatingLabels (:)));楼梯(DatesOriginal RatingsOriginal,“线宽”, 2)%表示推断到未来的评级(任意选择91)在endDate之后的%天作为图上的最后日期)endDateExtrap = endDate + 91;如果EndDateExtrap> DateSoriginal(END)DATESExtrap = [DateSiginal(END);enddateExtrap];ratingsextrap = [ratingsoriginal(END);ratingsoriginal(END)];楼梯(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为了估计给定信用评级历史数据(即信用迁移数据)的转移概率数据Input可以是下列任意一种:

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

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

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

    • 数字数组

    • 字符向量的单元格数组

    • 分类数组

    • 数字数组

    • 字符向量的单元格数组

    • Datetime数组

    • 数字数组

    • 字符向量的单元格数组

    • 分类数组

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

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

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

    • 数字元素

    • 字符矢量元素

    • 数字元素

    • 字符矢量元素

    • 数字元素

    • 字符矢量元素

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

数据类型:表格|细胞|结构体

名称 - 值参数

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

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

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

数据类型:字符

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

数据类型:字符||datetime

信用评级规模,指定为逗号分隔对组成“标签”和一个nRatings——- - - - - -1,或1——- - - - - -nRatings字符向量的单元格数组。

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

笔记

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

数据类型:细胞

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

笔记

该参数仅与“队列”算法

数据类型:

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

数据类型:字符||datetime

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

数据类型:

从转移概率计算中排除的标号,指定为逗号分隔对,由'不包括标签'以及字符向量、字符串或数字评级。

如果要排除多个标签,'不包括标签'必须是包含所有排除标签的单元格数组。给出的标签类型'不包括标签'必须与?中的数据类型一致标签输入。

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

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

输出参数

全部折叠

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

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

  • totalsVec-大小向量1——- - - - - -nRatings

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

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

“持续时间”算法,totalsmat一世j)包含在评级之外观察到的全部转换一世进入评级j(所有对角线元素为零)。花在评级上的总时间一世存储在totalsVec一世).例如,如果有三个评级类别,投资级(搞笑)、投机等级(SG)和默认值(D.),以及以下信息:

转换IG SG D出(行)IG 0 89 7到(列):SG 202 0 32 D 0 0 0
然后
总数。来T.alsVec = [4859.09 1503.36 1162.05] totals.totalsMat = [ 0 89 7 202 0 32 0 0 0] totals.algorithm = 'duration'

“队列”算法,totalsmat一世j)包含从评级观察到的全部转变一世评级j,totalsVec一世)是评级中的初始计数一世.例如,给定以下信息:

评级中的初始计数IG SG D:4808 1572 1145从(行)Ig 4721 80 7转换Ig SG D至(列):SG 193 1347 32 D 0 0 0 1145
然后

totals.totalsvec = [4808 1572 1145] totals.totalsmat = [4721 80 7 193 1347 32 0 0 1145总计.algorithm ='cohort'

id总数,返回为size的结构数组nIDs——- - - - - -1,在那里N.的第1列中的不同id的数量数据当这是一个表或小区阵列,或者等于等于idStart字段- 1数据是预处理的数据结构吗transprobprep.对于示例中的每个ID,idtotals.包含一个具有以下字段的结构:

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

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

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

这些字段包含对输出描述的相同信息sampleTotals,但在身份证级别。例如,对于“持续时间”idtotals.K.).totalsVec包含总时间K.- 每次评级都花在了。

更多关于

全部折叠

群估计

队列算法根据信用评级在一定间隔时间点上的快照序列估计转移概率。

如果公司的信用评级在两个快照日期之间更改两次,则忽视中间评级,并且仅初始和最终评级影响估计数。

持续时间估算

与队列方法不同的是,持续时间算法根据完整的信用评级历史来估计转移概率,并查看信用评级迁移发生的确切日期。

这种方法中没有快照的概念,而且所有的信用评级迁移都会影响估计,甚至当一个公司的评级在短时间内变化两次时也是如此。

算法

全部折叠

群估计

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

该算法计算 N. 一世 N. ,债务人的过渡期数量N.从评级一世.这些都是加起来的所有义务得到N.一世,样本中以评级开始一段时期的债务人数量一世.债务人的数期N.从评级一世并以评级结束j,或从一世j,用 N. 一世 j N. ,也是计算得到的。这些也是加起来得到的 N. 一世 j ,迁移的总数一世j在样例。

转移概率的估计一世j在一个时期内,表示为 P. 一世 j ,是

P. 一世 j = N. 一世 j N. 一世

这些概率排列在一个周期转移矩阵中P.0.,在那里我,我进入P.0.P.一世j

如果每年的快照数量ns4(季度快照),概率在吗P.0.为3个月(或0.25年)的转移概率。但是,您可能对1年或2年的转移概率感兴趣。后一个时间间隔称为过渡间隔ΔT.,用于转换P.0.转化成最终的转移矩阵,P.,根据公式:

P. = P. 0. N. S. T.

例如,如果ns=4.和ΔT.=2P.包含从季度快照估计的两年过渡概率。

笔记

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

  • idTotals .totalsVec (n)= N. 一世 N. 的) 一世

  • idTotals .totalsMat (n)= N. 一世 j N. 的) 一世 j

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

  • sampleTotals.totalsVec= N. 一世 的) 一世

  • sampleTotals.totalsMat= N. 一世 j 的) 一世 j

  • sampleTotals.algorithm=“队列”

为求效率,向量和矩阵idtotals.存储为稀疏数组。

当必须排除评级时(请参阅excludeLabels名称-值输入参数),所有涉及被排除评级的转换将从示例中删除。例如,如果NR的评级必须被排除在外,任何过渡NR的而且NR的被排除在样本之外。所有其他评级的总计数将相应地调整。有关更多信息,请参见可视化transprob的转换数据

持续时间估算

该算法计算 T. 一世 N. ,债务人的总时间N.在评级一世在估计时间窗口内。这些数量加在所有的债务人身上得到 T. 一世 ,用于评级的总时间一世,由样本中所有债务人共同承担。该算法也进行计算 T. 一世 j N. ,是那个债务人的数倍N.迁移从评级一世评级j,一世不等于j,在估计时间窗内。把它们加起来得到 T. 一世 j ,样本中所有义务的迁移总数,从评级一世j,一世不等于j

为了估计转移概率,持续时间算法首先计算一个生成器矩阵 Λ .这个矩阵的每一个非对角线的项都是从评级转移率的估计一世进入评级j,是

λ 一世 j = T. 一世 j T. 一世 一世 j

对角线项的计算如下:

λ 一世 一世 = j 一世 λ 一世 j

与发电机矩阵和转换间隔δT.(例如,ΔT.=2对应两年转移概率),则转移矩阵为 P. = 经验值 Δ T. Λ 的) ,在那里经验值为矩阵取幂(expm在matlab)。

笔记

对于duration算法,可选输出参数idtotals.sampleTotalstransprob包含以下信息:

  • idTotals .totalsVec (n)= T. 一世 N. 的) 一世

  • idTotals .totalsMat (n)= T. 一世 j N. 的) 一世 j

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

  • sampleTotals.totalsVec= T. 一世 的) 一世

  • sampleTotals.totalsMat= T. 一世 j 的) 一世 j

  • sampleTotals.algorithm=“持续时间”

为求效率,向量和矩阵idtotals.存储为稀疏数组。

当必须排除评级时(请参阅excludeLabels名称-值输入参数),所有涉及排除评级的转换将从示例中删除。例如,如果NR的评级必须被排除在外,任何过渡NR的而且NR的被排除在样本之外。花在……上的总时间NR的(或任何其他排除的评级)也被删除。

参考文献

[1] Hanson,S.,Schuermann。“违约概率的置信区间。”银行业杂志。Vol. 30(8), Elsevier, 2006年8月,pp. 2281-2301。

[2] Löffler, G., P. N. Posch。基于Excel和VBA的信用风险建模。英格兰西苏塞克斯:威利金融,2007。

[3]时间,T。《信贷迁移矩阵》,E. Melnick, B. Everitt编,定量风险分析和评估百科全书。威利,2008年。

介绍了R2010b