主要内容

creditMigrationCopula

模拟分析了多因素信用迁移评级模型

描述

creditMigrationCopula将具有一组交易对手的信用敏感头寸组合作为输入,并对信用评级迁移进行基于copula的多因素模拟。对每个情景计算交易对手信用评级迁移和随后的投资组合价值变化,并报告几种风险度量。

creditMigrationCopula将每个交易对手与一个随机变量联系起来,这个随机变量被称为潜在变量,它根据一个评级转移矩阵映射到信用评级。对于每一种情况,根据已实现的交易对手的信用评级,重新计算每个交易对手的头寸值。这些潜在变量是通过使用一个多因素模型来模拟的,其中系统性信贷波动是由一系列风险因素建模的。这些因素可以基于工业部门(如金融或航空航天),地理区域(如美国或欧元区),或任何其他潜在的信贷风险驱动因素。每个交易对手都被赋予了一系列权重,这些权重决定了他们对每个潜在信贷因素的敏感性。

模型的输入是:

  • migrationValues-每一信用评级对应的交易对手头寸值。

  • 评级-每个交易对手的当前信用评级。

  • 转移矩阵-信用评级转移概率矩阵。

  • 乐金显示器-损失给定默认(1−复苏).

  • 权重-因素和特殊模型权重

在您创建creditMigrationCopula对象(如创建creditMigrationCopula属性),用模拟函数,利用多因素模型模拟信贷迁移。然后,对于详细的报告,使用以下功能:portfolioRiskriskContributionconfidenceBands,getScenarios

创建

描述

例子

cmc= creditMigrationCopula (migrationValues评级转移矩阵乐金显示器权重创建一个creditMigrationCopula对象。的creditMigrationCopula对象具有以下属性:

  • 投资组合

    包含以下变量的表格:

    • ID-识别每个交易对手的ID

    • migrationValues-每一信用评级的交易对手头寸值

    • 评级-每个交易对手的当前信用评级

    • 乐金显示器-默认损失

    • 权重-交易对手的因素和特殊权重

  • FactorCorrelation

    因子相关矩阵,aNumFactors——- - - - - -NumFactors定义风险因素之间相关性的矩阵。

  • RatingLabels

    所有可能的信用评级的集合。

  • 转移矩阵

    交易对手从初始信用评级转变为最终信用评级的概率矩阵。行表示初始信用评级,列表示最终评级。第一行包含了从最高评级开始的交易对手的概率(例如AAA),下面一行保存了从默认状态开始的交易对手的数据。下面一行可以省略,表示违约方仍未违约。每一行的和必须为1.中定义的信用评级的顺序必须与行和列的顺序匹配RatingLabels参数。最后一列给出了每种评级的违约概率。如果未指定,则默认评级标签为:“AAA级”、“AA”、“”、“BBB”,“BB”、“B”,“CCC”、“D”

  • VaRLevel

    风险值水平,用于报告VaR和CVaR。

  • PortfolioValues

    一个NumScenarios——- - - - - -1投资组合价值的向量。属性之前,此属性为空模拟函数。

例子

cmc= creditMigrationCopula (___名称,值属性使用前面语法中的名称-值对和任何参数。例如,cmc = creditMigrationCopula (migrationValues,评级转移矩阵,乐金显示器,重量、VaRLevel, 0.99).您可以指定多个名称-值对作为可选的名称-值对参数。

输入参数

全部展开

每一信用评级的交易对手头寸值,具体为aNumCounterparties——- - - - - -NumRatings矩阵。每一行保存着每一个信用评级的交易对手的可能值。最后一个评级必须是违约评级。的migrationValues输入设置投资组合财产。

的最后一列的默认评级的迁移值migrationValuespre-recovery输入)。这是一个参考值(例如,面值、当前评级的远期价值,或其他)乘以模拟期间的回收率,以获得发生违约时的资产价值。恢复速率定义为1-乐金显示器,在那里乐金显示器使用乐金显示器输入参数。的乐金显示器是一个常数还是一个从beta分布中抽取的随机数乐金显示器输入)。

请注意

creditMigrationCopula模型模拟投资组合价值在固定时期(例如,一年)的变化。的migrationValues转移矩阵必须针对特定的时间段。

数据类型:

每个交易对手的当前信用评级,指定为aNumCounterparties——- - - - - -1表示初始信用状态的向量。所有有效信用评级及其顺序的集合是通过使用可选的RatingLabels参数。的评级输入设置投资组合财产。

