主要内容

预期不足估计和回测

这个例子展示了如何执行预期不足模型的估计和回测。

风险价值(VaR)和预期不足(ES)必须一起估计,因为ES的估计取决于VaR的估计。使用历史数据,本例使用历史VaR和参数VaR方法估计测试窗口的VaR和ES。参数VaR是在正态和的假设下计算的<年代pan class="emphasis">t分布。

中支持的ES返回测试万博1manbetxesbacktestesbacktestbysim,esbacktestbyde在测试窗口中评估ES模型性能的功能。

esbacktest对象不需要任何分布信息。就像varbacktest对象,esbacktest对象只接受测试数据作为输入。的输入esbacktest包括投资组合数据,VaR数据和相应的VaR水平,以及ES数据,因为这是回测的。就像varbacktestesbacktest为单个投资组合运行测试,但可以同时反向测试多个模型和多个VaR级别。的esbacktest对象使用预先计算的临界值表来确定是否应该拒绝模型。这些基于表格的测试可以应用于任何VaR模型的近似测试。在这个例子中,它们被应用于回测历史和参数VaR模型。它们可以用于其他VaR方法,如蒙特卡罗或极值模型。

相比之下,esbacktestbysim而且esbacktestbyde对象需要分布信息,即分布名称(正常的或<年代pan class="emphasis">t)和测试窗口内每天的分布参数。esbacktestbysim而且esbacktestbyde一次只能回测一个模型,因为它们链接到特定的分布,尽管您仍然可以一次回测多个VaR级别。的esbacktestbysim对象实现基于模拟的测试,并使用提供的分布信息运行模拟以确定临界值。的esbacktestbyde对象实现的测试中,临界值来自大样本近似或模拟(有限样本)。的conditionalDEesbacktestbyde目标测试随时间的独立性,以评估尾部损失系列中是否存在自相关的证据。所有其他测试都是严重性测试,以评估尾部损失的大小是否与模型预测一致。这两个esbacktestbysim而且esbacktestbyde对象支持普通和万博1manbetx<年代pan class="emphasis">t分布。这些测试可用于任何模型,其中投资组合结果的基本分布是正常或<年代pan class="emphasis">t,如指数加权移动平均(EWMA), delta-gamma,或广义自回归条件异方差(GARCH)模型。

有关ES回测方法的更多信息,请参见esbacktestesbacktestbysim,esbacktestbyde,也参见[1]、[2]、[3.]和[5]。

估计VaR和ES

本例中使用的数据集包含标准普尔指数大约10年的历史数据,从1993年中期到2003年中期。估计窗口大小被定义为250天,因此全年的数据被用来估计历史VaR和波动率。本例中的测试窗口从1995年初一直运行到2002年底。

在整个示例中,根据交易账簿基本审查(FRTB)法规的要求,使用了97.5%的VaR置信水平;参见[4].

负载<年代pan style="color:#A020F0">VaRExampleData.mat返回= tick2ret(sp);DateReturns =日期(2:结束);SampleSize = length(返回);TestWindowStart = find(year(DateReturns)==1995,1);TestWindowEnd = find(year(DateReturns)==2002,1,<年代pan style="color:#A020F0">“最后一次”);TestWindow = TestWindowStart:TestWindowEnd;EstimationWindowSize = 250;DatesTest = DateReturns(TestWindow);ReturnsTest =返回(TestWindow);VaRLevel = 0.975;

历史VaR是一种非参数方法,从一个估计窗口的历史数据估计VaR和ES。VaR是一个百分位数,有其他方法来估计基于有限样本的分布的百分位数。一种常用的方法是使用prctile函数。另一种方法是对数据进行排序,并根据样本量和VaR置信水平确定切割点。类似地,也有基于有限样本估计ES的替代方法。

hHistoricalVaRES本例底部的局部函数使用有限样本方法来估计VaR和ES,方法描述在[7].在有限样本中,低于VaR的观测数可能与VaR水平对应的总尾概率不匹配。例如,对于100个观测值,VaR水平为97.5%,尾部观测值为2,即样本的2%,然而期望的尾部概率为2.5%。对于重复观测值的样本,情况可能会更糟,例如,如果第二个和第三个排序值相同,都等于VaR,那么样本中只有最小的观测值的值小于VaR,这是样本的1%,而不是理想的2.5%。中实现的方法hHistoricalVaRES进行修正,使尾部概率始终与VaR水平一致;参见[7]浏览详情。

VaR_Hist = 0(长度(TestWindow),1);ES_Hist = 0(长度(TestWindow),1);<年代pan style="color:#0000FF">为t = TestWindowStart + 1;EstimationWindow = t-EstimationWindowSize:t-1;[VaR_Hist(i),ES_Hist(i)] = hHistoricalVaRES(Returns(EstimationWindow),VaRLevel);<年代pan style="color:#0000FF">结束

下面的图表显示了每日收益,以及用历史方法估计的VaR和ES。

图;-VaR_Hist ReturnsTest情节(日期,日期,日期,-ES_Hist)传说(<年代pan style="color:#A020F0">“返回”,<年代pan style="color:#A020F0">“VaR”,<年代pan style="color:#A020F0">“西文”,<年代pan style="color:#A020F0">“位置”,<年代pan style="color:#A020F0">“东南”)标题(<年代pan style="color:#A020F0">“历史VaR和ES”网格)<年代pan style="color:#A020F0">在

图中包含一个轴对象。标题为Historical VaR和ES的axes对象包含3个类型为line的对象。这些对象表示Returns, VaR, ES。

对于参数模型,必须计算收益的波动性。给定波动率,VaR和ES可以分析计算。

本例中假设平均值为零,但也可以用类似的方法进行估计。

对于正态分布,直接使用估计的波动率来得到VaR和ES。为<年代pan class="emphasis">t位置尺度分布,尺度参数由估计的波动率和自由度计算。

hNormalVaRES而且hTVaRES局部函数将分布参数(可以作为数组传递)作为输入,并返回VaR和ES。这些局部函数对VaR使用解析表达式,对正态和使用ES<年代pan class="emphasis">t分别为位置-尺度分布;参见[6]浏览详情。

