tuff

Время до первого теста на отказ для обратного тестирования значения риска (VaR)

Описание

пример

TestResults = tuff(vbt) генерирует тест времени до первого отказа (TUFF) для обратного тестирования значения риска (VaR).

пример

TestResults = tuff(vbt,Name,Value) добавляет необязательный аргумент пары "имя-значение" для TestLevel.

Примеры

свернуть все

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

load VaRBacktestData
vbt = varbacktest(EquityIndex,Normal95)
vbt = 
  varbacktest with properties:

    PortfolioData: [1043x1 double]
          VaRData: [1043x1 double]
      PortfolioID: "Portfolio"
            VaRID: "VaR"
         VaRLevel: 0.9500

Сгенерируйте tuff результаты тестирования.

TestResults = tuff(vbt)
TestResults=1×9 table
    PortfolioID    VaRID    VaRLevel     TUFF     LRatioTUFF    PValueTUFF    FirstFailure    Observations    TestLevel
    ___________    _____    ________    ______    __________    __________    ____________    ____________    _________

    "Portfolio"    "VaR"      0.95      accept      1.7354       0.18773           58             1043          0.95   

Используйте varbacktest конструктор с аргументами пары "имя-значение" для создания varbacktest объект.

load VaRBacktestData
    vbt = varbacktest(EquityIndex,...
       [Normal95 Normal99 Historical95 Historical99 EWMA95 EWMA99],...
       'PortfolioID','Equity',...
       'VaRID',{'Normal95' 'Normal99' 'Historical95' 'Historical99' 'EWMA95' 'EWMA99'},...
       'VaRLevel',[0.95 0.99 0.95 0.99 0.95 0.99])
vbt = 
  varbacktest with properties:

    PortfolioData: [1043x1 double]
          VaRData: [1043x6 double]
      PortfolioID: "Equity"
            VaRID: [1x6 string]
         VaRLevel: [0.9500 0.9900 0.9500 0.9900 0.9500 0.9900]

Сгенерируйте tuff результаты тестирования с использованием TestLevel необязательный вход.

TestResults = tuff(vbt,'TestLevel',0.90)
TestResults=6×9 table
    PortfolioID        VaRID         VaRLevel     TUFF     LRatioTUFF    PValueTUFF    FirstFailure    Observations    TestLevel
    ___________    ______________    ________    ______    __________    __________    ____________    ____________    _________

     "Equity"      "Normal95"          0.95      accept      1.7354       0.18773           58             1043           0.9   
     "Equity"      "Normal99"          0.99      accept     0.36686       0.54472          173             1043           0.9   
     "Equity"      "Historical95"      0.95      accept      1.5348        0.2154           55             1043           0.9   
     "Equity"      "Historical99"      0.99      accept     0.36686       0.54472          173             1043           0.9   
     "Equity"      "EWMA95"            0.95      accept     0.13304        0.7153           28             1043           0.9   
     "Equity"      "EWMA99"            0.99      accept     0.14596       0.70243          143             1043           0.9   

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

свернуть все

varbacktest (vbt), содержит копию данных (PortfolioData и VarData свойства) и все комбинации тестируемых уровней VaR, VaR и VaR. Для получения дополнительной информации о создании varbacktest объект, см. varbacktest.

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

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

Пример: TestResults = tuff(vbt,'TestLevel',0.99)

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

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

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

свернуть все

tuff результаты тестирования, возвращенные как таблица, где строки соответствуют всем комбинациям тестируемых уровней идентификатора портфеля, идентификатора VaR и VaR. Столбцы соответствуют следующей информации:

  • 'PortfolioID' - Идентификатор портфеля для данных

  • 'VaRID' - идентификатор VaR для каждого из предоставленных столбцов данных VaR

  • 'VaRLevel' - уровень VaR для соответствующего столбца данных VaR

  • 'TUFF' - Категориальный массив с категориями accept и reject которые указывают на результат tuff тест

  • 'LRatioTUFF' - Коэффициент вероятности tuff тест

  • 'PValueTUFF' - P-значение tuff тест

  • 'FirstFailure' - Количество периодов до первого отказа

  • 'Observations' - Количество наблюдений

  • 'TestLevel' - Тестовый уровень доверия

Примечание

Для tuff результаты тестирования, условия accept и reject используются для удобства, технически tuff тест не принимает модель. Скорее тест не может его отклонить.

Подробнее о

свернуть все

Тест времени до первого отказа (TUFF)

The tuff функция выполняет время Купица до первого теста отказа.

Тест TUFF является тестом коэффициента вероятности, предложенным Kupiec (1995), чтобы оценить, соответствует ли количество периодов до первого отказа доверительному уровню VaR.

Алгоритмы

Коэффициент правдоподобия (тестовая статистика) tuff тест дается

LRatioTUFF=2log(pVaR(1pVaR)n1(1n)(11n)n1)=2(log(pVaR)+(n1)log(1pVaR)+nlog(n)(n1)log(n1))

где n - количество периодов до первого отказа и pVaR = 1 − VaRLevel. По свойствам логарифма (если n = 1),

LRatioTUFF=2log(pVaR)

Это асимптотически распределено как хи-квадратное распределение с 1 степенью свободы.

Значение p tuff тест является вероятностью того, что распределение хи-квадрат с 1 степенью свободы превышает отношение правдоподобия LRatioTUFF

PValueTUFF=1F(LRatioTUFF)

где F - совокупное распределение хи-квадратной переменной с 1 степенью свободы.

Результатом теста является принятие, если

F(LRatioTUFF)<F(TestLevel)

и отклонить в противном случае, где F является совокупным распределением переменной хи-квадрат с 1 степенью свободы.

Если выборка не имеет отказов, тестовая статистика не определяется. Однако здесь выделяются два случая:

  • Если количество наблюдений достаточно велико, что независимо от того, когда произошел первый отказ, было бы слишком поздно пройти тест, то модель отклоняется. Технически это происходит, если количество N наблюдений больше 1/ pVaR (достаточно большой относительно доверительного уровня VaR) и если тест не проходит, когда n = N + 1 (самое раннее наблюдение за первым отказом VaR). В этом случае коэффициент правдоподобия указывается для n = N + 1и соответствующее p -значение.

  • Во всех других случаях невозможно с уверенностью сказать, будет ли результатом теста в конечном счете принято или отклонено модель. Существуют области значений возможных значений первого отказа, которые привели бы к принятию или отклонению модели. В этих случаях tuff функция принимает модель и сообщает о неопределенном (NaN) значения для отношения правдоподобия и p-значение.

Ссылки

[1] Kupiec, P. «Методы проверки точности моделей управления рисками». Журнал производных. Том 3, 1995, стр. 73-84.

Введенный в R2016b