主要内容

风险价值估计和回测

这个例子展示了如何使用三种方法估计风险值(VaR)并执行VaR回测分析。这三种方法是:

  1. 正态分布

  2. 历史模拟

  3. 指数加权移动平均

风险价值是一种统计方法,用于量化与投资组合相关的风险水平。VaR衡量的是在特定的时间范围内和给定的置信水平下的最大损失。

回溯测试测量VaR计算的准确性。使用VaR方法,计算损失预测,然后与第二天结束时的实际损失进行比较。预测损失与实际损失的差异程度表明VaR模型是低估风险还是高估风险。因此,回溯测试对数据进行回顾性分析,有助于评估VaR模型。

本例中使用的三种估计方法分别在95%和99%的置信水平上估计VaR。

加载数据并定义测试窗口

加载数据。本例中使用的数据来自1993年至2003年标准普尔指数回报率的时间序列。

负载VaRExampleData.mat返回= tick2ret(sp);DateReturns =日期(2:结束);SampleSize = length(返回);

将评估窗口定义为250个交易日。测试窗口从1996年的第一天开始,一直持续到样本的末尾。

TestWindowStart = find(year(DateReturns)==1996,1);TestWindow = TestWindowStart: SampleSize;EstimationWindowSize = 250;

当VaR置信水平为95%和99%时,设置VaR水平的补值。

pVaR = [0.05 0.01];

这些值意味着所发生的损失将分别有最多5%和1%的概率大于最大阈值(即大于VaR)。

使用正态分布方法计算VaR

对于正态分布方法,假设投资组合的利润和损失是正态分布的。使用这个假设,通过乘以z-得分,在每个置信度上由收益的标准差表示。由于VaR回溯测试对数据进行回溯,“今天”的VaR是根据最近的回报值计算的N= 250天,但不包括“今天”。