估计测试窗口的波动率波动性=零(长度(TestWindow),1);<年代pan style="color:#0000FF">为t = TestWindowStart + 1;EstimationWindow = t-EstimationWindowSize:t-1;波动率(i) = std(收益(估计窗口));<年代pan style="color:#0000FF">结束在本例中% Mu=0Mu = 0;<年代pan style="color:#228B22">正态分布的标准差参数=波动率信号正常=波动;<年代pan style="color:#228B22">t分布的% Sigma(尺度参数)=波动率*根号((DoF-2)/DoF)SigmaT10 =波动率*平方根((10-2)/10);SigmaT5 =波动率*根号((5-2)/5);<年代pan style="color:#228B22">估计VaR和ES,正常[VaR_Normal,ES_Normal] = hNormalVaRES(Mu, sigmannormal,VaRLevel);<年代pan style="color:#228B22">用10和5个自由度估计VaR和ES, t[VaR_T10,ES_T10] = hTVaRES(10,Mu,SigmaT10,VaRLevel);[VaR_T5,ES_T5] = hTVaRES(5,Mu,SigmaT5,VaRLevel);

下面的图表显示了日收益,以及用正常方法估计的VaR和ES。

图;-VaR_Normal ReturnsTest情节(日期,日期,日期,-ES_Normal)传说(<年代pan style="color:#A020F0">“返回”,<年代pan style="color:#A020F0">“VaR”,<年代pan style="color:#A020F0">“西文”,<年代pan style="color:#A020F0">“位置”,<年代pan style="color:#A020F0">“东南”)标题(<年代pan style="color:#A020F0">“正常VaR和ES”网格)<年代pan style="color:#A020F0">在

图中包含一个轴对象。标题为Normal VaR和ES的axes对象包含3个类型为line的对象。这些对象表示Returns, VaR, ES。

对于参数化方法,可以使用相同的步骤来估计其他方法的VaR和ES,例如EWMA, delta-gamma近似和GARCH模型。在所有这些参数方法中,波动率每天都会被估计出来,要么来自EWMA的更新,要么来自delta-gamma近似,要么作为GARCH模型的条件波动率。然后,波动率可以像上面一样使用,以获得正常或正常的VaR和ES估计<年代pan class="emphasis">tlocation-scale分布。

没有分布信息的ES回测

esbacktest对象为ES模型提供了两个回测。这两个检验都使用了Acerbi和Szekely在[中提出的无条件检验统计量。1],由

Z uncond 1 Np VaR t 1 N X t t 西文 t + 1

在哪里

  • N 测试窗口中的时间段数。

  • X t 是投资组合的结果,即投资组合的回报还是投资组合的损益<年代pan class="emphasis">t。

  • p VaR 为VaR失效概率,定义为1-VaR级别。

  • 西文 t 这一时期的估计预期短缺吗<年代pan class="emphasis">t。

  • t VaR失效指示器是否处于周期<年代pan class="emphasis">t如果值为1<年代pan class="inlineequation"> X t < - VaR t ,否则为0。

该检验统计量的期望值为0,当存在风险低估的证据时,它为负值。为了确定拒绝模型的负程度,需要临界值,并且为了确定临界值,需要对投资组合结果进行分布假设<年代pan class="inlineequation"> X t

对于的一系列分布假设,无条件检验统计量证明是稳定的<年代pan class="inlineequation"> X t ,从薄尾分布如正态分布,到重尾分布如<年代pan class="emphasis">t具有低自由度(高个位数)。只有尾巴最重的<年代pan class="emphasis">t分布(低个位数)导致临界值有更明显的差异。参见[1]浏览详情。

esbacktest对象利用了无条件测试统计量的临界值的稳定性,并使用预先计算的临界值表来运行ES回测。esbacktest有两组临界值表。第一组临界值假设投资组合的结果<年代pan class="inlineequation"> X t 遵循标准正态分布;这是unconditionalNormal测试。第二组临界值使用最重的可能尾部,它假设投资组合的结果<年代pan class="inlineequation"> X t 遵循一个<年代pan class="emphasis">t三自由度分布;这是unconditionalT测试。

无条件检验统计量对相对于ES估计的VaR失败的严重程度和VaR失败的数量(违反VaR的次数)都很敏感。因此,相对于ES,单个但非常大的VaR故障(或只有极少数的大损失)可能会导致在特定时间窗口内模型被拒绝。当ES估计值也很大时,一天的大损失可能不会像ES较小时的大损失那样影响测试结果。而且,在有许多VaR失效的时期,一个模型也可以被拒绝,即使所有的VaR违规都相对较小,仅略高于VaR。这两种情况在本例中都有说明。

esbacktest对象将测试数据作为输入,但不向其提供分布信息esbacktest.可选地,您可以为投资组合指定ID,并为每个被回测的VaR和ES模型指定ID。尽管本例中的模型ID确实有分布引用(例如,“正常”“t 10”),这些标签只作汇报用途。测试没有使用第一个模型是历史VaR方法,或者其他模型是备选参数VaR模型这一事实。前一节中用于估计VaR和ES的分布参数没有传递给esbacktest,并且在本节中不以任何方式使用。中支持的基于模拟的测试必须提供这些参数万博1manbetxesbacktestbysim对象在基于仿真的测试中支持的测试万博1manbetxesbacktestbyde对象在大样本和模拟试验部分。

ebt = esbacktest(ReturnsTest,[VaR_Hist VaR_Normal VaR_T10 VaR_T5],<年代pan style="color:#0000FF">…[ES_Hist ES_Normal ES_T10 ES_T5],<年代pan style="color:#A020F0">“PortfolioID”,<年代pan style="color:#A020F0">“标准普尔,1995 - 2002”,<年代pan style="color:#0000FF">…“VaRID”, (<年代pan style="color:#A020F0">“历史”“正常”,<年代pan style="color:#A020F0">“T 10”,<年代pan style="color:#A020F0">“T 5”),<年代pan style="color:#A020F0">“VaRLevel”, VaRLevel);disp(光大通信)
esbacktest with properties: PortfolioData: [2087x1 double] VaRData: [2087x4 double] ESData: [2087x4 double] PortfolioID: "标普,1995-2002" VaRID:["历史" "正常" "T 10" "T 5"] VaRLevel: [0.9750 0.9750 0.9750 0.9750]