如果RatingLabels时,默认评级标签为:“AAA级”、“AA”、“”、“BBB”,“BB”、“B”,“CCC”、“D”

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

信用评级转移概率,指定为aNumRatings——- - - - - -NumRatings矩阵。这个矩阵包含了交易对手从某一特定信用评级开始,在某个固定时间内转变为其他信用评级的概率。每一行包含特定开始信用评级的所有转移概率。的转移矩阵输入设置转移矩阵财产。

最上面的一行表示从最高评级开始的交易对手的概率(例如AAA).底部的一行包含了从默认状态开始的交易对手的概率。下面一行可以省略,表示违约方仍未违约。每一行的和必须为1

中定义的信用评级的顺序必须与行和列的顺序匹配RatingLabels参数。最后一列给出了每种评级的违约概率。如果RatingLabels时,默认评级标签为:“AAA级”、“AA”、“”、“BBB”,“BB”、“B”,“CCC”、“D”

请注意

creditMigrationCopula模型模拟投资组合价值在固定时期(例如,一年)的变化。的migrationValues转移矩阵必须针对特定的时间段。

数据类型:

损失给定的违约,指定为NumCounterparties——- - - - - -1元素来自的数字向量0通过1,表示当交易对手违约时损失的风险敞口的比例。乐金显示器定义为(1−复苏).例如,一个乐金显示器0.6意味着在发生违约的情况下,恢复率为40%。的乐金显示器输入设置投资组合财产。

乐金显示器也可以指定为NumCounterparties——- - - - - -2矩阵,其中第一列是LGD均值,第二列是LGD标准差。然后,在违约情况下,LGD值随机从beta分布与提供的参数违约对手。

LGD均值和标准偏差的有效开距为:

  • 对于第一列,平均值在01

  • 对于第二列,LGD的标准差为0sqrt (m * (1 - m))

数据类型:

因子和特质权重,指定为NumCounterparties————(NumFactors+1)数组。每行包含特定交易对手的因子权重。每一列包含一个潜在风险因素的权重。最后一列权重包含每个交易对手的特殊风险权重。特殊权重代表了公司特有的信用风险。每个交易方(即每行)的权重之和必须为1.的权重输入设置投资组合财产。

例如,如果交易对手的信用等级由60%的美国人,20%的欧洲人和20%的异类组成,那么权重向量是(0.6 0.2 0.2)

数据类型:

名称-值对的观点

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

例子:cmc = creditMigrationCopula (migrationValues,评级转移矩阵,乐金显示器,重量、VaRLevel, 0.99)

交易对手的用户定义id,指定为逗号分隔的对,包括“ID”和一个NumCounterparties——- - - - - -1向量的ID每个交易对手方都有一个S。ID用于识别投资组合表和风险贡献表。ID必须是数字、字符串数组或字符向量的单元格数组。的ID名称-值对参数设置投资组合财产。

如果未指定的,ID默认为数字向量(1: NumCounterparties).

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

风险级别的值(用于报告)VaRCVaR),指定为逗号分隔的对,由“VaRLevel”和中间的数字01.的VaRLevel名称-值对参数设置VaRLevel财产。

数据类型:

因子相关矩阵,指定为逗号分隔对,由“FactorCorrelation”和一个NumFactors——- - - - - -NumFactors定义风险因素之间相关性的矩阵。的FactorCorrelation名称-值对参数设置FactorCorrelation财产。

如果没有指定,因子相关矩阵默认为单位矩阵,这意味着这些因子不相关。

数据类型:

所有可能的信用评级的集合,指定为逗号分隔的对,由“RatingLabels”和一个NumRatings——- - - - - -1向量,其中第一个元素是最高信用评级,最后一个元素是默认状态。的RatingLabels名称-值对参数设置RatingLabels财产。

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

标志来对模拟使用并行处理,指定为逗号分隔的对,由“UseParallel”和的标量值真正的.的UseParallel名称-值对参数设置UseParallel财产。

请注意

“UseParallel”属性只能在创建creditMigrationCopula对象,如果您有并行计算工具箱™。一旦“UseParallel”属性设置时,使用并行处理riskContribution模拟

数据类型:逻辑

属性

全部展开

详细的信用组合,指定为MATLAB®表,其中包含作为输入传入的所有投资组合数据creditMigrationCopula对象。

投资组合表中每个构造函数输入都有一个列(MigrationValues评级乐金显示器权重,ID).表格中的每一行代表一个交易对手。