Zscore = norminv(pVaR);Normal95 = 0(长度(TestWindow),1);Normal99 = 0(长度(TestWindow),1);t = TestWindowStart + 1;EstimationWindow = t-EstimationWindowSize:t-1;Sigma = std(返回(估计窗口));Normal95(i) = -Zscore(1)*Sigma;Normal99(i) = -Zscore(2)*Sigma;结束图;plot(DateReturns(TestWindow),[Normal95 Normal99]) xlabel(“日期”) ylabel (“VaR”)({传奇“95%置信水平”“99%置信水平”},“位置”“最佳”)标题(《用正态分布方法估计VaR》

图中包含一个轴对象。标题VaR估计使用正态分布方法的坐标轴对象包含2个类型为行的对象。这些对象表示95%置信度,99%置信度。

正态分布方法也被称为参数VaR,因为它的估计涉及到计算收益的标准偏差的参数。正态分布方法的优点是简单。然而,正态分布方法的缺点是假设收益是正态分布的。正态分布方法的另一个名称是方差-协方差法。

使用历史模拟方法计算VaR

与正态分布方法不同,历史模拟(HS)是非参数方法。它不假设资产收益的特定分布。历史模拟通过假设过去的利润和损失可以被用作下一阶段收益的利润和损失的分配来预测风险。VaR“今天”计算为p最后的th-分位数N返回“今天”之前的值。

Historical95 = 0(长度(TestWindow),1);Historical99 = 0(长度(TestWindow),1);t = TestWindowStart + 1;EstimationWindow = t-EstimationWindowSize:t-1;X =返回(EstimationWindow);Historical95(i) = -quantile(X,pVaR(1));Historical99(i) = -quantile(X,pVaR(2));结束图;plot(DateReturns(TestWindow),[Historical95 Historical99]) ylabel(“VaR”)包含(“日期”)({传奇“95%置信水平”“99%置信水平”},“位置”“最佳”)标题(“使用历史模拟方法估计VaR”

图中包含一个轴对象。使用历史模拟方法进行标题VaR估计的轴对象包含2个类型行对象。这些对象表示95%置信度,99%置信度。

从上图可以看出,历史模拟曲线具有分段不变的轮廓。这是因为在极端事件发生之前,分位数在数天内不会改变。因此,历史模拟方法对波动率的变化反应较慢。

用指数加权移动平均法(EWMA)计算VaR

前两种VaR方法假设所有过去的回报都具有相同的权重。指数加权移动平均(EWMA)方法赋予不相等的权重,特别是指数递减的权重。最近的回报具有更高的权重,因为它们对“今天”的回报的影响比过去的回报更大。在一个大小估计窗口上的EWMA方差公式 W E 是:

σ ˆ t 2 1 c 1 W E λ - 1 y t - 2

在哪里 c 是一个归一化常数:

c 1 W E λ - 1 1 - λ W E 1 - λ 1 1 - λ 一个 年代 W E

为了方便起见,我们假设一个无限大的估计窗口来近似方差:

σ ˆ t 2 1 - λ y t - 1 2 + 2 λ - 1 y t - 2 1 - λ y t - 1 2 + λ σ ˆ t - 1 2

在实践中经常使用的衰减因子值为0.94。这是本例中使用的值。有关更多信息,请参阅参考资料。

使用预热阶段来初始化EWMA以设置标准偏差。

Lambda = 0.94;Sigma2 = 0 (length(Returns),1);Sigma2(1) = Returns(1)^2;i = 2:(TestWindowStart-1) Sigma2(i) = (1-Lambda) *返回(i-1)^2 + Lambda * Sigma2(i-1);结束

在测试窗口中使用EWMA来估计VaR。

Zscore = norminv(pVaR);EWMA95 = 0(长度(TestWindow),1);EWMA99 = 0(长度(TestWindow),1);t = TestWindowStart + 1;Sigma2(t) = (1-Lambda) *返回(t-1)²+ Lambda * Sigma2(t-1);Sigma =√(Sigma2(t));EWMA95(k) = -Zscore(1)*Sigma;EWMA99(k) = -Zscore(2)*Sigma;结束图;plot(DateReturns(TestWindow),[EWMA95 EWMA99]) ylabel(“VaR”)包含(“日期”)({传奇“95%置信水平”“99%置信水平”},“位置”“最佳”)标题(“使用EWMA方法估计VaR”

图中包含一个轴对象。使用EWMA方法估计标题VaR的坐标轴对象包含2个类型为行的对象。这些对象表示95%置信度,99%置信度。

在上图中,EWMA对大(或小)回报周期的反应非常快。

VaR val

在本例的第一部分中,VaR在测试窗口内用三种不同的方法和两个不同的VaR置信水平进行了估计。VaR回测的目的是评价VaR模型的性能。95%置信度的VaR估计只有5%的时间会被违反,并且VaR故障不会聚集。VaR失败的聚类表明,随着时间的推移,VaR模型缺乏独立性,因为VaR模型对不断变化的市场条件反应缓慢。

在VaR回溯测试分析中,常见的第一步是将收益和VaR估计值一起绘制出来。在95%置信水平上绘制所有三种方法,并将它们与收益进行比较。

ReturnsTest =返回(TestWindow);DatesTest = DateReturns(TestWindow);图;plot(DatesTest,[ReturnsTest -Normal95 -Historical95 -EWMA95])“VaR”)包含(“日期”)({传奇“返回”“正常”“历史”“EWMA”},“位置”“最佳”)标题(“不同模型95%回报率和VaR的比较”

图中包含一个轴对象。标题为“Comparison of returns and VaR at 95% for different models”的坐标轴对象包含4个类型为line的对象。这些对象表示回报、正常、历史、EWMA。

为了突出不同的方法如何对不断变化的市场条件做出不同的反应,你可以放大回报价值突然发生巨大变化的时间序列。例如,1998年8月前后:

ZoomInd = (DatesTest >= datetime(1998,8,5)) & (DatesTest <= datetime(1998,10,31));VaRData = [-Normal95(ZoomInd) -Historical95(ZoomInd) -EWMA95(ZoomInd)];VaRFormat = {“- - -”“——”“-”。};D = DatesTest(ZoomInd);R = ReturnsTest(ZoomInd);N = Normal95(ZoomInd);H = Historical95(ZoomInd);E = EWMA95(ZoomInd);IndN95 = (R < -N);IndHS95 = (R < -H);IndEWMA95 = (R < -E);图; bar(D,R,0.5,“FaceColor”,[0.7 0.7 0.7]);持有i = 1: size(VaRData,2) stairs(D-0.5,VaRData(:,i),VaRFormat{i});结束ylabel (“VaR”)包含(“日期”)({传奇“返回”“正常”“历史”“EWMA”},“位置”“最佳”“自动更新”“关闭”)标题(“不同型号95%的VaR违规”) ax = gca;斧子。ColorOrderIndex = 1;情节(D (IndN95) - n (IndN95),“o”D (IndHS95) - h (IndHS95),“o”...D (IndEWMA95) - e (IndEWMA95),“o”“MarkerSize”8“线宽”,1.5) xlim([D(1)-1, D(end)+1])保持

图中包含一个轴对象。对于不同的模型,标题95% VaR违规的坐标轴对象包含类型栏、楼梯、线的7个对象。这些对象表示回报、正常、历史、EWMA。

当VaR为负时,就会出现VaR失败或违反。仔细观察8月27日至8月31日期间,回报率出现了显著下降。从8月27日开始,EWMA更紧密、更准确地跟随投资回报的趋势。因此,与正态分布方法(7(7)次违规,蓝星)或历史模拟方法(8(8)次违规,红方块)相比,EWMA具有更少的VaR违规(2(2)次违规,黄钻)。

除了可视化工具,您还可以使用统计测试进行VaR回溯测试。在风险管理工具箱™中,avarbacktest对象支持VaR金宝app回测分析的多个统计测试。在本例中,首先比较95%和99% VaR水平下正态分布方法的不同测试结果。

vbt = varbacktest(ReturnsTest,[Normal95 Normal99],“PortfolioID”“标普”“VaRID”...“Normal95”“Normal99”},“VaRLevel”[0.95 - 0.99]);总结(vbt)
ans =表2×10PortfolioID VaRID VaRLevel ObservedLevel观察故障预计比FirstFailure失踪  ___________ __________ ________ _____________ ____________ ________ ________ ______ ____________ _______ " 标普”“Normal95“0.95 0.94863 98.3 - 1.0275 1966 101 7 0”标普Normal99”0.99 0.98372 1966 32 19.66 - 1.6277 7 0

总结报告显示,观察到的水平与定义的VaR水平足够接近。95%和99%的VaR水平最多(1-VaR_level) xN预期故障,其中N是观测的数量。故障率表明Normal95VaR水平在范围内,而Normal99VaR Level不精确,低估了风险。中支持的所有测试金宝appvarbacktest,使用runtests

runtests (vbt)
ans =2×11表PortfolioID VaRID VaRLevel TL Bin POF TUFF CC CCI TBF TBFI ___________ __________ ________ ______ ______ ______ ______ ______ ______ ______ ______ "S&P" "Normal95" 0.95绿色接受接受接受接受拒绝拒绝拒绝"S&P" "Normal99" 0.99黄色拒绝拒绝接受接受接受拒绝拒绝

95% VaR通过频率测试,如红绿灯测试、二项式测试和故障比例测试(tl箱子,pof列)。99% VaR没有通过这些相同的测试,如所示黄色的而且拒绝结果。在条件覆盖独立性和失败间隔时间独立性(cci而且tbfi列)。这一结果表明,VaR违规并不是独立的,在短时间内可能存在多次失败的时期。而且,一次失败很有可能在接下来的日子里发生其他的失败。有关测试方法和结果解释的更多信息,请参见varbacktest还有单项测试。

使用一个varbacktest对象,在VaR置信水平下对三种方法的投资组合进行相同的测试。

vbt = varbacktest(ReturnsTest,[Normal95 Historical95 EWMA95 Normal99 Historical99 . vbt = varbacktest(ReturnsTest,[Normal95 Historical95 EWMA95 Normal99 Historical99 ....EWMA99),“PortfolioID”“标普”“VaRID”, {“Normal95”“Historical95”“EWMA95”...“Normal99”“Historical99”“EWMA99”},“VaRLevel”,[0.95 0.95 0.95 0.99 0.99 0.99]);runtests (vbt)
ans =6×11表PortfolioID VaRID VaRLevel TL Bin POF TUFF CC CCI TBF TBFI ___________ ______________ ______________ ____________ ____________ ____________ ______ "S&P" "Normal95" 0.95绿色接受接受接受接受接受拒绝拒绝"S&P" "Historical95" 0.95黄色接受接受接受接受接受接受拒绝拒绝"S&P" "EWMA95" 0.95绿色接受接受接受接受接受拒绝拒绝"S&P" "Normal99" 0.99黄色拒绝接受接受接受拒绝拒绝"S&P" "Historical99" 0.99黄色拒绝接受接受拒绝拒绝"S&P" "Historical99" 0.99黄色"S&P" "EWMA99" 0.99红色拒绝接受接受拒绝接受拒绝拒绝

结果与之前的结果相似,在95%水平上,频率结果基本可以接受。但是,频率在99%水平的结果通常是被拒绝的。关于独立性,大多数测试都通过了条件覆盖独立性测试(cci),测试连续几天的独立性。注意,所有测试失败的时间间隔独立测试(tbfi),其中考虑了所有失败之间的时间间隔。这一结果表明,所有的方法都存在独立假设的问题。

为了更好地理解这些结果在市场条件下是如何变化的,看看2000年和2002年的95% VaR置信水平。

Ind2000 = (year(DatesTest) == 2000);vbt2000 = varbacktest(ReturnsTest(Ind2000),[Normal95(Ind2000) Historical95(Ind2000) EWMA95(Ind2000)],...“PortfolioID”“标普2000”“VaRID”, {“正常”“历史”“EWMA”});runtests (vbt2000)
ans =3×11表PortfolioID VaRID VaRLevel TL Bin POF凝灰岩CC CCI TBF TBFI ___________ ____________ ________ ___________ ____________ ____________ ____________“标普,2000”“正常”0.95绿色接受接受接受接受接受接受接受接受接受接受接受接受接受接受接受接受接受接受接受接受接受“标普,2000”“EWMA”0.95绿色接受接受接受接受接受接受接受接受接受接受接受接受接受
Ind2002 = (year(DatesTest) == 2002);vbt2002 = varbacktest(ReturnsTest(Ind2002),[Normal95(Ind2002) Historical95(Ind2002) EWMA95(Ind2002)],...“PortfolioID”“标普2002”“VaRID”, {“正常”“历史”“EWMA”});runtests (vbt2002)
ans =3×11表PortfolioID VaRID VaRLevel TL Bin POF TUFF CC CCI TBF TBFI ___________ ____________ ________ ____________ ____________ ____________ ____________ "标普,2002" "正常" 0.95黄色拒绝接受接受拒绝拒绝拒绝"标普,2002" "历史" 0.95黄色拒绝接受接受拒绝拒绝拒绝"标普,2002" "EWMA" 0.95绿色接受接受接受接受拒绝拒绝拒绝拒绝

在2000年,这三种方法都通过了所有测试。但是,2002年的测试结果大部分是所有方法都被拒绝。EWMA方法在2002年表现较好,但所有方法都未能通过独立性检验。

要更深入地了解独立性测试,请查看条件覆盖独立性(cci)和两次失败之间的时间间隔(tbfi) 2002年的考试详情。若要访问所有测试的测试详细信息,请运行各个测试函数。

cci (vbt2002)
ans =表3×13PortfolioID VaRID VaRLevel CCI LRatioCCI PValueCCI观测失败N00 N10 N01 N11 TestLevel ___________ ____________ ________ ______ _________ _________ ____________ ___________ _________ _________ "S&P, 2002" "Normal" 0.95拒绝12.591 0.0003877 261 21 225 14 14 7 0.95 "S&P, 2002" "Historical" 0.95拒绝6.3051 0.012039 261 20 225 15 15 5 0.95 "S&P, 2002" "EWMA" 0.95拒绝4.6253 0.031504 261 14 235 11 11 3 0.95

在CCI检验中,概率p01有失败的时候t因为那时没有失败t-1由

p 0 1 N 0 1 N 0 1 + N 0 0

的概率p11有失败的时候t,知道有时会有失败t-1由

p 1 1 N 1 1 N 1 1 + N 1 0

N00N10N01N11列中的测试结果,值p01是在5%左右的三种方法,但的值p11在20%以上。因为有证据表明,一个失败之后紧接着另一个失败的频率远高于5%,所以这个CCI测试失败了。

在故障间隔时间独立性检验中,在列中查看故障间隔时间分布的最小值、最大值和四分位数TBFMinTBFQ1TBFQ2TBFQ3TBFMax

tbfi (vbt2002)
ans =表3×14PortfolioID VaRID VaRLevel TBFI LRatioTBFI PValueTBFI观察故障TBFMin TBFQ1 TBFQ2 TBFQ3 TBFMax TestLevel  ___________ ____________ ________ ______ __________ __________ ____________ ________ ______ _____ _____ _____ ______ _________ " 标普2002”“正常”0.95拒绝53.936 - 0.00010087 261 21 1 1 5 17 48 0.95”标准普尔,2002年”“历史“0.95拒绝20 1 1.5 5.5 45.274 0.0010127 261 17 48 0.95”标准普尔,2002年“EWMA 0.95拒绝25.756 - 0.027796 261年14 1 4 7.5 20 48 0.95

对于VaR水平为95%,您期望故障之间的平均间隔时间为20天,或每20天发生一次故障。然而,2002年这三种方法的失败间隔时间的中位数在5到7.5之间。这一结果表明,在一半的时间里,连续两次故障发生在5到7天内,比预期的20天要频繁得多。因此,会出现更多的测试失败。对于正常的方法,第一个四分位数是1,这意味着25%的故障发生在连续的日子里。

参考文献

Nieppola, O。回溯风险价值模型.赫尔辛基经济学院,2009。

Danielsson J。金融风险预测:预测市场风险的理论与实践,在R和MATLAB®实现.威利金融,2012。

另请参阅

||||||||||

相关的例子

更多关于