运行命令开始分析总结函数。

S = summary(ebt);disp (s)
PortfolioID VaRID VaRLevel ObservedLevel ExpectedSeverity ObservedSeverity观察故障预计比失踪  ________________ ____________ ________ _____________ ________________ ________________ ____________ ________ ________ ______ _______ " 标准普尔,1995 - 2002”“历史”0.975 - 0.96694 1.3711 - 1.4039 52.175 - 1.3225 2087 69 0”标准普尔,1995 - 2002”“正常”0.975 0.97077 1.1928 1.416 52.175 - 1.1691 2087 61 0”标准普尔,1995 - 2002”“T”1.1308 52.175 0.975 0.97173 1.2652 1.4063 2087 59 0”标普、1995-2002" t 5" 0.975 0.97173 1.37 1.4075 2087 59 52.175 1.1308 0

ObservedSeverity列显示在VaR被违反的时期,损失与VaR的平均比率。的ExpectedSeverity列使用ES与VaR的平均比率来表示VaR违反期。为“历史”而且“T 5”模型、观测到的和预期的严重程度具有可比性。然而,对于“历史”方法,则观察到的故障次数(失败列)大大高于预期的故障数(预期列),约高出32%(见列)。这两个“正常”“T 10”模型观测到的严重程度远远高于预期的严重程度。

图;subplot(2,1,1) bar(categorical(s.v rid),[s.p expectedseverity, s.b obvedseverity]) ylim([1 1.5])传说(<年代pan style="color:#A020F0">“预期”,<年代pan style="color:#A020F0">“观察”,<年代pan style="color:#A020F0">“位置”,<年代pan style="color:#A020F0">“东南”)标题(<年代pan style="color:#A020F0">“平均严重比率”) subplot(2,1,2) bar(categorical(s. variable),[s.Expected,s.Failures]) ylim([40 - 70])图例(<年代pan style="color:#A020F0">“预期”,<年代pan style="color:#A020F0">“观察”,<年代pan style="color:#A020F0">“位置”,<年代pan style="color:#A020F0">“东南”)标题(<年代pan style="color:#A020F0">“VaR失败次数”)

图中包含2个轴对象。标题为Average Severity Ratio的坐标轴对象1包含2个类型为bar的对象。这些对象表示预期的、观察到的。标题为Number of VaR Failures的Axes对象2包含2个类型为bar的对象。这些对象表示预期的、观察到的。

runtests函数运行所有测试并仅报告接受或拒绝结果。无条件正态检验更为严格。对于这里的8年测试窗口,有两个模型未能通过两项测试(“历史”而且“正常”),有一个模型不通过无条件正态检验,但通过了无条件t检验(“T 10”),并且有一个模型通过了两个测试(“T 5”).

T =运行测试(ebt);disp (t)
PortfolioID VaRID VaRLevel UnconditionalNormal UnconditionalT  ________________ ____________ ________ ___________________ ______________ " 标准普尔,1995 - 2002”“历史”0.975拒绝拒绝“标普,1995 - 2002”正常“0.975拒绝拒绝”标准普尔,1995 - 2002”“T 10“0.975拒绝接受“标普,1995 - 2002 T 5”0.975接受接受

可以通过调用各个测试函数获得有关测试的其他详细信息。这里是关于unconditionalNormal测试。

t =无条件正常(ebt);disp (t)
TestLevel PortfolioID VaRID VaRLevel UnconditionalNormal PValue TestStatistic CriticalValue观察  ________________ ____________ ________ ___________________ _________ _____________ _____________ ____________ _________ " 标准普尔,1995 - 2002”“历史”拒绝2087 0.0047612 -0.37917 -0.23338 0.975 0.95”标准普尔,1995 - 2002”“正常”拒绝0.0043287 -0.38798 -0.23338 0.975 2087 0.95”标准普尔,1995 - 2002”“T 10“拒绝2087 0.037528 -0.2569 -0.23338 0.975 0.95”标普、1995-2002" "T 5" 0.975接受0.13069 -0.16179 -0.23338 2087 0.95

这里是关于unconditionalT测试。

t = unconditionalT(ebt);disp (t)
TestLevel PortfolioID VaRID VaRLevel UnconditionalT PValue TestStatistic CriticalValue观察  ________________ ____________ ________ ______________ ________ _____________ _____________ ____________ _________ " 标准普尔,1995 - 2002”“历史”拒绝2087 0.017032 -0.37917 -0.27415 0.975 0.95”标准普尔,1995 - 2002”“正常”拒绝0.015375 -0.38798 -0.27415 0.975 2087 0.95”标准普尔,1995 - 2002”“T 10“0.975接受0.062835 -0.2569 -0.27415 2087 0.95”标普、1995-2002" "T 5" 0.975接受0.16414 -0.16179 -0.27415 2087 0.95

使用测试进行更高级的分析

方法的使用方法esbacktest对象来运行用户定义的红绿灯测试,以及如何在滚动测试窗口上运行测试。

定义红绿灯测试的一种方法是将无条件normal和无条件normal的结果结合起来<年代pan class="emphasis">t测试。因为无条件法线更严格,所以可以用以下级别定义红绿灯测试:

  • 绿色:模型同时通过了无条件法线和无条件法线<年代pan class="emphasis">t测试。

  • 黄色:模型未通过无条件正态测试,但通过了无条件正态测试<年代pan class="emphasis">t测试。

  • 红色:模型同时被无条件normal和无条件拒绝<年代pan class="emphasis">t测试。

