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 и VaR. Для получения дополнительной информации о создании varbacktest объект, см. varbacktest.

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

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

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

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

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

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

свернуть все

pof результаты тестирования, возвращенные как таблица, где строки соответствуют всем комбинациям тестируемых идентификаторов портфеля, VaR ID и 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) теста

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

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

Алгоритмы

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

LRatioPOF=2log((1pVaR)NxpVaRx(1xN)Nx(xN)x)=2[(Nx)log(N(1pVaR)Nx)+xlog(NpVaRx)]

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

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

и

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

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

PValuePOF=1F(LRatioPOF)

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

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

PValuePOF<F(TestLevel)

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

Ссылки

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

Введенный в R2016b