exponenta event banner

Ожидаемый поток операций обратного тестирования дефицита (ES) без информации о распределении модели

В этом примере показан ожидаемый поток операций обратного тестирования дефицита (ES) и использование инструментов обратного тестирования ES. esbacktest класс поддерживает два теста - безусловный нормальный и безусловный t - которые основаны на статистике безусловного теста Acerbi-Szekely (также известной как второй тест Acerbi-Szekely). В этих тестах используются предопределившиеся критические значения для безусловной статистики теста с допущением нормального распределения для нормального случая и t-распределения с 3 степенями свободы для t-случая.

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

Используйте ESBacktestData.mat для загрузки данных в рабочую область. Этот пример работает с Returns числовой массив. Этот массив представляет доходность собственного капитала, VaRModel1, VaRModel2, и VaRModel3и соответствующие данные VaR при уровнях достоверности 97,5%, сгенерированные с помощью трех различных моделей. Ожидаемые данные о дефиците содержатся в ESModel1, ESModel2, и ESModel3. Три распределения модели, используемые для генерации ожидаемых данных дефицита в этом примере, являются нормальными (модель 1), t с 10 степенями свободы (модель 2) и t с 5 степенями свободы (модель 3). Однако эта информация о распределении не нужна в этом примере, поскольку esbacktest объект его не требует.

load('ESBacktestData')
whos
  Name              Size             Bytes  Class        Attributes

  Data           1966x13            223945  timetable              
  Dates          1966x1              15728  datetime               
  ESModel1       1966x1              15728  double                 
  ESModel2       1966x1              15728  double                 
  ESModel3       1966x1              15728  double                 
  Returns        1966x1              15728  double                 
  VaRLevel          1x1                  8  double                 
  VaRModel1      1966x1              15728  double                 
  VaRModel2      1966x1              15728  double                 
  VaRModel3      1966x1              15728  double                 

Шаг 2. Создайте график обратного тестирования ES.

Используйте plot функция для визуализации данных обратного тестирования ES. Этот тип визуализации является обычным первым шагом при выполнении анализа обратного тестирования ES. Только в целях иллюстрации визуализируйте результаты вместе с VaR и ES для конкретной модели.

Получившийся сюжет показывает некоторые крупные нарушения в 1997, 1998 и 2000 годах. Нарушения в 1996 году выглядят менее значительными в абсолютном выражении, однако по сравнению с волатильностью этого периода эти нарушения также являются существенными. Для безусловного теста величина нарушений и количество нарушений имеют значение, поскольку статистика теста усредняется по ожидаемому количеству отказов. Если ожидаемое число невелико, но есть несколько нарушений, эффективная тяжесть для теста больше. 2002 год - пример года с небольшими, но множеством отказов VaR.

figure;
plot(Dates,Returns,Dates,-VaRModel1,Dates,-ESModel1)
legend('Returns','VaR','ES')
title('Test Data, Model 1, VaR level 95%')
grid on

Figure contains an axes. The axes with title Test Data, Model 1, VaR level 95% contains 3 objects of type line. These objects represent Returns, VaR, ES.

Шаг 3. Создание esbacktest объект.

Создание esbacktest объект с использованием esbacktest.

load ESBacktestData
ebt = esbacktest(Returns,[VaRModel1 VaRModel2 VaRModel3],[ESModel1 ESModel2 ESModel3],...
    'PortfolioID',"S&P",'VaRID',["Model1","Model2","Model3"],'VaRLevel',VaRLevel)
ebt = 
  esbacktest with properties:

    PortfolioData: [1966x1 double]
          VaRData: [1966x3 double]
           ESData: [1966x3 double]
      PortfolioID: "S&P"
            VaRID: ["Model1"    "Model2"    "Model3"]
         VaRLevel: [0.9750 0.9750 0.9750]

Шаг 4. Создайте сводный отчет ES.

Создайте сводный отчет ES. ObservedSeverity в столбце показано среднее отношение потерь к VaR в периоды нарушения VaR. ExpectedSeverity в столбце показано среднее отношение ES к VaR для периодов нарушения VaR.

