exponenta event banner

esbacktestbysim

Создать esbacktestbysim объект для запуска на основе моделирования набора контрольных тестов ожидаемого дефицита (ES) Acerbi и Szekely

Описание

Общий рабочий процесс:

  1. Загрузите или создайте данные для анализа обратного тестирования ES.

  2. Создание esbacktestbysim объект. Дополнительные сведения см. в разделе Создание esbacktestbysim.

  3. Используйте summary создание сводного отчета для данных о количестве наблюдений и количестве отказов.

  4. Используйте runtests для одновременного выполнения всех тестов.

  5. Для получения дополнительной информации о тестах выполните следующие отдельные тесты:

    • conditional - Условное испытание Acerbi-Szekely (2014)

    • unconditional - Безусловное испытание Acerbi-Szekely (2014)

    • quantile - Квантовый тест Acerbi-Szekely (2014)

    • minBiasAbsolute - Минимально предвзятый абсолютный тест Acerbi-Szekely (2017)

    • minBiasRelative - Минимально смещенный относительный тест Acerbi-Szekely (2017)

    Дополнительные сведения см. в разделе Обзор ожидаемого обратного тестирования дефицита.

Создание

Описание

пример

ebts = esbacktestbysim(PortfolioData,VaRData,ESData,DistributionName) создает esbacktestbysim (ebts) и моделирует сценарии результатов портфеля для вычисления критических значений для этих тестов:

ebts объект имеет следующие свойства:

  • PortfolioData - NumRowsоколо-1 числовой массив, содержащий копию PortfolioData

  • ВаРДата - NumRowsоколо-NumVaRs числовой массив, содержащий копию VaRData

  • ESData - NumRowsоколо-NumVaRs числовой массив, содержащий копию ESData

  • Распределение - структура, содержащая информацию о модели, включая имя распределения модели и параметры распределения. Например, для нормального распределения, Distribution имеет поля 'Name', 'Mean', и 'StandardDeviation', со значениями, установленными на соответствующие входы.

  • Идентификатор проекта - строка, содержащая PortfolioID

  • ВаРИД - 1около-NumVaRs строковый вектор, содержащий VaRIDs для соответствующих столбцов в VaRData

  • VaRLevel - 1около-NumVaRs числовой массив, содержащий VaRLevels для соответствующих столбцов в VaRData.

Примечание

  • Необходимые входные аргументы для PortfolioData, VaRData, и ESData все они должны состоять из одних и тех же единиц. Эти аргументы могут быть выражены как прибыль или как прибыль и убытки. Нет проверок в esbacktestbysim объект относительно единиц этих аргументов.

  • Если отсутствуют значения (NaNs) в PortfolioData, VaRData, ESData, или Distribution данные параметров, строка данных отбрасывается перед применением тестов. Поэтому для моделей с разным количеством отсутствующих значений сообщается разное количество наблюдений. Сообщенное число наблюдений равно исходному количеству строк минус количество отсутствующих значений. Чтобы определить, есть ли отброшенные строки, используйте 'Missing' в столбце summary отчет.

пример

ebts = esbacktestbysim(___,Name,Value) Задает свойства, используя пары имя-значение и любой из аргументов предыдущего синтаксиса. Например, ebts = esbacktestbysim(PortfolioData,VaRData,ESData,DistributionName,'VaRID','TotalVaR','VaRLevel',.99). Можно указать несколько пар имя-значение.

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

развернуть все

Данные о результатах портфеля, указанные как NumRowsоколо-1 числовой массив, NumRowsоколо-1 таблица или NumRowsоколо-1 график с числовым столбцом, содержащим данные о результатах портфеля. PortfolioData входной аргумент задает свойство TransferentData.

Примечание

PortfolioData данные должны быть в тех же единицах, что и VaRData и ESData. Нет проверок в esbacktestbysim объект относительно единиц портфеля, данных VaR и ES. PortfolioData, VaRData, и ESData может быть выражено как прибыль или как прибыль и убытки.

Типы данных: double | table | timetable

