моделировать

Моделируйте миграции кредита с помощью объекта creditMigrationCopula

Синтаксис

cmc = simulate(cmc,NumScenarios)
cmc = simulate(___,Name,Value)

Описание

пример

cmc = simulate(cmc,NumScenarios) выполняет полную симуляцию сценариев кредита и вычисляет изменения в значении из-за изменений кредитного рейтинга для портфеля, заданного в объекте creditMigrationCopula. Для получения дополнительной информации об использовании объекта creditMigrationCopula смотрите creditMigrationCopula.

Примечание

При создании объекта creditMigrationCopula можно установить свойство 'UseParallel', если у вас есть Parallel Computing Toolbox™. Если свойство 'UseParallel' установлено, параллельная обработка используется, чтобы вычислить simulate.

пример

cmc = simulate(___,Name,Value) добавляют дополнительные аргументы пары "имя-значение" для (Copula, DegreesOfFreedom и BlockSize).

Примеры

свернуть все

Загрузите сохраненные данные о портфеле.

load CreditMigrationData.mat;

Масштабируйте цены облигаций для положений портфеля для каждой связи.

migrationValues = migrationPrices .* numBonds;

Создайте объект creditMigrationCopula с четырьмя факторными моделями с помощью creditMigrationCopula.

cmc = creditMigrationCopula(migrationValues,ratings,transMat,...
lgd,weights,'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;

Используйте функцию simulate, чтобы моделировать 100 000 сценариев. После использования моделируют, можно затем использовать portfolioRisk, riskContribution, confidenceBands, и getScenarios с обновленным объектом creditMigrationCopula.

cmc = simulate(cmc,1e5)
cmc = 
  creditMigrationCopula with properties:

            Portfolio: [250x5 table]
    FactorCorrelation: [4x4 double]
         RatingLabels: [8x1 string]
     TransitionMatrix: [8x8 double]
             VaRLevel: 0.9900
          UseParallel: 0
      PortfolioValues: [1x100000 double]

Можно использовать функцию riskContribution с объектом creditMigrationCopula сгенерировать таблицу Contributions риска.

Contributions = riskContribution(cmc);
Contributions(1:10,:)
ans=10×5 table
    ID      EL       Std       VaR       CVaR 
    __    ______    ______    ______    ______

     1    16.397    40.977    192.11    254.12
     2    9.1179    21.417      83.3    134.31
     3    5.7873    24.887    99.573    236.84
     4    6.4235     57.71    192.06    338.23
     5    22.739    72.371    289.12    544.69
     6    10.776    111.12    327.96    704.29
     7    2.9046     88.98    324.91     551.4
     8    12.152    42.123    189.38    265.97
     9    2.1567    4.0432    3.2359    26.112
    10    1.7495    2.4593    11.003    15.933

Входные параметры

свернуть все

Объект creditMigrationCopula, полученный из creditMigrationCopula.

Для получения дополнительной информации об объекте creditMigrationCopula смотрите creditMigrationCopula.

Количество сценариев, чтобы моделировать, заданный как неотрицательное целое число. Сценарии обрабатываются в блоках, чтобы сохранить ресурсы машины.

Типы данных: double

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: cmc = simulate(cmc,NumScenarios,'Copula','t','DegreesOfFreedom',5,'BlockSize',1000)

Тип связки, заданной как пара, разделенная запятой, состоящая из 'Copula' и вектора символов или строки. Возможные значения:

  • 'Gaussian' — Гауссова связка

  • T связка t со степенями свободы, заданными при помощи DegreesOfFreedom.

Типы данных: char | string

Степени свободы для связки t, заданной как пара, разделенная запятой, состоящая из 'DegreesOfFreedom' и неотрицательного числового значения. Если Copula установлен в 'Gaussian', параметр DegreesOfFreedom проигнорирован.

Типы данных: double

Количество сценариев к процессу в каждой итерации, заданной как пара, разделенная запятой, состоящая из 'BlockSize' и неотрицательного числового значения. Настройте BlockSize для производительности, особенно при выполнении больших симуляций.

Если незаданный, значения по умолчанию BlockSize к значению приблизительно 1 000 000 / (Номер контрагентов). Например, если существует 100 контрагентов, BlockSize по умолчанию является 10 000 сценариев.

Типы данных: double

Выходные аргументы

свернуть все

Объект creditMigrationCopula, возвращенный как обновленный объект, который заполняется с моделируемым PortfolioValues.

Для получения дополнительной информации об объекте creditMigrationCopula смотрите creditMigrationCopula.

Примечание

В функции simulate Weights (заданный при использовании creditMigrationCopula) преобразовывается, чтобы гарантировать, что скрытые переменные имеют среднее значение 0 и отклонение 1.

Ссылки

[1] Crouhy, M., Galai, D. и Марк, R. “Сравнительный анализ Текущих Моделей Кредитного риска”. Журнал Банковского дела и Финансов. Издание 24, 2000, стр 59–117.

[2] Gordy, M. “Сравнительная Анатомия Моделей Кредитного риска”. Журнал Банковского дела и Финансов. Издание 24, 2000, стр 119–149.

[3] Gupton, G., палец, C. и Bhatia, M. “CreditMetrics – технический документ”. J. P. Morgan, Нью-Йорк, 1997.

[4] Jorion, P. Финансовое руководство менеджера по рискам. 6-й выпуск. Финансы Вайли, 2011.

[5] Löffler, G. и Posch, P. Credit Risk Modeling Using Excel и VBA. Финансы Вайли, 2007.

[6] Макнейл, A., Фрэй, R. и Embrechts, P. Количественное управление рисками: Концепции, методы и инструменты. Издательство Принстонского университета, 2005.

Введенный в R2017a