例如:

ID MigrationValues Rating LGD Weights __ _______________ ____________ ____________ 1 [1x8 double] "A" 0.6509 0.5 0.5 2 [1x8 double] "BBB" 0.8283 0.55 0.45 3 [1x8 double] "AA" 0.6041 0.7 0.3 4 [1x8 double] "BB" 0.6509 0.55 0.45 5 [1x8 double] "BBB" 0.4966 0.75 0.25

数据类型:表格

信用因素的关联矩阵,记为NumFactors——- - - - - -NumFactors矩阵。使用可选的名称-值对参数指定相关矩阵“FactorCorrelation”当您创建creditMigrationCopula对象。

数据类型:

的所有可能的信用评级的集合,使用可选的名称-值输入参数指定“RatingLabels”当您创建creditMigrationCopula对象。

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

交易对手从开始信用评级转换到最终信用评级的概率,由输入参数指定的转移矩阵当您创建creditMigrationCopula对象。行表示初始信用评级,列表示最终评级。最上面一行对应的是最高的评级。

最上面的一行表示从最高评级开始的交易对手的概率(例如AAA),下面一行保存了从默认状态开始的交易对手的数据。下面一行可以省略,表示违约方仍未违约。每一行的和必须为1

中定义的信用评级的顺序必须与行和列的顺序匹配RatingLabels参数。最后一列给出了每种评级的违约概率。如果RatingLabels时,默认评级标签为:“AAA级”、“AA”、“”、“BBB”,“BB”、“B”,“CCC”、“D”

数据类型:

在报告VaR和CVaR时使用的风险级别值,使用可选的名称-值对参数指定“VaRLevel”当您创建creditMigrationCopula对象。

数据类型:

投资组合值,指定为a1——- - - - - -NumScenarios向量。在创建了creditMigrationCopula对象,PortfolioValues属性是空的。在调用模拟函数,PortfolioValues使用每个场景上的投资组合值填充。

数据类型:

标志为模拟使用并行处理,使用可选的名称-值对参数指定“UseParallel”当你创建creditMigrationCopula对象。的UseParallel名称-值对参数设置UseParallel财产。

请注意

“UseParallel”属性只能在创建creditMigrationCopula对象,如果您有并行计算工具箱。一旦“UseParallel”属性设置时,使用并行处理riskContribution模拟

数据类型:逻辑

对象的功能

模拟 使用creditMigrationCopula对象
portfolioRisk 生成投资组合级别的风险度量
riskContribution 为投资组合中的每个交易对手产生风险贡献
confidenceBands 置信区间的乐队
getScenarios 交易对手的场景

例子

全部折叠

加载保存的投资组合数据。

负载CreditMigrationData.mat

为每一种债券按投资组合仓位调整债券价格。

migrationValues = migrationPrices .* numBonds;

创建一个creditMigrationCopula对象与四因素模型使用creditMigrationCopula

cmc = creditMigrationCopula (transMat migrationValues,评级,...乐金显示器,重量,“FactorCorrelation”factorCorr)
cmc = creditMigrationCopula with properties: Portfolio: [250x5 table] FactorCorrelation: [4x4 double] RatingLabels: [8x1 string] TransitionMatrix: [8x8 double] VaRLevel: 0.9500 UseParallel: 0 PortfolioValues: []

设置VaRLevel到99%。

cmc。VaRLevel = 0.99;

投资组合属性包含关于迁移值、评级、lgd和权重的信息。

头(cmc.Portfolio)
ans =8×5表ID MigrationValues评级乐金显示器的重量  __ _______________ ______ ______ ___________________________________ 1 1×8双”“0.6509 0 0 0 0.5 0.5 - 2 1×8双" BBB " 0.8283 0.45 0.55 0 0 0 3 1×8双“AA”0.6041 0 0.7 0.3 0 0 4 1×8双“BB”0.6509 0 0.55 0.45 0 0 5 1×8双" BBB " 0.4966 0 0 0.75 0.25 0 6 1×8双“BB”0.8283 0 0 0 0.65 - 0.357 1 × 8双“BB”0.6041 0 0 0 0.65 0.35 8 1 × 8双“BB”0.4873 0.5 0 0 0 0.5

迁移值中的列与评级顺序相同,默认评级位于最后一列。

