没有模型分布信息的预期不足(ES)回测工作流
这个示例展示了预期的缺陷(ES)回溯测试工作流和ES回溯测试工具的使用。的esbacktest
类支持两种测试——无条件正常测试和无条件测试t——基于Acerbi-Szekely的无条件检验统计量(也称为Acerbi-Szekely二次检验)。这些检验对无条件检验统计量使用预模拟的临界值,并对正态情况假设为正态分布t3个自由度的分布t的情况。
步骤1。加载ES回测数据。
使用ESBacktestData.mat
文件将数据加载到工作区中。这个例子使用返回
数字数组。这个数组表示股本回报率,VaRModel1
,VaRModel2
,VaRModel3
,以及在97.5%置信水平下对应的VaR数据,分别由三种不同的模型生成。预计短缺数据包含在ESModel1
,ESModel2
,ESModel3
.在本例中,用于生成预期短缺数据的三个模型分布是正常的(模型1),t有10个自由度(模型2),并且t5个自由度(模型3)。然而,在本例中不需要此分布信息,因为esbacktest
对象不需要它。
负载(“ESBacktestData”)谁
名称大小字节分类属性数据1966x13 223945时间表日期1966x1 15728 datetime ESModel1 1966x1 15728 double ESModel2 1966x1 15728 double ESModel3 1966x1 15728 double返回1966x1 15728 double VaRLevel 1x1 8 double VaRModel1 1966x1 15728 double VaRModel2 1966x1 15728 double VaRModel3 1966x1 15728 double
步骤2。生成一个ES回测图。
使用情节
函数来可视化ES回测数据。这种类型的可视化是执行ES回测分析时常见的第一步。仅为说明目的,请将特定模型的回报以及VaR和ES可视化。
由此得出的图表显示了1997年、1998年和2000年的一些严重违规行为。1996年违反情事的绝对数目看来较小,但相对于该期间的波动而言,这些违反情事也很严重。对于无条件检验,违规的大小和违规的数量会产生差异,因为测试统计量平均超过预期失败次数。如果期望的数量很小,但有几次违规,测试的有效严重程度就会更大。2002年就是一个例子,有很多VaR失败。
图;情节(日期、返回日期,-VaRModel1、日期、-ESModel1)传说(“返回”,“VaR”,“西文”)标题(“测试数据,模型1,VaR水平95%”网格)在
步骤3。创建一个esbacktest
对象。
创建一个esbacktest
对象使用esbacktest
.
负载ESBacktestDataebt = esbacktest(返回,[VaRModel1 VaRModel2 VaRModel3],[ESModel1 ESModel2 ESModel3],...“PortfolioID”,“标普”,“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
列显示了违反VaR期间ES与VaR的平均比率。
S = summary(ebt);disp (S)
PortfolioID VaRID VaRLevel ObservedLevel ExpectedSeverity ObservedSeverity观察故障预计比失踪 ___________ ________ ________ _____________ ________________ ________________ ____________ ________ ________ ______ _______ " 标普”“Model1”57 49.15 - 1.1597 0.975 0.97101 1.1928 1.4221 1966 0”标普”“Model2“1.119 49.15 0.975 0.97202 1.2652 1.4134 1966 55 0“标普”“Model3”1.119 49.15 0.975 0.97202 1.37 1.4146 1966 55 0
第5步。运行所有测试的报告。
运行所有测试并仅就接受或拒绝结果生成报告。
T =运行测试(ebt);disp (t)
PortfolioID VaRID VaRLevel UnconditionalNormal UnconditionalT ___________ ________ ________ ___________________ ______________ " 标普”“Model1”0.975拒绝拒绝“标普”“Model2“0.975拒绝接受“标普”“Model3“0.975接受接受
步骤6。运行无条件正常测试。
为无条件正常测试运行单独测试。
t =无条件正常(ebt);disp (t)
TestLevel PortfolioID VaRID VaRLevel UnconditionalNormal PValue TestStatistic CriticalValue观察 ___________ ________ ________ ___________________ _________ _____________ _____________ ____________ _________ " 标普”“Model1“拒绝1966 0.0054099 -0.38265 -0.2403 0.975 0.95”标普”“Model2“拒绝1966 0.044967 -0.25011 -0.2403 0.975 0.95”标普Model3”接受0.149 -0.15551 -0.2403 0.975 0.95 1966
步骤7。运行无条件t测试。
运行无条件的个人测试t测试。
t = unconditionalT(ebt);disp (t)
TestLevel PortfolioID VaRID VaRLevel UnconditionalT PValue TestStatistic CriticalValue观察 ___________ ________ ________ ______________ ________ _____________ _____________ ____________ _________ " 标普”“Model1“拒绝1966 0.018566 -0.38265 -0.28242 0.975 0.95”标普”“Model2“0.975接受0.073292 -0.25011 -0.28242 1966 0.95”标普Model3”接受0.17932 -0.15551 -0.28242 0.975 0.95 1966
步骤8。运行特定年份的ES回测。
选择一个特定的日历年,并仅通过创建esbacktest
对象,并只传递感兴趣的数据。
年份:1996年;年份(日期)==年份;PortID = [“标普”,num2str(年)];PortfolioData =回报率(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(光大通信)
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 =运行测试(ebt);disp (tt)
PortfolioID VaRID VaRLevel UnconditionalNormal UnconditionalT ___________ ________ ________ ___________________ ______________ " 标普1996”“Model1“0.975拒绝拒绝”标准普尔,1996年“Model2“0.975拒绝拒绝”标准普尔,1996“Model3 0.975拒绝接受
另请参阅
esbacktest
|总结
|runtests
|unconditionalNormal
|unconditionalT