T =运行测试(ebt);TLValue = (t.UnconditionalNormal==<年代pan style="color:#A020F0">“拒绝”) + (t。UnconditionalT = =<年代pan style="color:#A020F0">“拒绝”);t.TrafficLight = categorical(TLValue,0:2,{<年代pan style="color:#A020F0">“绿色”,<年代pan style="color:#A020F0">“黄色”,<年代pan style="color:#A020F0">“红色”},<年代pan style="color:#A020F0">“顺序”,真正的);disp (t)
PortfolioID VaRID VaRLevel UnconditionalNormal UnconditionalT TrafficLight  ________________ ____________ ________ ___________________ ______________ ____________ " 标准普尔,1995 - 2002”“历史”0.975拒绝拒绝红”标准普尔,1995 - 2002”“正常“0.975拒绝拒绝红”标准普尔,1995 - 2002”“T 10“0.975拒绝接受黄色”标准普尔,1995 - 2002 T 5”0.975接受接受绿色

另一个用户定义的红绿灯测试可以使用单个测试,但在不同的测试置信度水平下:

  • 绿色:结果是“接受测试水平达到95%。

  • 黄色:结果是“拒绝”95%的测试水平,但是“接受99%。

  • 瑞德:结果是“拒绝”99%测试级别。

在[中提出了类似的检验方法。1],测试水平高达99.99%。

T95 =运行测试(ebt);<年代pan style="color:#228B22">% 95%是默认的测试级别值T99 =运行测试<年代pan style="color:#A020F0">“TestLevel”, 0.99);TLValue = (t95.)UnconditionalNormal = =<年代pan style="color:#A020F0">“拒绝”) + (t99。UnconditionalNormal = =<年代pan style="color:#A020F0">“拒绝”);tRolling = t95(:,1:3);恶意破坏。UnconditionalNormal95 = t95.UnconditionalNormal;恶意破坏。UnconditionalNormal99 = t99.UnconditionalNormal;恶意破坏。TrafficLight = categorical(TLValue,0:2,{<年代pan style="color:#A020F0">“绿色”,<年代pan style="color:#A020F0">“黄色”,<年代pan style="color:#A020F0">“红色”},<年代pan style="color:#A020F0">“顺序”,真正的);disp(旋转)
PortfolioID VaRID VaRLevel UnconditionalNormal95 UnconditionalNormal99 TrafficLight  ________________ ____________ ________ _____________________ _____________________ ____________ " 标准普尔,1995 - 2002”“历史”0.975拒绝拒绝红”标准普尔,1995 - 2002”“正常“0.975拒绝拒绝红”标准普尔,1995 - 2002”“T 10“0.975拒绝接受黄色”标准普尔,1995 - 2002 T 5”0.975接受接受绿色

在不同的测试窗口中,测试结果可能不同。在这里,使用一年的滚动窗口在原始测试窗口所跨越的八个年份中运行ES回溯测试。上面描述的第一个用户定义红绿灯被添加到测试结果表中。的总结函数也被每个单独的年份调用,以查看历史的严重性和VaR失败的数量。

sRolling = table;钓鱼=桌子;<年代pan style="color:#0000FF">为年份= 1995:2002日期=年份;PortID = [<年代pan style="color:#A020F0">“标普”,num2str(年)];PortfolioData = ReturnsTest(Ind);VaRData = [VaR_Hist(Ind) VaR_Normal(Ind) VaR_T10(Ind) VaR_T5(Ind)];ESData = [ES_Hist(Ind) ES_Normal(Ind) ES_T10(Ind) ES_T5(Ind)];ebt = esbacktest(PortfolioData,VaRData,ESData,<年代pan style="color:#0000FF">…“PortfolioID”PortID,<年代pan style="color:#A020F0">“VaRID”, (<年代pan style="color:#A020F0">“历史”“正常”“T 10”“T 5”),<年代pan style="color:#0000FF">…“VaRLevel”, VaRLevel);<年代pan style="color:#0000FF">如果Year == 1995 sRolling = summary(ebt);喷涌=运行测试(ebt);<年代pan style="color:#0000FF">其他的sRolling = [sRolling;summary(ebt)];<年代pan style="color:#228B22">% #好< AGROW >喷涌=[喷涌;运行测试(ebt)];<年代pan style="color:#228B22">% #好< AGROW >结束结束%可选:添加上述第一个自定义红绿灯测试TLValue = (tRolling.)UnconditionalNormal = =<年代pan style="color:#A020F0">“拒绝”) +(恶意破坏。UnconditionalT = =<年代pan style="color:#A020F0">“拒绝”);恶意破坏。TrafficLight = categorical(TLValue,0:2,{<年代pan style="color:#A020F0">“绿色”,<年代pan style="color:#A020F0">“黄色”,<年代pan style="color:#A020F0">“红色”},<年代pan style="color:#A020F0">“顺序”,真正的);

每次显示一个模型的结果。的“T 5”模型在这些测试中表现最好(2“黄色”),以及“正常”模拟最糟糕的(三个)“红“还有一个“黄”)。