例如,这些是第一个交易对手的迁移值。请注意default的值高于一些非默认评级。这是因为默认评级的迁移值是一个参考值(例如,面值、当前评级的远期值或其他),该参考值乘以模拟期间的回收率,以获得在发生违约时资产的价值。恢复速率为1-乐金显示器乐金显示器输入creditMigrationCopula是一个常数乐金显示器价值(乐金显示器输入有一列)。时,回收率为一个随机量乐金显示器输入creditMigrationCopula指定为beta分布的平均值和标准偏差(乐金显示器输入有两列)。

栏(cmc.Portfolio.MigrationValues (1:)) xticklabels (cmc.RatingLabels)标题(“第一家公司的移民价值观”

图中包含一个轴对象。标题为“为第一公司迁移值”的axes对象包含一个类型为bar的对象。

使用模拟函数模拟100,000个场景,然后使用portfolioRisk函数。

cmc =模拟(cmc, 1 e5)
cmc = creditMigrationCopula with properties: Portfolio: [250x5 table] FactorCorrelation: [4x4 double] RatingLabels: [8x1 string] TransitionMatrix: [8x8 double] VaRLevel: 0.9900 UseParallel: 0 PortfolioValues: [2.0082e+06 1.9950e+06 1.9933e+06 2.0009e+06…]
portRisk = portfolioRisk (cmc)
portRisk =1×4表EL性病VaR CVaR  ______ _____ _____ _____ 4515.9 12963 57176 83975

查看投资组合价值的直方图。

h =直方图(cmc.PortfolioValues, 125);标题(“投资组合价值的分布”);

图中包含一个轴对象。标题为“Portfolio Values Distribution”的轴对象包含一个类型直方图对象。

加载保存的投资组合数据。

负载CreditMigrationData.mat

为每一种债券按投资组合仓位调整债券价格。

migrationValues = migrationPrices .* numBonds;

创建一个creditMigrationCopula对象与四因素模型使用creditMigrationCopula

cmc = creditMigrationCopula (transMat migrationValues,评级,...乐金显示器,重量,“FactorCorrelation”factorCorr)
cmc = creditMigrationCopula with properties: Portfolio: [250x5 table] FactorCorrelation: [4x4 double] RatingLabels: [8x1 string] TransitionMatrix: [8x8 double] VaRLevel: 0.9500 UseParallel: 0 PortfolioValues: []

设置VaRLevel到99%。

cmc。VaRLevel = 0.99;

使用模拟函数模拟100,000个场景,然后通过使用portfolioRisk函数。

cmc =模拟(cmc, 1 e5)
cmc = creditMigrationCopula with properties: Portfolio: [250x5 table] FactorCorrelation: [4x4 double] RatingLabels: [8x1 string] TransitionMatrix: [8x8 double] VaRLevel: 0.9900 UseParallel: 0 PortfolioValues: [2.0082e+06 1.9950e+06 1.9933e+06 2.0009e+06…]
portRisk = portfolioRisk (cmc)
portRisk =1×4表EL性病VaR CVaR  ______ _____ _____ _____ 4515.9 12963 57176 83975

查看投资组合价值的直方图。

h =直方图(cmc.PortfolioValues, 125);标题(“投资组合价值的分布”);

图中包含一个轴对象。标题为“Portfolio Values Distribution”的轴对象包含一个类型直方图对象。

如果所有交易对手保持当前的信用评级,则将投资组合的价值叠加。

CurrentRatingValue = portRisk。EL +的意思(cmc.PortfolioValues);持有情节([CurrentRatingValue CurrentRatingValue],[0马克斯(h.Values)],...“线宽”2);网格

图中包含一个轴对象。标题为“Portfolio Values Distribution”的坐标轴对象包含两个类型为直方图、直线的对象。

参考文献

[1] Crouhy, M., Galai, D., and Mark, R. <当前信用风险模型的比较分析>。银行和金融杂志。第24卷,2000年,59-117页。

[2] Gordy, M.,《信用风险模型的比较分析》银行和金融杂志。第24卷,2000年,119-149页。

Gupton, G., Finger, C., Bhatia, M." CreditMetrics -技术文档"J. P.摩根,纽约,1997。

[4] Jorion, P。财务风险经理手册。第六版。威利金融,2011。

[5] Löffler, G.和Posch, P.基于Excel和VBA的信用风险建模。威利金融,2007。

McNeil, A., Frey, R., Embrechts, P.。量化风险管理:概念、技术和工具。普林斯顿大学出版社,2005。

介绍了R2017a