esbacktestbysim

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

Описание

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

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

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

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

  4. Используйте runtests функция для запуска всех тестов сразу.

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

    • conditional - Условное испытание Ачерби-Секели (2014)

    • unconditional - Безусловное испытание Ачерби-Секели (2014 год)

    • quantile - Тест на количество Acerbi-Szekely (2014)

    • minBiasAbsolute - Минимально предвзятое абсолютное испытание Ачерби-Секели (2017)

    • minBiasRelative - Минимально смещенное относительное испытание Ачерби-Секели (2017)

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

Создание

Описание

пример

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

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

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

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

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

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

  • PortfolioID - Строка, содержащая PortfolioID

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

  • VaRLevel - 1-by- 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-by- 1 числовой массив, NumRows-by- 1 таблица, или NumRows-by- 1 timetable с числовым столбцом, содержащим данные о результатах портфеля. The PortfolioData входной параметр устанавливает свойство PortfolioData.

Примечание

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

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

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

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

Примечание

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

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

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

Примечание

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

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

Имя распределения, заданное как строка со значением normal или t. The 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' и вектор символов или строка. The PortfolioID аргумент пары "имя-значение" устанавливает свойство PortfolioID.

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

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

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

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

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

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

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

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

Примечание

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

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

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

Примечание

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

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

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

Примечание

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

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

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

Примечание

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

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

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

Примечание

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

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

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

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

Свойства

расширить все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Уровень VaR, заданный как 1-by- 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 свойство), данные ES (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] Acerbi, C. и B. Szekely. Обратная проверка ожидаемого дефицита. MSCI Inc. Декабрь 2014 года.

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

Введенный в R2017b