S = summary(ebt);   
disp(S)
    PortfolioID     VaRID      VaRLevel    ObservedLevel    ExpectedSeverity    ObservedSeverity    Observations    Failures    Expected    Ratio     Missing
    ___________    ________    ________    _____________    ________________    ________________    ____________    ________    ________    ______    _______

       "S&P"       "Model1"     0.975         0.97101            1.1928              1.4221             1966           57        49.15      1.1597       0   
       "S&P"       "Model2"     0.975         0.97202            1.2652              1.4134             1966           55        49.15       1.119       0   
       "S&P"       "Model3"     0.975         0.97202              1.37              1.4146             1966           55        49.15       1.119       0   

Шаг 5. Выполните отчет для всех тестов.

Выполнение всех тестов и создание отчета только по результатам принятия или отклонения.

t = runtests(ebt);
disp(t)
    PortfolioID     VaRID      VaRLevel    UnconditionalNormal    UnconditionalT
    ___________    ________    ________    ___________________    ______________

       "S&P"       "Model1"     0.975            reject               reject    
       "S&P"       "Model2"     0.975            reject               accept    
       "S&P"       "Model3"     0.975            accept               accept    

Шаг 6. Выполните безусловный обычный тест.

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

t = unconditionalNormal(ebt);
disp(t)
    PortfolioID     VaRID      VaRLevel    UnconditionalNormal     PValue      TestStatistic    CriticalValue    Observations    TestLevel
    ___________    ________    ________    ___________________    _________    _____________    _____________    ____________    _________

       "S&P"       "Model1"     0.975            reject           0.0054099      -0.38265          -0.2403           1966          0.95   
       "S&P"       "Model2"     0.975            reject            0.044967      -0.25011          -0.2403           1966          0.95   
       "S&P"       "Model3"     0.975            accept               0.149      -0.15551          -0.2403           1966          0.95   

Шаг 7. Запустите безусловный t-тест.

Выполните индивидуальный тест для безусловного t-теста.

t = unconditionalT(ebt);
disp(t)
    PortfolioID     VaRID      VaRLevel    UnconditionalT     PValue     TestStatistic    CriticalValue    Observations    TestLevel
    ___________    ________    ________    ______________    ________    _____________    _____________    ____________    _________

       "S&P"       "Model1"     0.975          reject        0.018566      -0.38265         -0.28242           1966          0.95   
       "S&P"       "Model2"     0.975          accept        0.073292      -0.25011         -0.28242           1966          0.95   
       "S&P"       "Model3"     0.975          accept         0.17932      -0.15551         -0.28242           1966          0.95   

Шаг 8. Выполните обратные тесты ES для определенного года.

Выберите определенный календарный год и выполните тесты для этого года, только создав esbacktest объект и передача только интересующих данных.

Year = 1996;
Ind = year(Dates)==Year;
PortID = ['S&P, ' num2str(Year)];
PortfolioData = Returns(Ind);
VaRData = [VaRModel1(Ind) VaRModel2(Ind) VaRModel3(Ind)];
ESData = [ESModel1(Ind) ESModel2(Ind) ESModel3(Ind)];
ebt = esbacktest(PortfolioData,VaRData,ESData,...
   'PortfolioID',PortID,'VaRID',["Model1","Model2","Model3"],'VaRLevel',VaRLevel);
disp(ebt)
  esbacktest with properties:

    PortfolioData: [262x1 double]
          VaRData: [262x3 double]
           ESData: [262x3 double]
      PortfolioID: "S&P, 1996"
            VaRID: ["Model1"    "Model2"    "Model3"]
         VaRLevel: [0.9750 0.9750 0.9750]
tt = runtests(ebt);
disp(tt)
    PortfolioID     VaRID      VaRLevel    UnconditionalNormal    UnconditionalT
    ___________    ________    ________    ___________________    ______________

    "S&P, 1996"    "Model1"     0.975            reject               reject    
    "S&P, 1996"    "Model2"     0.975            reject               reject    
    "S&P, 1996"    "Model3"     0.975            reject               accept    

См. также

| | | |

Связанные примеры

Подробнее