工作流程由杜和Escanciano期望损失(ES)回测

这个例子展示了使用Du-Escanciano (DE)预期不足(ES)反测试的工作流,并演示了一个固定的测试窗口,用于具有多个VaR级别的单一DE模型。

加载数据

中的数据ESBacktestDistributionData.mat文件有三个模型的返回值、VaR和ES数据以及分布信息:normal和t用5个自由度和t有10个自由度。这些数据跨越1996年1月至2003年7月的多年,包括1966年的全部观测结果。

本例使用t以10个自由度的分布和集中于一年的数据来说明大样本逼近的临界值方法与支持的模拟方法的区别金宝appesbacktestbyde类。

负载ESBacktestDistributionData.matTargetYear = 1998;%更改以测试其他日历年印第安纳州(日期)= = =年TargetYear;日期=日期(印第安纳州);回报收益=(印第安纳州);:VaR = T10VaR(印第安纳州);:ES = t10(印第安纳州);μ= 0;在这个数据集中,%总是0σ= T10Scale(印第安纳州);

图数据

的VaR级别绘制数据0.975

%绘制数据TargetVaRLevel = 0.975;VaRInd = VaRLevel = = TargetVaRLevel;FailureInd =返回< var (:, VaRInd);栏(日期,返回)情节(日期、var (:, VaRInd),日期,——(:,VaRInd))情节(日期(FailureInd),返回(FailureInd),“。”)保持传奇(“返回”,“VaR”,'ES','位置',“最佳”)标题([“测试数据,VaR级别”num2str (TargetVaRLevel * 100)“%”])ylabel (“返回”网格)

创建一个esbacktestbyde对象

创建一个esbacktestbyde对象来运行DE测试。注意,VaR和ES数据不是必需的输入,因为DE测试处理“映射的返回”或“等级”,并通过使用分布信息执行映射。然而,为了方便起见esbacktestbyde对象使用分布信息在内部计算VaR和ES数据,并将数据存储在VaRDataESData的属性esbacktestbyde对象。变量和ES数据仅用于估计报告的严重性比率总结函数,并且不用于任何反测试。

默认情况下,当您创建一个esbacktestbyde对象,一个模拟运行和大样本和模拟为基础的临界值是立即可用。虽然模拟处理是有效的,如果你确认大样本近似适合于所考虑的样本大小和VaR的水平,你可以把模拟关闭,以提高处理速度。要使用时关闭模拟,esbacktestbyde创建一个esbacktestbtde对象,设置名称-值对参数“模拟”

