exponenta event banner

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

Моделирование миграции кредитов с использованием creditMigrationCopula объект

Описание

пример

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

Примечание

При создании creditMigrationCopula объект, можно установить 'UseParallel' при наличии 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    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 функция, Weights (указывается при использовании creditMigrationCopula) преобразуются, чтобы гарантировать, что скрытые переменные имеют среднее значение 0 и расхождение 1.

Ссылки

[1] Кроуи, М., Галаи, Д. и Марк, Р. «Сравнительный анализ текущих моделей кредитного риска». Журнал банковских и финансовых операций. Том 24, 2000, стр. 59-117.

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

[3] Гуптон, Г., Фингер, С. и Бхатия, М. «CreditMetrics - Технический документ». J. P. Морган, Нью-Йорк, 1997.

[4] Йорион, P. Руководство по управлению финансовыми рисками. 6-е издание. Уайли Финанс, 2011.

[5] Лёффлер, Г. и Пош, П. Моделирование кредитных рисков с использованием Excel и VBA. Уайли Финанс, 2007.

[6] Макнил, А., Фрей, Р. и Эмбрехтс, П. Количественное управление рисками: концепции, методики и инструменты. Princeton University Press, 2005.

Представлен в R2017a