disp(恶意破坏(恶意破坏。VaRID = =<年代pan style="color:#A020F0">“历史”:))
组合id VaRID VaRLevel无条件正常无条件红绿灯___________ ____________ ________ ___________________ ______________ ____________ "标普,1995" "历史" 0.975接受接受绿色"标普,1996" "历史" 0.975拒绝接受黄色"标普,1997" "历史" 0.975拒绝接受拒绝红色"标普,1998" "历史" 0.975接受接受绿色"标普,1999" "历史" 0.975接受接受绿色"标普,2000" "历史" 0.975接受接受绿色"标普,1996"2001" "历史" 0.975接受接受绿色"标普,2002" "历史" 0.975拒绝接受红色
disp(恶意破坏(恶意破坏。VaRID = =<年代pan style="color:#A020F0">“正常”:))
组合id VaRID VaRLevel无条件正常无条件红绿灯___________________ ________ ___________________ ______________ ____________ "标普,1995" "正常" 0.975接受接受绿色"标普,1996" "正常" 0.975拒绝接受拒绝红色"标普,1997" "正常" 0.975拒绝接受红色"标普,1998" "正常" 0.975接受接受黄色"标普,1999" "正常" 0.975接受接受绿色"标普,2000" "正常" 0.975接受接受绿色"标普,2001" "正常" 0.975接受接受绿色"标普,1997"2002" "正常" 0.975排斥排斥红色
disp(恶意破坏(恶意破坏。VaRID = =<年代pan style="color:#A020F0">“T 10”:))
组合id VaRID VaRLevel无条件正常无条件红绿灯_________________ ________ ___________________ ______________ ____________ "标普,1995" "T 10" 0.975接受接受绿色"标普,1996" "T 10" 0.975拒绝接受红色"标普,1997" "T 10" 0.975接受接受黄色"标普,1998" "T 10" 0.975接受接受绿色"标普,1999" "T 10" 0.975接受接受绿色"标普,2000" "T 10" 0.975接受接受绿色"标普,2001" "T 10" 0.975接受接受绿色"标普,2002" "T 10" 0.975剔除剔除红
disp(恶意破坏(恶意破坏。VaRID = =<年代pan style="color:#A020F0">“T 5”:))
组合id VaRID VaRLevel无条件正常无条件红绿灯________________ ________ ___________________ ______________ ____________“标普,1995”“T 5”0.975接受接受绿色“标普,1996”“T 5”0.975拒绝接受黄色“标普,1997”“T 5”0.975接受接受绿色“标普,1998”“T 5”0.975接受接受绿色“标普,1999”“T 5”0.975接受接受绿色“标普,2000”“T 5”0.975接受接受绿色“标普,2001”“T 5”0.975接受接受绿色“标普,2001”“T 5”0.975接受接受绿色”标普,2002" T 5" 0.975拒绝接受黄色

2002年是一个相对较小的年份,但许多VaR失败的例子。所有模型在2002年的表现都很差,尽管观测到的严重程度很低。然而,一些模型的VaR失效数量是预期VaR失效数量的两倍多。

disp(总结(光大通信))
PortfolioID VaRID VaRLevel ObservedLevel ExpectedSeverity ObservedSeverity观察故障预计比失踪  ___________ ____________ ________ _____________ ________________ ________________ ____________ ________ ________ ______ _______ " 标普2002”“历史”14 6.525 - 2.1456 0.975 0.94636 1.2022 1.2 261 0”标准普尔,2002”“正常”14 6.525 - 2.1456 0.975 0.94636 1.1928 1.2111 261 0”标准普尔,2002“T”1.9923 6.525 0.975 0.95019 1.2652 1.2066 261 13 0”标普、2002" t 5" 0.975 0.95019 1.37 1.2077 261 13 6.525 1.9923 0

下图显示了整个8年窗口的数据,以及每年(预期和观测)的严重程度比“历史”模型。损失的绝对规模并不像相对于ES(或相对于VaR)的相对规模那么重要。1997年和1998年的损失都很大,规模相当。然而,1998年的预期严重程度要高得多(更大的ES估计)。总的来说,“历史”Method在严重性比率方面似乎做得很好。

sH = sRolling(滚动。VaRID = =<年代pan style="color:#A020F0">“历史”:);图;subplot(2,1,1) FailureInd = ReturnsTest<-VaR_Hist;-VaR_Hist ReturnsTest情节(日期,日期,日期,-ES_Hist)<年代pan style="color:#A020F0">在情节(日期(FailureInd) ReturnsTest (FailureInd),<年代pan style="color:#A020F0">“。”)举行<年代pan style="color:#A020F0">从传奇(<年代pan style="color:#A020F0">“返回”,<年代pan style="color:#A020F0">“VaR”,<年代pan style="color:#A020F0">“西文”,<年代pan style="color:#A020F0">“位置”,<年代pan style="color:#A020F0">“最佳”)标题(<年代pan style="color:#A020F0">“历史VaR和ES”网格)<年代pan style="color:#A020F0">在subplot(2,1,2) bar(1995:2002,[sH.ExpectedSeverity, sh . obvedseverity]) ylim([1 1.8])图例(<年代pan style="color:#A020F0">“预期”,<年代pan style="color:#A020F0">“观察”,<年代pan style="color:#A020F0">“位置”,<年代pan style="color:#A020F0">“最佳”)标题(<年代pan style="color:#A020F0">“年平均严重程度比,历史VaR”)

图中包含2个轴对象。标题为Historical VaR和ES的坐标轴对象1包含4个类型为line的对象。这些对象表示Returns, VaR, ES。轴对象2,标题为年平均严重程度比,历史VaR包含类型栏的2个对象。这些对象表示预期的、观察到的。

然而,一个类似的可视化的期望与观察到的VaR故障数量表明“历史”方法往往会比预期的受到更多的侵犯。例如,即使在2002年,预期的平均严重程度比非常接近观察到的,VaR失败的数量是预期数量的两倍多。这将导致无条件正常和无条件的测试失败<年代pan class="emphasis">t测试。

图;subplot(2,1,1) plot(DatesTest,ReturnsTest,DatesTest,-VaR_Hist,DatesTest,-ES_Hist)保持<年代pan style="color:#A020F0">在情节(日期(FailureInd) ReturnsTest (FailureInd),<年代pan style="color:#A020F0">“。”)举行<年代pan style="color:#A020F0">从传奇(<年代pan style="color:#A020F0">“返回”,<年代pan style="color:#A020F0">“VaR”,<年代pan style="color:#A020F0">“西文”,<年代pan style="color:#A020F0">“位置”,<年代pan style="color:#A020F0">“最佳”)标题(<年代pan style="color:#A020F0">“历史VaR和ES”网格)<年代pan style="color:#A020F0">在subplot(2,1,2) bar(1995:2002,[sh .预期,sh .失败])图例(<年代pan style="color:#A020F0">“预期”,<年代pan style="color:#A020F0">“观察”,<年代pan style="color:#A020F0">“位置”,<年代pan style="color:#A020F0">“最佳”)标题(<年代pan style="color:#A020F0">“年度VaR失败,历史VaR”)

图中包含2个轴对象。标题为Historical VaR和ES的坐标轴对象1包含4个类型为line的对象。这些对象表示Returns, VaR, ES。轴对象2,标题为年度VaR失败,历史VaR包含2个类型为bar的对象。这些对象表示预期的、观察到的。