RNG('默认');%用于重现抽搐;ebtde = esbacktestbyde(回报,“T”,“DegreesOfFreedom”10'位置',亩,“规模”σ,“VaRLevel”VaRLevel,'PortfolioID',“标普”,“VaRID”,“t (10)”);TOC;
运行时间是0.148983秒。
disp (ebtde)
ESData: [261x3 double] ESData: [261x3 double]分布:[1x1 struct] PortfolioID: "S&P" VaRID: ["t(10)"“t (10)”“t (10)”[0.9500 0.9750 0.9900]
DISP(ebtde.Distribution)
姓名:“t”度:10位置:0标度:[261x1双]

摘要统计信息

使用总结提交一份关于故障和严重程度的基本预期不足报告。这是一样的总结输出为其他ES回溯测试类esbacktestesbacktestbysim。当esbacktestbyde对象,然后使用分布信息计算VaR和ES数据。此信息存储在VaRDataESData属性。的总结函数使用VaRDataESData属性来计算观察到的严重性比。

disp(总结(ebtde))
PortfolioID VaRID VaRLevel ObservedLevel ExpectedSeverity ObservedSeverity观察故障预计比失踪___________累积________ _________________ ___________ ___________ _______说______,“标普”“t (10)”0.95 0.94253 1.3288 1.5295 261 15 13.05 1.1494 0 "S&P" "t(10)" 0.975 0.96935 1.2652 1.5269 261 8 6.525 1.2261 0 "S&P" "t(10)" 0.99 0.98467 1.2169 1.5786 261 4 2.61 1.5326 0

运行测试

使用runtests对所有预期的不足(ES)进行回测esbacktestbyde对象。默认临界值的方法是“大样本”或渐近逼近。

disp (runtests (ebtde))
PortfolioID VaRID VaRLevel ConditionalDE UnconditionalDE ___________ _________ ________ _________________售予“标普”“t (10)”0.95 accept accept "S&P" "t(10)" 0.975 accept accept "S&P" "t(10)" 0.99 accept accept

用以下命令运行测试“模拟”或有限样本临界值。

disp (runtests (ebtde,“CriticalValueMethod”,“模拟”))
PortfolioID VaRID VaRLevel ConditionalDE UnconditionalDE ___________ _________ ________ _________________售予“标普”“t (10)”0.95 accept accept "S&P" "t(10)" 0.975 accept accept "S&P" "t(10)" 0.99 accept accept

runtests函数接受名称-值对参数“ShowDetails”其包括在输出额外的列。具体而言,该输出包括所使用的临界值的方法,滞后数量和测试的置信水平。

disp (runtests (ebtde,“CriticalValueMethod”,“模拟”,“ShowDetails”,真正的))
PortfolioID VARID VaRLevel ConditionalDE UnconditionalDE CriticalValueMethod NumLags TestLevel ___________ _______ ________ _____________ _______________ ___________________ _______ _________ “S&P” “T(10)” 0.95接受接受 “模拟” 1 0.95 “S&P” “T(10)” 0.975接受接受 “模拟” 1 0.95“S&P” “T(10)” 0.99接受接受 “模拟” 1 0.95

无条件DE测试详情

无条件DE试验评估基于所述观测到的平均尾损失的评估违反的严重程度和确定的严重性是否与模型假设是一致的。在所有相关的类支持的测试金宝appesbacktestesbacktestbysim也是严重程度测试。

要查看无条件DE测试细节,使用unconditionalDE函数。默认情况下,此函数使用“大样本”临界值的方法。

disp (unconditionalDE (ebtde))
PortfolioID VaRID VaRLevel UnconditionalDE PValue TestStatistic LowerCI UpperCI观察CriticalValueMethod MeanLS StdLS场景TestLevel ___________ _________ ________售予________ ________ _______ ___________________ ______ _________________ ____ ____替“标普”“t (10)”0.95 accept 0.31715 0.032842 0.0096343 0.040366 261 "large-sample" 0.025 0.0078398 NaN 0.95 "S&P" "t(10)" 0.975 accept 0.32497 0.018009 0.0015295 0.023471 261 "large-sample" 0.0125 0.0055973 NaN 0.95 "S&P" "t(10)" 0.99 accept 0.076391 0.011309 0 0.011978 261 "large-sample" 0.005 0.0035603 NaN 0.95

比较的结果“大样本”要模拟基于临界值,请使用名称-值对参数“CriticalValueMethod”。在这个例子中,两个临界值方法的结果,包括置信区间和p值,看起来相似。

disp (unconditionalDE (ebtde,“CriticalValueMethod”,“模拟”))
PortfolioID VaRID VaRLevel UnconditionalDE PValue TestStatistic LowerCI UpperCI观察CriticalValueMethod MeanLS StdLS场景TestLevel ___________ _________ ________ ________ _______ ___________________售予______ _________________ ____ _____ _____替“标普”“t (10)”0.95 accept 0.326 0.032842 0.010859 0.041709 261 "simulation" NaN NaN 1000 0.95 "S&P" "t(10)" 0.975 accept 0.336 0.018009 0.0032446 0.024657 261 "simulation" NaN NaN 1000 0.95 "S&P" "t(10)" 0.99 accept 0.126 0.011309 0 0.013311 261 "simulation" NaN NaN 1000 0.95

你可以想象“模拟”“大样本”来评估是否“大样本”对于考虑中的样本大小和VaR水平,近似是足够准确的。的unconditionalDE函数的作用是:返回“模拟”将统计数据作为可选输出进行测试。

在本例中,更高的VaR级别会导致变量之间明显的不匹配“大样本”“模拟”分布。然而,置信区间和p- 值是可比的。

%选择VaR级别TargetVaRLevel = 0.975;VaRInd = VaRLevel = = TargetVaRLevel;[~ s] = unconditionalDE (ebtde“CriticalValueMethod”,“模拟”);柱状图(s (VaRInd:)“归一化”,“pdf”)保持t = unconditionalDE (ebtde“CriticalValueMethod”,“大样本”);亩= t.MeanLS(VaRInd);西格玛= t.StdLS(VaRInd);MinValPlot =分钟(S(VaRInd,:)) -  0.001;MaxValPlot = MAX(S(VaRInd,:))+ 0.001;XLS = linspace(MinValPlot,MaxValPlot,101);pdfLS = normpdf(XLS,MU,Sigma公司);图(XLS,pdfLS)保持传奇({“模拟”,“大样本”}) Title = sprintf('UnconditionalDE Test Distribution\nVaR Level: %g%%,样本量= %d't.Observations VaRLevel (VaRInd) * 100 (VaRInd));标题(标题)

条件检验细节

条件DE检验评估尾部损失中是否存在自相关的证据。

虽然名字相似,有条件DE测试和条件测试支持金宝appesbacktestbysim质的不同测试。有条件的Acerbi - 塞克利测试支持金宝appesbacktestbysim测试ES的严重性,取决于模型是否通过VaR测试。Acerbi-Szekely条件测试是一种严重程度测试,可与in中支持的测试相媲美金宝appesbacktest,esbacktestbysim,unconditionalDE测试。

然而,条件DE测试esbacktestbyde是一个跨越时间周期的独立性测试。

要查看条件DE测试结果的详细信息,请使用conditionalDE函数。默认情况下,此函数使用“大样本”临界值法和一次滞后试验(与前一时间段相关)。

disp (conditionalDE (ebtde))
PortfolioID VaRID VaRLevel ConditionalDE PValue TestStatistic CriticalValue自相关观测CriticalValueMethod NumLags场景TestLevel ___________累积________ _________________ _________________ _________________售予_______ ___________________ _________替“标普”“t (10)”0.95 accept 0.45361 0.5616 3.8415 0.046387 261 "large-sample" 1 NaN 0.95 "S&P" "t(10)" 0.975 accept 0.54189 0.37205 3.8415 0.037755 261 "large-sample" 1 NaN 0.95 "S&P" "t(10)" 0.99 accept 0.87949 0.022989 3.8415 -0.0093851 261 "large-sample" 1 NaN 0.95

研究的结果“大样本”临界值的方法,特别是模拟的临界值和p-值,与'模拟的临界值的方法。

对于95%的VaR水平,临界值是相似的,但是对于更高的VaR水平,特别是对于99%的VaR,基于模拟的临界值要大得多1对于任何没有VaR失败的样本。因此,测试统计数据等于没有VaR失败的任何场景的观察次数。对于99%的VaR级别,没有VaR失败的场景是这样的;因此,在试验统计量的模拟分布中,在观察的个数上有一个质点,它看起来像一个又长又重的尾巴。

disp (conditionalDE (ebtde,“CriticalValueMethod”,“模拟”))
PortfolioID VaRID VaRLevel ConditionalDE PValue TestStatistic CriticalValue自相关观测CriticalValueMethod NumLags场景TestLevel ___________累积________ _________________ ______ _______ ___________________ _________________ _________________售予替“标普”“t (10)”0.95 accept 0.257 0.5616 3.6876 0.046387 261 "simulation" 1 1000 0.95 "S&P" "t(10)" 0.975 accept 0.141 0.37205 5.3504 0.037755 261 "simulation" 1 1000 0.95 "S&P" "t(10)" 0.99 accept 0.502 0.022989 261 -0.0093851 261 "simulation" 1 1000 0.95

你可以直观地比较“大样本”“模拟”分布。的conditionalDE函数还将模拟的测试统计信息作为可选输出返回。

请注意,分布的尾部得到的VaR的水平增加更重。

%选择VaR级别TargetVaRLevel = 0.975;VaRInd = VaRLevel = = TargetVaRLevel;(t, s) = conditionalDE (ebtde,“CriticalValueMethod”,“模拟”);xLS = 0:0.01:20;pdfLS = chi2pdf (xLS, t.NumLags (1));柱状图(s (VaRInd:)“归一化”,“pdf”)保持图(XLS,pdfLS)保持ylim(0.01[0])传说({“模拟”,“大样本”}) Title = sprintf(“ConditionalDE Test Distribution\nVaR Level: %g%%, Sample Size = %d”t.Observations VaRLevel (VaRInd) * 100 (VaRInd));标题(标题)

因为条件DE检验是基于自相关性的,所以可以对不同数量的滞后时间运行测试。

运行条件DE测试2滞后。在99%的VaR水平下“大样本”临界值法拒绝模型,但“模拟”临界值法不拒绝模型,用a表示p-价值接近10%。这表明“模拟”分布和“大样本”根据样本大小和VaR水平,近似可能导致不同的结果。

disp (conditionalDE (ebtde,“NumLags”2,“CriticalValueMethod”,“大样本”))
PortfolioID VaRID VaRLevel ConditionalDE PValue TestStatistic CriticalValue自相关观测CriticalValueMethod NumLags场景TestLevel ___________ ________ _________________ _____ _________________ _________________售予_______ ___________________ _________替“标普”“t (10)”0.95 reject 0.015812 8.294 5.9915 0.17212 261 "large-sample" 2 NaN 0.95 "S&P" "t(10)" 0.975 reject 0.00045758 15.379 5.9915 0.23979 261 "large-sample" 2 NaN 0.95 "S&P" "t(10)" 0.99 reject 2.5771e-07 30.343 5.9915 0.34083 261 "large-sample" 2 NaN 0.95
disp (conditionalDE (ebtde,“NumLags”2,“CriticalValueMethod”,“模拟”))
PortfolioID VaRID VaRLevel ConditionalDE PValue TestStatistic CriticalValue自相关观测CriticalValueMethod NumLags场景TestLevel ___________累积________ _________________ ______ _______ ___________________ _________________ _________________售予替“标普”“t (10)”0.95 reject 0.03 8.294 6.1397 0.17212 261 "simulation" 2 1000 0.95 "S&P" "t(10)" 0.975 reject 0.019 15.379 9.3364 0.23979 261 "simulation" 2 1000 0.95 "S&P" "t(10)" 0.99 accept 0.098 30.343 522 0.34083 261 "simulation" 2 1000 0.95

运行与新的模拟模拟

如果一个p值接近拒绝边界,可以运行新的仿真以请求更多的场景来减少仿真错误。

您也可以运行新的模拟要求更多数量的滞后。默认情况下,创建esbacktestbyde对象使仿真运行,以便立即获得仿真测试结果。不过,为了避免额外的存储,只能这样做5滞后是模拟的。如果你要求更多5滞后的模拟函数,conditionalDE测试函数显示以下消息:

对于所要求的滞后时间,没有仿真结果。调用“模拟”所需的滞后次数。

首先需要使用以下命令运行一个新的模拟esbacktestbyde并指定用于该模拟的滞后时间的个数。控件的大小显示esbacktestbyde新仿真前后的仿真对象说明了模拟中存在较多滞后量的情况下,如何增加系统中存储的数据量esbacktestbyde对象,随着模拟试验统计量的增加,存储的滞后时间也越来越长。

%新仿真前见字节,存储5个滞后ebtde
名称大小字节类属性ebtde 1x1 164883 esbacktestbyde
%模拟6个滞后RNG('默认');%的再现性ebtde =模拟(ebtde,“NumLags”6);%见字节后新模拟,6个滞后存储ebtde
类属性ebtde 1x1 188891 esbacktestbyde

在您运行一个新的模拟esbacktestbyde这增加了滞后于的次数6,测试结果为conditionalDE可于“模拟”方法使用6滞后。

disp (conditionalDE (ebtde,“NumLags”,6,“CriticalValueMethod”,“模拟”))
PortfolioID VARID VaRLevel ConditionalDE p值TestStatistic CriticalValue自相关观测CriticalValueMethod NumLags方案TestLevel ___________ _______ ________ _____________ ______ _____________ _____________ _______________ ____________ ___________________ _______ _________ _________ “S&P” “T(10)” 0.95接受0.136 9.5173 16.412 -0.022881 261 “模拟” 6 1000 0.95“S&P” “T(10)” 0.975 0.086接受15.854 21.299 -0.021864 261 “模拟” 6 1000 0.95 “S&P” “T(10)” 0.99 0.128接受1566 30.438 261 -0.0096211 “模拟” 6 1000 0.95

或者,conditionalDE测试结果总是有效的“大样本”方法的任何数量的滞后。

disp (conditionalDE (ebtde,“NumLags”10“CriticalValueMethod”,“大样本”))
PortfolioID VaRID VaRLevel ConditionalDE PValue TestStatistic CriticalValue自相关观测CriticalValueMethod NumLags场景TestLevel ___________ ________ _________________ _____ _________________ _________________售予_______ ___________________ _________替“标普”“t (10)”0.95 reject 0.018711 21.361 18.307 0.15415 261 "large-sample" 10 NaN 0.95 "S&P" "t(10)" 0.975 accept 0.088587 16.406 18.307 0.027955 261 "large-sample" 10 NaN 0.95 "S&P" "t(10)" 0.99 reject 0.00070234 30.526 18.307 -0.0092432 261 "large-sample" 10 NaN 0.95