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

Этот пример показывает ожидаемый рабочий процесс тестирования (ES) и использование инструментов обратного тестирования ES. The esbacktest класс поддерживает два теста - безусловный нормальный и безусловный t - которые основаны на безусловной тестовой статистике Ачерби-Секели (также известной как второй тест Ачерби-Секели). Эти тесты используют предварительно заданные критические значения для безусловной тестовой статистики с допущением нормального распределения для нормального случая и 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. The ObservedSeverity столбец показывает среднее отношение потерь к VaR за периоды, когда VaR нарушен. The 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    

См. также

| | | |

Похожие примеры

Подробнее о