基于仿真的测试<年代pan id="mw_rtc_ExpectedShortfallBacktestingExample_H_5D7F0B9F" class="anchor_target">

esbacktestbysim对象支持五种基万博1manbetx于模拟的ES back测试。esbacktestbysim需要投资组合结果的分布信息,即分布名称(“正常”“t”)和测试窗口内每天的分布参数。esbacktestbysim使用提供的分布信息运行模拟以确定临界值。中支持的测试万博1manbetxesbacktestbysim有条件的无条件的分位数minBiasAbsolute,minBiasRelative.这些是Acerbi和Szekely在[1],及[2]、[3.] 2017年和2019年。

esbacktestbysim对象支持普通和万博1manbetx<年代pan class="emphasis">t分布。这些测试可用于任何模型,其中投资组合结果的基本分布是正常或<年代pan class="emphasis">t,如指数加权移动平均(EWMA), delta-gamma,或广义自回归条件异方差(GARCH)模型。

ES回测必须是近似的,因为它们对预测VaR中的错误很敏感。然而,最小偏倚检验对VaR错误只有很小的敏感性,而且敏感性是审慎的,因为VaR错误会导致更具惩罚性的ES检验。参见阿克比-塞克利([2]、[3.]),以了解详情。当分布信息可用时,建议采用最小偏倚检验(见minBiasAbsoluteminBiasRelative).

“正常”“T 10”,“T 5”中的基于模拟的测试可以对模型进行回测esbacktestbysim.仅供说明之用“T 5”是,val。发行版名称(“t”)和参数(自由度、位置和尺度)esbacktestbysim对象被创建。

rng (<年代pan style="color:#A020F0">“默认”);<年代pan style="color:#228B22">%表示再现性;esbacktestbysim构造函数运行一个模拟ebt = esbacktestbysim(ReturnsTest,VaR_T5,ES_T5,<年代pan style="color:#A020F0">“t”,<年代pan style="color:#A020F0">“DegreesOfFreedom”5,<年代pan style="color:#0000FF">…“位置”亩,<年代pan style="color:#A020F0">“规模”SigmaT5,<年代pan style="color:#0000FF">…“PortfolioID”,<年代pan style="color:#A020F0">“标普”,<年代pan style="color:#A020F0">“VaRID”,<年代pan style="color:#A020F0">“T 5”,<年代pan style="color:#A020F0">“VaRLevel”, VaRLevel);

推荐的工作流程相同:首先,运行总结函数,然后运行runtests函数,然后运行各个测试函数。

总结函数提供的信息与总结函数esbacktest

S = summary(ebts);disp (s)
PortfolioID VaRID VaRLevel ObservedLevel ExpectedSeverity ObservedSeverity观察故障预计比失踪  ___________ _____ ________ _____________ ________________ ________________ ____________ ________ ________ ______ _______ " 标普”“T 2087 59 52.175 - 1.1308 0.975 0.97173 1.37 1.4075 0

runtests函数显示最终的接受或拒绝结果。

T =运行测试(ebts);disp (t)
无条件PortfolioID VaRID VaRLevel条件分位数MinBiasAbsolute MinBiasRelative  ___________ _____ ________ ___________ _____________ ________ _______________ _______________ " 标普”“接受接受接受接受接受0.975 T 5”

通过调用各个测试函数,可以获得测试结果的其他详细信息。例如,调用minBiasAbsolute测试。第一个输出,t,包含测试结果和其他详细信息,如p值、测试统计量等。第二个输出,年代,包含假设分布假设正确的模拟测试统计值。例如,esbacktestbysim在本例中生成了1000个投资组合结果的场景,其中每个场景是一系列模拟的2087个观察结果<年代pan class="emphasis">t5个自由度的随机变量,给定位置和尺度参数。选项中返回的模拟值年代如果分布假设正确,则输出显示测试统计量的典型值。这些是用于确定测试重要性的模拟统计数据,即报告的临界值和<年代pan class="emphasis">p值。

[t,s] = minBiasAbsolute(ebt);disp (t)
PortfolioID VaRID VaRLevel MinBiasAbsolute PValue TestStatistic CriticalValue TestLevel观察场景  ___________ _____ ________ _______________ ______ _____________ _____________ ____________ _________ _________ " 标准普尔5 T”接受0.299 -0.00080059 -0.0030373 0.975 0.95 2087 1000
谁<年代pan style="color:#A020F0">年代
名称大小字节类属性s 1x1000 8000 double

选择测试以显示测试结果并可视化测试的重要性。直方图显示模拟测试统计数据的分布,星号显示实际投资组合回报的测试统计数据的值。

ESTestChoice =<年代pan class="live_control_container">“MinBiasAbsolute”;<年代pan style="color:#0000FF">开关ESTestChoice<年代pan style="color:#0000FF">情况下“MinBiasAbsolute”[t,s] = minBiasAbsolute(ebt);<年代pan style="color:#0000FF">情况下“MinBiasRelative”[t,s] = minBiasRelative(ebts);<年代pan style="color:#0000FF">情况下“条件”[t,s] =条件(ebts);<年代pan style="color:#0000FF">情况下“无条件的”[t,s] =无条件(ebts);<年代pan style="color:#0000FF">情况下分位数的[t,s] =分位数(ebts);<年代pan style="color:#0000FF">结束disp (t)
PortfolioID VaRID VaRLevel MinBiasAbsolute PValue TestStatistic CriticalValue TestLevel观察场景  ___________ _____ ________ _______________ ______ _____________ _____________ ____________ _________ _________ " 标准普尔5 T”接受0.299 -0.00080059 -0.0030373 0.975 0.95 2087 1000
图;柱状图(s);持有<年代pan style="color:#A020F0">在;情节(t。TestStatistic 0<年代pan style="color:#A020F0">‘*’);持有<年代pan style="color:#A020F0">从;标题= sprintf(<年代pan style="color:#A020F0">'%s: %s, p值:%4.3f', t.VaRID ESTestChoice t.PValue);标题(标题)