Данные о стоимостном риске (VaR), указанные как NumRowsоколо-NumVaRs числовой массив, NumRowsоколо-NumVaRs таблица или NumRowsоколо-NumVaRs расписание с числовыми столбцами. VaRData входной аргумент задает свойство VaRData.

Отрицательный VaRData допустимы значения. Однако отрицательные значения VaR указывают на высокодоходный портфель, который не может потерять деньги при заданном уровне доверия VaR. Наихудший сценарий на данном доверительном уровне все еще является прибылью.

Примечание

VaRData должны быть в тех же единицах, что и PortfolioData и ESData. Нет проверок в esbacktestbysim объект относительно единиц портфеля, данных VaR и ES. VaRData, PortfolioData, и ESData может быть выражено как прибыль или как прибыль и убытки.

Типы данных: double | table | timetable

Ожидаемые данные о дефиците, указанные как NumRowsоколо-NumVaRs положительный числовой массив, NumRowsоколо-NumVaRs таблица, или NumRowsоколо-NumVaRs расписание с положительными числовыми столбцами, содержащими данные ES. ESData входной аргумент задает свойство ESData.

Примечание

ESData данные должны быть в тех же единицах, что и PortfolioData и VaRData. Нет проверок в esbacktestbysim объект относительно единиц портфеля, данных VaR и ES. ESData, PortfolioData, и VaRData может быть выражено как прибыль или как прибыль и убытки.

Типы данных: double | table | timetable

Имя дистрибутива, указанное как строка со значением normal или t. DistributionName входной аргумент задает 'Name' в поле свойства Distribution.

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

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

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: ebts = esbacktestbysim(PortfolioData,VaRData,ESData,DistributionName,'VaRID','TotalVaR','VaRLevel',.99)

Пользовательский идентификатор для PortfolioData вход, указанный как пара, разделенная запятыми, состоящая из 'PortfolioID' и символьный вектор или строку. PortfolioID Аргумент пары «имя-значение» задает свойство «Идентификатор ошибки».

Если PortfolioData - числовой массив, значение по умолчанию для PortfolioID является 'Portfolio'. Если PortfolioData является таблицей, PortfolioID по умолчанию устанавливается соответствующее имя переменной в таблице.

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

Идентификатор VaR для VaRData столбцы, указанные как разделенная запятыми пара, состоящая из 'VaRID' и символьный вектор, массив ячеек символьных векторов, строку или строковый массив. Несколько VaRIDs указаны с помощью 1около-NumVaRs (или NumVaRsоколо-1) массив ячеек символьных векторов или строковый массив с пользовательскими идентификаторами для VaRData столбцы. Сингл VaRID идентифицирует VaRData столбец и соответствующий ESData столбец. VaRID аргумент пары имя-значение задает свойство VaRID.

Если NumVaRs = 1, значение по умолчанию для VaRID является 'VaR'. Если NumVaRs > 1, значением по умолчанию является 'VaR1', 'VaR2'и так далее. Если VaRData является таблицей, 'VaRID' по умолчанию устанавливается соответствующее имя переменной в таблице.

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

Уровень достоверности VaR, заданный как скаляр с разделенной запятыми парой, состоящей из 'VaRLevel' и числовое значение между 0 и 1 или 1около-NumVaRs (или NumVaRsоколо-1) числовой массив с числовым значением между 0 и 1. VaRLevel аргумент пары имя-значение задает свойство VaRLevel.

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

Означает нормальное распределение, указанное как пара, разделенная запятыми, состоящая из 'Mean' и числовое значение или NumRowsоколо-1 числовой массив. Mean аргумент пары имя-значение задает 'Mean' в поле свойства Distribution.

Примечание

Вы устанавливаете Mean аргумент пары имя-значение, только если DistributionName входной аргумент указан как normal.

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

Стандартное отклонение для нормального распределения, указанное как пара, разделенная запятыми, состоящая из 'StandardDeviation' и положительное числовое значение или NumRowsоколо-1 массив. StandardDeviation аргумент пары имя-значение задает 'StandardDeviation' в поле свойства Distribution.

