simulate

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

Описание

пример

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 сценариев. После использования simulate можно использовать 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    15.521    41.153    238.72    279.18
     2      8.49    18.838    92.074    122.19
     3    6.0937    20.069    113.22    181.53
     4    6.6964    55.885    272.23    313.25
     5    23.583    73.905    360.32    573.39
     6    10.722    114.97    445.94    728.38
     7    1.8393    84.754    262.32    490.39
     8    11.711    39.768    175.84    253.29
     9    2.2154    4.4038    22.797    31.039
    10    1.7453    2.5545    9.8801    17.603

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

свернуть все

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

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

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

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

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. 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 function, the Weights (задается при использовании creditMigrationCopula) преобразуются, чтобы убедиться, что скрытые переменные имеют среднее значение 0 и отклонение 1.

Ссылки

[1] Crouhy, M., Galai, D. and Mark, R. «Сравнительный анализ текущих моделей кредитного риска». Журнал банковского дела и финансов. Том 24, 2000, стр. 59-117.

[2] Горди, М. «Сравнительная анатомия моделей кредитного риска». Журнал банковского дела и финансов. Том 24, 2000, стр. 119-149.

[3] Gupton, G., Finger, C., and Bhatia, M. «CreditMetrics - Technical Document». J. P. Морган, Нью-Йорк, 1997.

[4] Jorion, P. Financial Risk Manager Handbook. 6-е издание. Wiley Finance, 2011.

[5] Löffler, G. and Posch, P. Credit Risk Modeling Using Excel и VBA. Wiley Finance, 2007.

[6] McNeil, A., Frey, R. and Embrechts, P. Quantitative Risk Management: Концепции, Technologies, and Tools. Пресса Принстонского университета, 2005.

Введенный в R2017a
Для просмотра документации необходимо авторизоваться на сайте