интервал

Биномиальный тест для подверженного риску значения (VaR) backtesting

Синтаксис

TestResults = bin(vbt)
TestResults = bin(vbt,Name,Value)

Описание

пример

TestResults = bin(vbt) генерирует биномиальные результаты испытаний для подверженного риску значения (VaR) backtesting.

пример

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

Сгенерируйте результаты испытаний bin.

TestResults = bin(vbt)
TestResults=1×9 table
    PortfolioID    VaRID    VaRLevel     Bin      ZScoreBin    PValueBin    Observations    Failures    TestLevel
    ___________    _____    ________    ______    _________    _________    ____________    ________    _________

    "Portfolio"    "VaR"      0.95      accept     0.68905      0.24539         1043           57         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]

Сгенерируйте результаты испытаний bin с помощью дополнительного аргумента TestLevel.

TestResults = bin(vbt,'TestLevel',0.90)
TestResults=6×9 table
    PortfolioID        VaRID         VaRLevel     Bin      ZScoreBin    PValueBin     Observations    Failures    TestLevel
    ___________    ______________    ________    ______    _________    __________    ____________    ________    _________

     "Equity"      "Normal95"          0.95      accept     0.68905        0.24539        1043           57          0.9   
     "Equity"      "Normal99"          0.99      reject      2.0446       0.020448        1043           17          0.9   
     "Equity"      "Historical95"      0.95      accept      0.9732        0.16523        1043           59          0.9   
     "Equity"      "Historical99"      0.99      accept     0.48858        0.31257        1043           12          0.9   
     "Equity"      "EWMA95"            0.95      accept      0.9732        0.16523        1043           59          0.9   
     "Equity"      "EWMA99"            0.99      reject      3.6006     0.00015875        1043           22          0.9   

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

свернуть все

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

свернуть все

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

  • 'PortfolioID' — ID портфеля для определенных данных

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

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

  • 'Bin' — Категориальный массив с категориями accept и reject, которые указывают на результат теста bin

  • 'ZScoreBin' — Z-счет количества отказов

  • 'PValueBin' — P-значение теста bin

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

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

  • 'TestLevel' — Протестируйте доверительный уровень.

Примечание

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

Больше о

свернуть все

Биномиальный тест (интервал)

Функция bin выполняет биномиальный тест, чтобы оценить, если количество отказов сопоставимо с доверительным уровнем VaR.

Биномиальный тест основан на нормальном приближении к биномиальному распределению.

Алгоритмы

Результат биномиального теста основан на нормальном приближении к биномиальному распределению. Предположим:

  • N является количеством наблюдений.

  • p = 1VaRLevel является вероятностью наблюдения отказа, если модель правильна.

  • x является количеством отказов.

Если отказы независимы, то количество отказов распределяется как биномиальное распределение с параметрами N и p. Ожидаемым количеством отказов является N *p, и стандартное отклонение количества отказов

Np(1p)

Тестовая статистическая величина для теста bin является z-счетом, заданным как:

ZScoreBin=(xNp)Np(1p)

Z-счет приблизительно следует за стандартным нормальным распределением. Это приближение не надежно для маленьких значений N или маленьких значений p, но для типичного использования в исследованиях VaR backtesting (N = 250 или намного больше, p в области значений 1-10%), приближение дает результаты в соответствии с другими тестами.

p - значение теста bin является вероятностью, что стандартное нормальное распределение превышает абсолютное значение z-счета

PValueBin=1F(|ZScoreBin|)

где F является стандартным нормальным кумулятивным распределением. Когда слишком мало отказов наблюдается относительно ожидаемых отказов, PValueBin является (приблизительно) вероятностью наблюдения что много отказов или меньше. Для слишком многих отказов это - (приблизительно) вероятность наблюдения что много отказов или больше.

Ссылки

[1] Jorion, P. Финансовое руководство менеджера по рискам. 6-й выпуск. Финансы Вайли, 2011.

Введенный в R2017b