Примечание

Вы устанавливаете StandardDeviation аргумент пары имя-значение, только если DistributionName входной аргумент указан как normal.

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

Степени свободы для t распределение, указанное как пара, разделенная запятыми, состоящая из 'DegreesOfFreedom' и целочисленное значение ≥ 3. DegreesOfFreedom аргумент пары имя-значение задает 'DegreesOfFreedom' в поле свойства Distribution.

Примечание

DegreesOfFreedom аргумент пары «имя-значение» устанавливается только в том случае, если DistributionName входной аргумент указан как t. Значение для DegreesOfFreedom требуется, когда значение DistributionName является t.

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

Параметры расположения для t распределение, указанное как пара, разделенная запятыми, состоящая из 'Location' и числовое значение или NumRowsоколо-1 массив. Location аргумент пары имя-значение задает'Location' в поле свойства Distribution.

Примечание

Location аргумент пары «имя-значение» устанавливается только в том случае, если DistributionName входной аргумент указан как t.

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

Параметры масштаба для t распределение, указанное как пара, разделенная запятыми, состоящая из 'Scale' и положительное числовое значение или NumRowsоколо-1 массив. Scale аргумент пары имя-значение задает 'Scale' в поле свойства Distribution.

Примечание

Scale аргумент пары «имя-значение» устанавливается только в том случае, если DistributionName входной аргумент указан как t.

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

Указывает, выполняется ли моделирование для статистической значимости при создании esbacktestbysim объект, указанный как логический скаляр с разделенной запятыми парой, состоящей из 'Simulate' и значение true или false.

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

Свойства

развернуть все

Портфельные данные для анализа обратного тестирования ES, указанные как NumRowsоколо-1 числовой массив, содержащий копию данных портфеля.

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

Данные VaR для анализа обратного тестирования ES, указанные как NumRowsоколо-NumVaRs числовой массив, содержащий копию данных VaR.

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

Ожидаемые данные о дефиците для анализа обратного тестирования ES, указанные как NumRowsоколо-NumVaRs числовой массив, содержащий копию ESData.

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

Информация о распределении, включая имя распределения и связанные параметры распределения, заданная как структура.

Для normal распределение, Distribution структура имеет поля 'Name' (установить в значение normal), 'Mean', и 'StandardDeviation', со значениями, установленными на соответствующие входы.

Для t распределение, Distribution структура имеет поля 'Name' (установить в значение t), 'DegreesOfFreedom', 'Location', и 'Scale', со значениями, установленными на соответствующие входы.

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

Идентификатор портфеля, указанный как строка.

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

Идентификатор VaR, указанный как 1около-NumVaRs строковый массив, содержащий идентификаторы VaR для соответствующих столбцов в VaRData.

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

Уровень VaR, указанный как 1около-NumVaRs числовой массив со значениями между 0 и 1 содержит уровни VaR для соответствующих столбцов в VaRData.

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

esbacktestbysim СобственностьЗадание или изменение свойства из командной строки с помощью esbacktestbysim Изменение свойства с помощью точечной нотации
PortfolioDataДаНет
VaRDataДаНет
ESDataДаНет
DistributionДаНет
PortfolioIDДаДа
VaRIDДаДа
VaRLevelДаДа

Функции объекта

summaryБазовый отчет об ожидаемом дефиците (ES) по сбоям и степени серьезности
runtestsВыполнить все ожидаемые обратные тесты дефицита (ES) для esbacktestbysim объект
conditionalУсловный ожидаемый дефицит (ES) от Acerbi и Szekely
unconditionalБезусловный ожидаемый дефицит от Acerbi и Szekely
quantileОжидаемый дефицит квантиля (ES) по Acerbi и Szekely
minBiasRelativeМинимально смещенный относительный тест на обратный тест ожидаемого дефицита (ES) Acerbi-Szekely
minBiasAbsoluteМинимально смещенный абсолютный тест на обратный тест ожидаемого дефицита (ES) Acerbi-Szekely
simulateМоделирование статистики тестирования ожидаемого дефицита (ES)

