Условный ожидаемый дефицит (ES) бэктест Acerbi и Szekely
запускает условный бэктест ES Acerbi-Szekely (2014). Условный тест имеет два базовых теста, предварительный бэктест Value-at-Risk (VaR), который задается с помощью аргумента пары "имя-значение" TestResults = conditional(ebts)VaRTest, и автономный условный ES backtest. A 'reject' результат на любом базовом тесте создает 'reject' результат условного теста.
[ добавляет необязательные аргументы пары "имя-значение" для TestResults,SimTestStatistic] = conditional(ebts,Name,Value)TestLevel и VaRTest.
Создайте esbacktestbysim объект.
load ESBacktestBySimData rng('default'); % for reproducibility ebts = esbacktestbysim(Returns,VaR,ES,"t",... 'DegreesOfFreedom',10,... 'Location',Mu,... 'Scale',Sigma,... 'PortfolioID',"S&P",... 'VaRID',["t(10) 95%","t(10) 97.5%","t(10) 99%"],... 'VaRLevel',VaRLevel);
Сгенерируйте отчет об условном тесте ES.
TestResults = conditional(ebts)
TestResults=3×14 table
PortfolioID VaRID VaRLevel Conditional ConditionalOnly PValue TestStatistic CriticalValue VaRTest VaRTestResult VaRTestPValue Observations Scenarios TestLevel
___________ _____________ ________ ___________ _______________ ______ _____________ _____________ _______ _____________ _____________ ____________ _________ _________
"S&P" "t(10) 95%" 0.95 reject reject 0 -0.092302 -0.043941 "pof" accept 0.70347 1966 1000 0.95
"S&P" "t(10) 97.5%" 0.975 reject reject 0.001 -0.11714 -0.052575 "pof" accept 0.40682 1966 1000 0.95
"S&P" "t(10) 99%" 0.99 reject reject 0.003 -0.14608 -0.085433 "pof" accept 0.11536 1966 1000 0.95
ebts — esbacktestbysim объектesbacktestbysim (ebts) объект, который содержит копию данных (PortfolioData, VarData, ESData, и Distribution свойства) и все комбинации тестируемых уровней VaR, VaR и VaR. Для получения дополнительной информации о создании esbacktestbysim объект, см. esbacktestbysim.
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
[TestResults,SimTestStatistic] = conditional(ebts,'TestLevel',0.99)'TestLevel' - Тестовый уровень доверия0.95
(по умолчанию) | числовое значение между 0 и 1Уровень тестового доверия, заданный как разделенная запятой пара, состоящий из 'TestLevel' и числовое значение между 0 и 1.
Типы данных: double
'VaRTest' - Индикатор для обратного теста VaR'pof'
(по умолчанию) | вектор со значением 'tl', 'bin', 'pof', 'tuff', 'cc', 'cci', 'tbf', или 'tbfi' | строковые массивы со значением 'tl', 'bin', 'pof', 'tuff', 'cc', 'cci', 'tbf', или 'tbfi'Индикатор для обратного теста VaR, заданный как разделенная разделенными запятой парами, состоящая из 'VaRTest' и вектор символов или строковые массивы со значением 'tl', 'bin', 'pof', 'tuff', 'cc', 'cci', 'tbf', или 'tbfi'. Для получения дополнительной информации об этих бэктестах VaR смотрите varbacktest.
Примечание
Заданное VaRTest выполняется с использованием той же TestLevel значение, заданное с помощью TestLevel аргумент пары "имя-значение" в conditional функция.
Типы данных: char | string
TestResults - РезультатыРезультаты, возвращенные как таблица, где строки соответствуют всем комбинациям тестируемых уровней идентификатора портфеля, идентификатора VaR и VaR. Столбцы соответствуют следующей информации:
'PortfolioID' - Идентификатор портфеля для данных.
'VaRID' - идентификатор VaR для каждого из предоставленных столбцов данных VaR.
'VaRLevel' - уровень VaR для соответствующего столбца данных VaR.
'Conditional'- Категориальный массив с категориями 'accept' и 'reject', указывающий на результат условного теста. Этот результат объединяет результаты 'ConditionalOnly' столбец и тест VaR.
'ConditionalOnly'- Категориальный массив с категориями 'accept' и 'reject', указывающий результат автономного условного теста, независимо от результата теста VaR.
'PValue'- P -значение автономного условного теста (для 'ConditionalOnly' столбец).
'TestStatistic'- Условная тестовая статистика (для 'ConditionalOnly' столбец).
'CriticalValue'- Критическое значение для условного теста.
'VaRTest'- Строковые массивы, указывающий выбранный тест VaR, заданный VaRTest аргумент.
'VaRTestResult'- Категориальный массив с 'accept' категорий и 'reject' указывает результат VaR-теста, выбранного с 'VaRTest' аргумент.
'VaRTestPValue'- значение P для обратного теста VaR. Если тест светофора (tl) используется, это 1 минус тест светофора 'Probability' значение столбца.
'Observations'- Количество наблюдений.
'Scenarios'- Количество сценариев, моделируемых для получения p значений.
'TestLevel'- Тестируйте доверительный уровень.
Примечание
Для результатов тестирования условия 'accept' и 'reject' используются для удобства. Технически тест не принимает модель; скорее тест не может его отклонить.
SimTestStatistic - Моделируемые значения тестовой статистикиМоделируемые значения тестовой статистики, возвращенные как NumVaRs-by- NumScenarios числовой массив.
Тест conditional также известен как первый тест Acerbi-Szekely.
Условная тестовая статистика основана на условной зависимости
где
Xt - результат портфеля, то есть возврат портфеля или прибыль и убыток портфеля за период t.
VaRt - предполагаемая VaR для периода t.
ESt - предполагаемая нехватка средств за период t.
Количество отказов определяется как
где
N количество периодов в тестовом окне (t = 1, …, N).
It - индикатор отказа VaR на t периода со значением 1 если Xt < -VaR, и 0 в противном случае.
Условная тестовая статистика определяется как:
Условный тест имеет две части. backtest VaR, заданный VaRTest Аргумент пары "имя-значение" необходимо выполнить для количества отказов (NumFailures), и выполняется автономный условный тест для условной тестовой статистики ZCond. Условный тест принимает модель только, когда тест VaR и автономный условный тест принимают модель.
При условии, что распределительные допущения верны, ожидаемое значение тестовой статистики Zcond, принимая, по крайней мере, один отказ VaR, 0.
Это выражается как:
Отрицательные значения тестовой статистики указывают на недооценку риска. Условный тест является односторонним тестом, который отклоняется, когда есть доказательства того, что модель недооценивает риск (технические детали нулевых и альтернативных гипотез см. в Acerbi-Szekely, 2014). Условный тест отклоняет модель, когда p -значение меньше 1 минус уровень доверия теста.
Для получения дополнительной информации о шагах моделирования тестовой статистики и деталях для расчета p значений и критических значений, см. simulate.
Условная тестовая статистика не определена (NaN) при отсутствии отказов VaR в данных (NumFailures = 0).
Значение p устанавливается равным NaN в этих случаях и результатом теста является 'accept', потому что нет никаких доказательств недооценки риска.
Точно так же моделируемая условная тестовая статистика не определена (NaN) для сценариев без отказов VaR. Эти сценарии отбрасываются для оценки значимости теста. При условии, что распределительные допущения верны, , поэтому значимость вычисляется по сценариям с по крайней мере одним отказом (NumFailures > 0). Количество сценариев, представленных conditional тестовая функция - это количество сценариев с по крайней мере одним отказом VaR. Количество представленных сценариев может быть меньше, чем общее количество моделируемых сценариев. Критическое значение оценивается по сценариям с по крайней мере одним отказом VaR. Если моделируемая тестовая статистика NaN для всех сценариев критическое значение устанавливается равным NaN. Сценарии без отказов более вероятны, так как ожидаемое количество отказов NpVaR становится меньше.
[1] Acerbi, C. and Szekely, B. Backtesting Ожидаемый дефицит. MSCI Inc. Декабрь 2014 года.
bin | cc | cci | esbacktestbyde | esbacktestbysim | minBiasAbsolute | minBiasRelative | pof | quantile | runtests | simulate | summary | tbf | tbfi | tl | tuff | unconditional
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.