esbacktest

Создание esbacktest объект, чтобы запустить набор основанных на таблице ожидаемых backtests (ES) от Acerbi и Szekely

Описание

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

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

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

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

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

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

    • unconditionalNormal - Безусловный ES backtest, предполагающий, что распределение возвращаемых значений нормально

    • unconditionalT - Безусловный ES backtest, предполагающий, что распределение возвратов t

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

Создание

Описание

пример

ebt = esbacktest(PortfolioData,VaRData,ESData) создает esbacktest (ebt) объект с использованием данных о результатах портфеля и соответствующих данных о значении риска (VaR) и ES. The ebt объект имеет следующие свойства:

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

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

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

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

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

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

Примечание

  • Результаты теста из esbacktest только приблизительны, так как никакая информация о распределении не передается как вход. Когда информация о распределении доступна, используйте esbacktestbysim; в частности, рекомендуется минимально смещенный тест (см. minBiasAbsolute и minBiasRelative).

  • Симуляция критических значений принимает среднее значение 0 для базового распределения. Критические значения чувствительны к среднему значению базового распределения. Если предсказание ES основано на распределениях со средствами, значительно удаленными от 0, критические значения в esbacktest будет ненадежным.

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

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

  • Поскольку критические значения предварительно сжаты, поддерживаются только определенные количества наблюдений, уровни VaR и уровни тестирования.

    • Количество наблюдений (количество строк в данных минус количество отсутствующих значений) должно быть от 200 до 5000.

    • The VaRLevel входной параметр должен быть между 0.90 и 0.999; значение по умолчанию является 0.95.

    • The TestLevel (тестовый доверительный уровень) входной параметр для runtests, unconditionalNormal, и unconditionalT функции должны быть между 0.5 и 0.9999; значение по умолчанию является 0.95.

пример

ebt = esbacktest(___,Name,Value) устанавливает Свойства используя пары "имя-значение" и любой из аргументов в предыдущем синтаксисе. Для примера, ebt = esbacktest(PortfolioData,VaRData,ESData,'VaRID','TotalVaR','VaRLevel',.999). Можно задать несколько пары "имя-значение" как необязательные аргументы пары "имя-значение".

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

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

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

Примечание

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

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

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

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

Примечание

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

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

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

Примечание

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

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

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

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

Пример: ebt = esbacktest(PortfolioData,VaRData,ESData,'VaRID','TotalVaR','VaRLevel',.999)

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

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

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

Идентификатор VaR для VaRData столбцы, заданные как разделенная разделенными запятой парами, состоящая из 'VaRID' и вектор символов, массив ячеек из векторов символов, строковых или строковых массивов.

Несколько VaRID значения задаются с помощью 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.90 и 0.999 или 1-by- NumVaRs (или NumVaRs-by- 1) числовой массив. The VaRLevel аргумент пары "имя-значение" устанавливает свойство VaRLevel.

Примечание

При указании VarLevel > 99%, убедитесь, что количество наблюдений достаточно для создания соответствующего критического значения. В сложение при запуске теста используйте TestLevel > 95%. Для очень высоких уровней VaR (для примера, VarLevel > 99%) и относительно небольшое количество наблюдений, вероятность отказов VaR очень мала, и распределение тестовой статистики имеет дискретный характер, что приводит к неожиданной немонотонности вокруг некоторых критических значений. Большее количество наблюдений и более высокие уровни тестового доверия сохраняют ожидаемое поведение критических значений, когда VarLevel очень высоко.

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

esbacktest СвойствоУстановите или измените свойство из командной строки с помощью esbacktest Изменение свойства с использованием записи через точку
PortfolioDataДаНет
VaRDataДаНет
ESDataДаНет
PortfolioIDДаДа
VaRIDДаДа
VaRLevelДаДа

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

summaryОсновной отчет об ожидаемом дефиците (ES) по отказам и серьезности
runtestsЗапустите все ожидаемые бэктесты дефицита (ES) для esbacktest объект
unconditionalNormalБезусловный ожидаемый бэктест дефицита (ES) компании Acerbi-Szekely с критическими значениями для нормальных распределений
unconditionalTБезусловный ожидаемый бэктест дефицита (ES) компанией Acerbi-Szekely с критическими значениями для распределений t

Примеры

свернуть все

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

Создайте esbacktest объект.

 load ESBacktestData
 ebt = esbacktest(Returns,VaRModel1,ESModel1,'VaRLevel',VaRLevel)
ebt = 
  esbacktest with properties:

    PortfolioData: [1966x1 double]
          VaRData: [1966x1 double]
           ESData: [1966x1 double]
      PortfolioID: "Portfolio"
            VaRID: "VaR"
         VaRLevel: 0.9750

ebt, а esbacktest , содержит копию данных портфеля (PortfolioData свойство), данные VaR (VaRData свойство), и данные по ES (ESData) свойство. Объект также содержит все комбинации идентификатора портфеля, идентификатора VaR и уровня VaR, которые будут протестированы (PortfolioID, VaRID, и VaRLevel свойства).

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

 runtests(ebt)
ans=1×5 table
    PortfolioID    VaRID    VaRLevel    UnconditionalNormal    UnconditionalT
    ___________    _____    ________    ___________________    ______________

    "Portfolio"    "VaR"     0.975            reject               reject    

Измените PortfolioID и VaRID свойства с использованием записи через точку. Для получения дополнительной информации о создании esbacktest объект, см. esbacktest.

ebt.PortfolioID = 'S&P';
ebt.VaRID = 'Normal at 97.5%';
disp(ebt)
  esbacktest with properties:

    PortfolioData: [1966x1 double]
          VaRData: [1966x1 double]
           ESData: [1966x1 double]
      PortfolioID: "S&P"
            VaRID: "Normal at 97.5%"
         VaRLevel: 0.9750

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

 runtests(ebt)
ans=1×5 table
    PortfolioID          VaRID          VaRLevel    UnconditionalNormal    UnconditionalT
    ___________    _________________    ________    ___________________    ______________

       "S&P"       "Normal at 97.5%"     0.975            reject               reject    

Ссылки

[1] Acerbi, C. и B. Szekely. Обратная проверка ожидаемого дефицита. MSCI Inc. Декабрь 2014 года.

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

Введенный в R2017b