exponenta event banner

pof

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

Описание

пример

TestResults = pof(vbt) генерирует долю теста отказов (POF) для обратного тестирования значения риска (VaR).

пример

TestResults = pof(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

Создать pof результаты испытаний.

TestResults = pof(vbt,'TestLevel',0.99)
TestResults=1×9 table
    PortfolioID    VaRID    VaRLevel     POF      LRatioPOF    PValuePOF    Observations    Failures    TestLevel
    ___________    _____    ________    ______    _________    _________    ____________    ________    _________

    "Portfolio"    "VaR"      0.95      accept     0.46147      0.49694         1043           57         0.99   

Используйте 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]

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

TestResults = pof(vbt,'TestLevel',0.90)
TestResults=6×9 table
    PortfolioID        VaRID         VaRLevel     POF      LRatioPOF    PValuePOF    Observations    Failures    TestLevel
    ___________    ______________    ________    ______    _________    _________    ____________    ________    _________

     "Equity"      "Normal95"          0.95      accept     0.46147       0.49694        1043           57          0.9   
     "Equity"      "Normal99"          0.99      reject      3.5118      0.060933        1043           17          0.9   
     "Equity"      "Historical95"      0.95      accept     0.91023       0.34005        1043           59          0.9   
     "Equity"      "Historical99"      0.99      accept     0.22768       0.63325        1043           12          0.9   
     "Equity"      "EWMA95"            0.95      accept     0.91023       0.34005        1043           59          0.9   
     "Equity"      "EWMA99"            0.99      reject      9.8298     0.0017171        1043           22          0.9   

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

свернуть все

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

  • 'LRatioPOF' - Отношение правдоподобия pof тест

  • 'PValuePOF' - P-значение pof тест

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

  • 'Failures' - Количество отказов

  • 'TestLevel' - Уровень достоверности теста

Примечание

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

Подробнее

свернуть все

Доля тестов на отказы (POF)

pof функция выполняет проверку доли отказов Kupiec.

Тест POF представляет собой тест отношения правдоподобия, предложенный Kupiec (1995) для оценки того, соответствует ли доля отказов (число отказов, деленное на количество наблюдений) уровню достоверности VaR.

Алгоритмы

Отношение правдоподобия (тестовая статистика) pof тест дается

LRatioPOF = 2log ((1 pVaR) N xpVaRx (1 xN) N x (xN) x) = 2 [(N − x) log (N (1 − pVaR) N − x) + xlog (NpVaRx)

где N - число наблюдений, x - число отказов, а pVaR = 1 − VaRLevel. Эта тестовая статистика асимптотически распределена как распределение хи-квадрат с 1 степенью свободы. По свойствам логарифма,

LRatioPOF = 2Nlog (1    pVar ), если x = 0.

и

LRatioPOF = 2Nlog (   pVar) , если x = N.

P-значение теста POF - это вероятность того, что распределение хи-квадрат с 1 степенью свободы превышает отношение правдоподобия LRatioPOF.

PValurePOF = 1 F (LRatioPOF)

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

Результат теста должен быть принят, если

PValurePOF < F (Test Level)

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

Ссылки

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

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