图中包含一个轴对象。标题为MinBiasAbsolute: t5, p-value: 0.299的坐标轴对象包含2个直方图类型的对象,line。

所报告的无条件检验统计量esbacktestbysim是否与报告的无条件检验统计量完全相同esbacktest.然而,报告的临界值esbacktestbysim是基于一个模拟使用<年代pan class="emphasis">t5个自由度的分布,给定位置和尺度参数。的esbacktest对象的近似测试结果“T 5”模型,而这里的结果是特定于所提供的分布信息。同样,对于有条件的测试,这是独立条件测试的可视化(ConditionalOnly如上表所示)。最终条件测试结果(有条件的列)也取决于初步的VaR回测(VaRTestResult列)。

“T 5”模型通过五项试验。

esbacktestbysim对象提供模拟函数运行新的模拟。例如,如果存在测试统计值接近临界值的边缘测试结果,则可以使用模拟函数模拟新场景。在需要更高精度的情况下,可以运行更大的模拟。

esbacktestbysim测试可以在滚动窗口上运行,方法与上面描述的相同esbacktest.用户定义的红绿灯测试也可以定义,例如,使用两个不同的测试置信水平,类似于上面所做的esbacktest

大样本和模拟试验<年代pan id="mw_rtc_ExpectedShortfallBacktestingExample_H_C18C9020" class="anchor_target">

esbacktestbyde对象支持两个E万博1manbetxS回溯测试,其临界值由大样本近似或模拟(有限样本)确定。esbacktestbyde需要投资组合结果的分布信息,即分布名称(“正常”“t”)和测试窗口内每天的分布参数。它不需要ES数据的VaR。esbacktestbyde使用提供的分布信息将投资组合结果映射为“等级”,也就是说,应用累积分布函数将回报映射为单位间隔内的值,其中定义了测试统计数据。esbacktestbyde可以通过使用大样本近似或有限样本模拟来确定临界值。

中支持的测试万博1manbetxesbacktestbydeconditionalDE而且unconditionalDE.这些是Du和Escanciano在[3.].的unconditionalDE测试和本例中前面讨论的所有测试都是严重性测试,用于评估尾部损失的大小是否与模型预测一致。的conditionalDE然而,检验是一种随时间变化的独立性检验,用于评估是否有证据表明尾损失序列存在自相关性。

esbacktestbyde对象支持普通和万博1manbetx<年代pan class="emphasis">t分布。这些测试可用于任何模型,其中投资组合结果的基本分布是正常或<年代pan class="emphasis">t,如指数加权移动平均(EWMA), delta-gamma,或广义自回归条件异方差(GARCH)模型。

“正常”“T 10”,“T 5”中的测试可以对模型进行回测esbacktestbyde.仅供说明之用“T 5”是,val。发行版名称(“t”)和参数(DegreesOfFreedom位置,规模)提供esbacktestbyde对象被创建。

rng (<年代pan style="color:#A020F0">“默认”);<年代pan style="color:#228B22">%表示再现性;esbacktestbyde构造函数运行模拟ebtde = esbacktestbyde(返回stest,<年代pan style="color:#A020F0">“t”,<年代pan style="color:#A020F0">“DegreesOfFreedom”5,<年代pan style="color:#0000FF">…“位置”亩,<年代pan style="color:#A020F0">“规模”SigmaT5,<年代pan style="color:#0000FF">…“PortfolioID”,<年代pan style="color:#A020F0">“标普”,<年代pan style="color:#A020F0">“VaRID”,<年代pan style="color:#A020F0">“T 5”,<年代pan style="color:#A020F0">“VaRLevel”, VaRLevel);

推荐的工作流程相同:首先,运行总结函数,然后运行runtests函数,然后运行各个测试函数。的总结函数提供的信息与总结函数esbacktest

S = summary(ebtde);disp (s)
PortfolioID VaRID VaRLevel ObservedLevel ExpectedSeverity ObservedSeverity观察故障预计比失踪  ___________ _____ ________ _____________ ________________ ________________ ____________ ________ ________ ______ _______ " 标普”“T 2087 59 52.175 - 1.1308 0.975 0.97173 1.37 1.4075 0

runtests函数显示最终的接受或拒绝结果。

T =运行测试(ebtde);disp (t)
PortfolioID VaRID VaRLevel ConditionalDE UnconditionalDE  ___________ _____ ________ _____________ _______________ " 标普”“0.975 T 5”拒绝接受

通过调用各个测试函数,可以获得测试结果的其他详细信息。

t = conditionalDE(ebtde);disp (t)
PortfolioID VaRID VaRLevel ConditionalDE PValue TestStatistic CriticalValue自相关观测CriticalValueMethod TestLevel NumLags场景  ___________ _____ ________ _____________ __________ _____________ _____________ _______________ ____________ ___________________ _______ _________ _________ " 标普”“T 5”拒绝0.00034769 12.794 3.8415 0.975 0.078297 2087年“大样本”1南0.95

默认情况下,临界值由大样本近似确定。基于有限样本分布的临界值在使用模拟时是可用的“CriticalValueMethod”可选的名称-值对参数。

[t,s] = conditionalDE(ebtde,<年代pan style="color:#A020F0">“CriticalValueMethod”,<年代pan style="color:#A020F0">“模拟”);disp (t)
PortfolioID VaRID VaRLevel ConditionalDE PValue TestStatistic CriticalValue自相关观测CriticalValueMethod TestLevel NumLags场景  ___________ _____ ________ _____________ ______ _____________ _____________ _______________ ____________ ___________________ _______ _________ _________ " 标普”“T 5“拒绝0.01 12.794 3.7961 0.078297 0.975 2087”模拟“1 1000 0.95

第二个输出,年代,包含模拟测试统计值。下面的可视化对于比较模拟的有限样本分布与大样本近似的匹配程度是有用的。该图显示,对于基于模拟的(有限样本)分布,检验统计量分布的尾部略重。这意味着基于模拟的测试版本具有更大的容忍度,并且在大样本近似结果拒绝的某些情况下不会拒绝。大样本分布和模拟分布的匹配程度不仅取决于测试窗口中观测值的数量,还取决于VaR置信水平(在有限样本分布中,较高的VaR水平导致较重的尾部)。