Примеры

свернуть все

esbacktestbysim принимает данные о результатах портфеля, соответствующие данные о стоимости и риске (VaR), данные об ожидаемом дефиците (ES), а также информацию о распределении и возвращает esbacktestbysim объект.

Создание esbacktestbysim и отобразить Distribution собственность.

load ESBacktestBySimData
rng('default'); % for reproducibility
ebts = esbacktestbysim(Returns,VaR,ES,"t",...
       'DegreesOfFreedom',10,...
       'Location',Mu,...
       'Scale',Sigma,...
       'PortfolioID',"S&P",...
       'VaRID',["t(10) 95%","t(10) 97.5%","t(10) 99%"],...
       'VaRLevel',VaRLevel)
ebts = 
  esbacktestbysim with properties:

    PortfolioData: [1966x1 double]
          VaRData: [1966x3 double]
           ESData: [1966x3 double]
     Distribution: [1x1 struct]
      PortfolioID: "S&P"
            VaRID: ["t(10) 95%"    "t(10) 97.5%"    "t(10) 99%"]
         VaRLevel: [0.9500 0.9750 0.9900]

ebts.Distribution
ans = struct with fields:
                Name: "t"
    DegreesOfFreedom: 10
            Location: 0
               Scale: [1966x1 double]

ebts, esbacktestbysim объект, содержит копию данных данного портфеля (PortfolioData свойство), данные VaR (VaRData свойство), данные ЭС (ESData) собственность, и данное Distribution информация. Объект также содержит все комбинации идентификатора портфеля, идентификатора VaR и уровня VaR для тестирования (PortfolioID, VaRID, и VaRLevel свойства).

Запустите тесты с помощью ebts объект.

TestResults = runtests(ebts)
TestResults=3×8 table
    PortfolioID        VaRID        VaRLevel    Conditional    Unconditional    Quantile    MinBiasAbsolute    MinBiasRelative
    ___________    _____________    ________    ___________    _____________    ________    _______________    _______________

       "S&P"       "t(10) 95%"        0.95        reject          accept         reject         accept             reject     
       "S&P"       "t(10) 97.5%"     0.975        reject          reject         reject         reject             reject     
       "S&P"       "t(10) 99%"        0.99        reject          reject         reject         reject             reject     

Изменить PortfolioID с использованием точечной нотации. Дополнительные сведения о создании esbacktestbysim объект, см. esbacktestbysim.

ebts.PortfolioID = 'S&P, 1996-2003'
ebts = 
  esbacktestbysim with properties:

    PortfolioData: [1966x1 double]
          VaRData: [1966x3 double]
           ESData: [1966x3 double]
     Distribution: [1x1 struct]
      PortfolioID: "S&P, 1996-2003"
            VaRID: ["t(10) 95%"    "t(10) 97.5%"    "t(10) 99%"]
         VaRLevel: [0.9500 0.9750 0.9900]

Запустить все тесты с использованием обновленного esbacktestbysim объект.

runtests(ebts)
ans=3×8 table
      PortfolioID           VaRID        VaRLevel    Conditional    Unconditional    Quantile    MinBiasAbsolute    MinBiasRelative
    ________________    _____________    ________    ___________    _____________    ________    _______________    _______________

    "S&P, 1996-2003"    "t(10) 95%"        0.95        reject          accept         reject         accept             reject     
    "S&P, 1996-2003"    "t(10) 97.5%"     0.975        reject          reject         reject         reject             reject     
    "S&P, 1996-2003"    "t(10) 99%"        0.99        reject          reject         reject         reject             reject     

Ссылки

[1] Ацерби, С. и Б. Секели. Обратное тестирование ожидаемого дефицита. MSCI Inc. Декабрь 2014 года.

[2] Базельский комитет по банковскому надзору. Минимальные требования к капиталу для рыночного риска. Январь 2016 (https://www.bis.org/bcbs/publ/d352.pdf).

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