xLS = 0:0.05:30;pdfLS = chi2pdf(xLS,t.NumLags);直方图(年代,<年代pan style="color:#A020F0">“归一化”,<年代pan style="color:#A020F0">“pdf”)举行<年代pan style="color:#A020F0">在情节(xLS, pdfLS)<年代pan style="color:#A020F0">从Ylim([0 0.1])图例({<年代pan style="color:#A020F0">“模拟”,<年代pan style="color:#A020F0">“大样本”}) Title = sprintf(<年代pan style="color:#A020F0">'条件测试分布\nVaR水平:%g%%,样本容量= %d'VaRLevel * 100, t.Observations);标题(标题)

图中包含一个轴对象。标题为条件测试分布VaR水平:97.5%,样本量= 2087的轴对象包含2个类型直方图对象,行。这些对象代表模拟,大样本。

控件上的详细信息也可以使用类似的步骤unconditionalDE试验,并比较基于大样本和模拟的结果。

esbacktestbyde对象提供模拟函数运行新的模拟。例如,如果存在测试统计值接近临界值的边缘测试结果,则可以使用模拟函数模拟新场景。此外,默认情况下,模拟存储条件测试最多5个滞后的结果,因此如果需要大量滞后的基于模拟的结果,则必须使用模拟函数。

如果大样本近似测试是您所需要的唯一测试,因为它们对于特定的样本量和VaR水平是可靠的,则可以在创建esbacktestbyde对象,使用“模拟”可选的输入。

esbacktestbyde测试可以在滚动窗口上运行,方法与上面描述的相同esbacktest.您还可以定义红绿灯测试,例如,您可以使用两个不同的测试置信水平,类似于上面所做的esbacktest

结论

对比三个ES回测对象:

  • esbacktest对象用于广泛的分布假设:历史VaR、参数VaR、蒙特卡罗VaR或极值模型。然而,esbacktest提供基于相同测试的两个变体的近似测试结果:具有两个不同预计算临界值集的无条件测试统计量(unconditionalNormal而且unconditionalT).

  • esbacktestbysim对象用于具有normal和的参数化方法<年代pan class="emphasis">t分布(包括EWMA, GARCH和delta-gamma),需要分布参数作为输入。esbacktestbysim提供五种不同的测试(有条件的无条件的分位数minBiasAbsolute,minBiasRelative这些测试的临界值是使用您提供的分布信息模拟的,因此更加准确。尽管所有ES回测对VaR估计误差都很敏感,但推荐采用最小偏倚检验(详见Acerbi-Szekely 2017和2019)[2]、[3.])。

  • esbacktestbyde对象也用于具有normal和的参数化方法<年代pan class="emphasis">t分布(包括EWMA, GARCH和delta-gamma),需要分布参数作为输入。esbacktestbyde包含严重程度(unconditionalDE)和时间无关性(conditionalDE)测试,它具有方便的大样本,快速版本的测试。的conditionalDE在这三个类中支持的所有测试中,test是ES模型随时间独立性的唯一测试。万博1manbetx

如本例所示,所有三个ES回测对象都提供了生成关于严重性、VaR失败和测试结果信息的报告的功能。三个ES回测对象提供了在它们之上构建的灵活性。例如,您可以创建用户定义的红绿灯测试,并在滚动窗口上运行ES回测分析。

参考文献

[1]阿克比,C.和B.塞克利。“回测预期不足。”MSCI Inc., 2014年12月。

[2]阿克比,C.和B.塞克利。"可测统计量的一般性质"<年代pan class="emphasis">电子期刊。2017年1月。

[3]阿克比,C.和B.塞克利。“ES的最小偏差反检验。”<年代pan class="emphasis">风险。2019年9月。

[4]巴塞尔银行监管委员会。"市场风险的最低资本要求"2016年1月,https://www.bis.org/bcbs/publ/d352.htm

[5]杜,Z.和J. C.埃斯坎西亚诺。回测预期不足:尾部风险的解释<年代pan class="emphasis">管理科学.第63卷,第4期,2017年4月。

[6]麦克尼尔,A.弗雷,P.埃姆布雷希茨。<年代pan class="emphasis">量化风险管理:概念、技术和工具.普林斯顿大学出版社,2005。

Rockafellar, R. T.和S. Uryasev。"一般损失分配的条件风险价值"<年代pan class="emphasis">银行与金融杂志。Vol. 26, 2002, pp. 1443-1471。

本地函数

函数[VaR,ES] = hHistoricalVaRES(Sample,VaRLevel)<年代pan style="color:#228B22">计算历史VaR和ES%详见[7]%转换为损失样本= -样本;N = length(Sample);k = ceil(N*VaRLevel);z = sort(Sample);VaR = z(k);<年代pan style="color:#0000FF">如果k < N ES = ((k - N * VaRLevel) * z (k) +总和(z (k + 1: N))) / (N * (1 - VaRLevel));<年代pan style="color:#0000FF">其他的ES = z(k);<年代pan style="color:#0000FF">结束结束函数[VaR,ES] = hNormalVaRES(Mu,Sigma,VaRLevel)<年代pan style="color:#228B22">计算正态分布的VaR和ES%详见[6]VaR = -1*(Mu-Sigma*norminv(VaRLevel));ES = -1*(Mu-Sigma*normpdf(norminv(VaRLevel))./(1-VaRLevel));<年代pan style="color:#0000FF">结束函数[VaR,ES] = hTVaRES(DoF,Mu,Sigma,VaRLevel)<年代pan style="color:#228B22">计算t位置尺度分布的VaR和ES%详见[6]VaR = -1*(Mu-Sigma*tinv(VaRLevel,DoF));ES_StandardT = (tpdf (tinv VaRLevel,景深,景深)。*(景深+ tinv (VaRLevel,景深)。^ 2)。/ ((1-VaRLevel)。* (DoF-1)));ES = -1*(Mu-Sigma* es_standard);<年代pan style="color:#0000FF">结束

相关的例子

更多关于