Matlab正态分布、历史模拟法、加权移动平均线 EWMA估计风险价值VaR和回测标准普尔指数 S&P500时间序列

简介: Matlab正态分布、历史模拟法、加权移动平均线 EWMA估计风险价值VaR和回测标准普尔指数 S&P500时间序列

此示例说明如何使用三种方法估计风险价值 (VaR) 并执行 VaR 回测分析。这三种方法是:

  • 正态分布
  • 历史模拟
  • 指数加权移动平均线 (EWMA)


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

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

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

加载数据并定义测试窗口

加载数据。本例中使用的数据来自标准普尔指数从 1993 年到 2003 年的时间序列收益率。

tik2rt(sp);

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

WinSze = 250;

对于 95% 和 99% 的 VaR 置信水平。

p = \[0.05 0.01\];

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

使用正态分布方法计算 VaR

对于正态分布法,假设投资组合的损益呈正态分布。使用此假设,通过将每个置信水平的_z_分数乘以收益率的标准差来计算 VaR  。由于 VaR 回溯测试对数据进行追溯,因此“今天”的 VaR 是根据过去_N_  = 250 天(但不包括“今天”)的收益率值计算得出的 。

for t = TtWnow
    i = t - TsWidoSrt + 1;
    Esationdw = t-EtiWinwSze:t-1;
    gma = std(Returns(tmWinow));
    Noa95(i) = -Zscre(1)*Sima;
    Nrml99(i) = -Zsore(2)*Sigma;
end
plot(DaeRtuns(TsWidw),\[Nrm95 oma99\])

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

使用历史模拟方法计算 VaR

与正态分布方法不同,历史模拟 (HS) 是一种非参数方法。它不假设资产收益的特定分布。历史模拟通过假设过去的损益可以作为下一个收益期的损益分配来预测风险。“今天”的 VaR 计算为“今天” 之前 最后_N 次_收益率的 _第 p_个分位数 。

for t = Tstidow
    i = t - Tsidwtt + 1;
    Htrl95(i) = -qate(X,pVR(1));
    Hii99(i) = -qatie(X,pVaR(2));
fiure;
plot(Dtr(Ttow),Hic95Hstrl99
Hic95 Hstrl99)

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



点击标题查阅往期内容


Python蒙特卡罗(Monte Carlo)模拟计算投资组合的风险价值(VaR)



左右滑动查看更多



01

02

03

04




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

前两个 VaR 方法假设所有过去的收益率都具有相同的权重。指数加权移动平均 (EWMA) 方法分配不相等的权重,尤其是指数递减的权重。最近的收益率具有更高的权重,因为它们对“今天”收益率的影响比过去更远的收益率更大。大小估计窗口上的 EWMA 方差公式 是:

是归一化常数:

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

实践中经常使用的衰减因子的值为0.94。这是本示例中使用的值。

启动 EWMA 设置标准偏差。

Laa = 0.94;
for i = 2 : (Tsart-1)
    Sm2(i) = (1-Labda) * Rts(i-1)^2 + Lama * m2(i-1);
在测试窗口中使用 EWMA 来估计 VaR。
for t = TeWio
    EWMA95 (k) = -Zscre(1)*Sima;
    EWMA99(k) = -Zsoe(2)*Siga;
end
plot(DR,EWMA95EWMA99
EWMA95 EWMA99)

在上图中,EWMA 对大(或小)收益率时期的反应非常迅速。

VaR回测

在本示例的第一部分中,使用三种不同的方法和两种不同的 VaR 置信水平在测试窗口上估计了 VaR。VaR 回测的目标是评估 VaR 模型的性能。95% 置信度的 VaR 估计值仅在大约 5% 的时间内被违反。VaR 失败的集群表明缺乏跨时间的独立性,因为 VaR 模型对不断变化的市场条件反应缓慢。

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

Rtnet = Rrns(Tstnow);
DesTst   = Das(TsWnow);
fige;
plot

为了突出不同的方法如何对不断变化的市场条件做出不同的反应,您可以放大收益率值发生巨大和突然变化的时间序列。例如,大约在 1998 年 8 月:

Zm   = (Da >= da(1998,8,5)) & (D <= da(1998,10,31);
br(D,);
for i = 1 : sze(Vata,2)
    sts(D-0.5,VaRData(:,i),VaFt{i});
plot(D(IN95),-N(nN95)

当收益为负 VaR 时,就会发生 VaR 失败。仔细观察 8 月 27 日至 8 月 31 日,会发现收益率显着下降。从 8 月 27 日起,EWMA 更密切、更准确地跟踪收益率趋势。因此,与正态分布方法(7次失败,蓝色)或历史模拟方法(8次失败,红色)相比,EWMA 的 VaR 失败(2)次失败,紫色)较少。

除了可视化工具,您还可以使用统计测试进行 VaR 回测。在此示例中,首先比较正态分布方法在 95% 和 99% VaR 水平下的不同测试结果。

bctet(etet,\[Nrml95 Noml99\]);
summary

摘要报告显示观察到的水平与定义的 VaR 水平足够接近。95% 和 99% VaR 水平至多具有期望失败,其中 N 是观察次数。失败率表明  VaR 水平在范围内,而  VaR 水平不精确并且低估了风险。运行所有支持的测试 (1-VaR_level) x _N_

test(vt)

95%的VaR通过了测试,如二项式和失败比例测试(TL、BIN和POF列)。99%的VaR没有通过这些相同的测试,如拒绝结果所示。在条件覆盖率独立性和间隔时间独立性(ci和tbfi列)中,两个置信度都被拒绝。这个结果表明,VaR的违反不是独立的,可能在短时间内有多次失败的时期。另外,一次失败可能会使其他失败在随后的日子里更有可能发生。

在两个 VaR 置信水平下对三种方法的投资组合运行相同的测试。

rbackest

结果和之前的结果差不多,在95%的水平上,结果基本可以接受。然而,在 99% 水平的结果通常是拒绝。关于独立性,大多数测试通过了条件覆盖独立性测试,连续几天测试独立性。请注意,所有测试都失败了独立性测试之间的时间间隔,它考虑了所有失败之间的时间。这个结果表明所有方法都存在独立性假设的问题。

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

n00 = yar(aet) == 2000);

I22 = (ea) == 2002);
v202 = rbks(RtrTt(n202

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

要更深入地了解独立性测试,请查看条件覆盖独立性和失败间隔时间独立性2002 年的测试详细信息。运行各个测试功能。

cci

在 CCI 测试中,知道在时间_t_ -1没有失败的情况下,  在时间_t_发生失败 的概率 p 由下式给出01

在时间_t_发生失败 的概率 p ,知道在时间_t_ -1发生失败, 由下式给出11

从 测试结果中的N00, N10,  N01, N11列来看 ,  三种方法的_p_ 值 01都在 5% 左右,而_p_ 值 11 都在 20% 以上。因为有证据表明一个失败之后出现另一个失败的频率远高于 5%,所以这个 CCI 测试失败了。

在失败间隔时间独立性测试中,查看失败间隔时间分布的最小值、最大值和四分位数,在TBFMin、  TBFQ1、  TBFQ2、  TBFQ3、 列中 TBFMax

tbfi

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

参考

Danielsson, J. _金融风险预测:预测市场风险的理论和实践_。威利财经,2012 年。


相关文章
|
13天前
|
机器学习/深度学习 算法 数据挖掘
基于WOA优化的CNN-LSTM的时间序列回归预测matlab仿真
本项目采用MATLAB 2022a实现时间序列预测,利用CNN与LSTM结合的优势,并以鲸鱼优化算法(WOA)优化模型超参数。CNN提取时间序列的局部特征,LSTM处理长期依赖关系,而WOA确保参数最优配置以提高预测准确性。完整代码附带中文注释及操作指南,运行效果无水印展示。
|
21天前
|
机器学习/深度学习 算法 数据挖掘
基于GWO灰狼优化的CNN-GRU的时间序列回归预测matlab仿真
时间序列预测关键在于有效利用历史数据预测未来值。本研究采用卷积神经网络(CNN)提取时间序列特征,结合GRU处理序列依赖性,并用灰狼优化(GWO)精调模型参数。CNN通过卷积与池化层提取数据特征,GRU通过更新门和重置门机制有效管理长期依赖。GWO模拟灰狼社群行为进行全局优化,提升预测准确性。本项目使用MATLAB 2022a实现,含详细中文注释及操作视频教程。
|
23天前
|
机器学习/深度学习 算法 数据挖掘
基于WOA优化的CNN-GRU的时间序列回归预测matlab仿真
本项目运用鲸鱼优化算法(WOA)优化卷积神经网络(CNN)与GRU网络的超参数,以提升时间序列预测精度。在MATLAB 2022a环境下,通过CNN提取时间序列的局部特征,而GRU则记忆长期依赖。WOA确保模型参数最优配置。代码附有中文注释及操作视频,便于理解和应用。效果预览无水印,直观展示预测准确性。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的CNN-GRU的时间序列回归预测matlab仿真
- **算法理论:** 利用PSO优化的CNN-GRU,结合CNN的特征提取和GRU的记忆机制,进行时间序列预测。 - **CNN:** 通过卷积捕获序列的结构信息。 - **GRU:** 简化的LSTM,处理序列依赖。 - **预测步骤:** 1. 初始化粒子群,每粒子对应一组模型参数。 2. 训练并评估CNN-GRU模型的验证集MSE。 3. 使用PSO更新参数,寻找最佳配置。 4. 迭代优化直至满足停止准则。 ```
|
3月前
|
算法 安全 数据库
基于结点电压法的配电网状态估计算法matlab仿真
**摘要** 该程序实现了基于结点电压法的配电网状态估计算法,旨在提升数据的准确性和可靠性。在MATLAB2022a中运行,显示了状态估计过程中的电压和相位估计值,以及误差随迭代变化的图表。算法通过迭代计算雅可比矩阵,结合基尔霍夫定律解决线性方程组,估算网络节点电压。状态估计过程中应用了高斯-牛顿或莱文贝格-马夸尔特法,处理量测数据并考虑约束条件,以提高估计精度。程序结果以图形形式展示电压幅值和角度估计的比较,以及估计误差的演变,体现了算法在处理配电网状态估计问题的有效性。
|
3月前
|
机器学习/深度学习 自然语言处理 算法
m基于深度学习的OFDM+QPSK链路信道估计和均衡算法误码率matlab仿真,对比LS,MMSE及LMMSE传统算法
**摘要:** 升级版MATLAB仿真对比了深度学习与LS、MMSE、LMMSE的OFDM信道估计算法,新增自动样本生成、复杂度分析及抗频偏性能评估。深度学习在无线通信中,尤其在OFDM的信道估计问题上展现潜力,解决了传统方法的局限。程序涉及信道估计器设计,深度学习模型通过学习导频信息估计信道响应,适应频域变化。核心代码展示了信号处理流程,包括编码、调制、信道模拟、降噪、信道估计和解调。
60 8
|
2月前
|
机器学习/深度学习 算法
基于PSO粒子群优化的CNN-LSTM的时间序列回归预测matlab仿真
**算法预览图省略** - **软件版本**: MATLAB 2022a - **核心代码片段**略 - **PSO-CNN-LSTM概览**: 结合深度学习与优化,解决复杂时间序列预测。 - **CNN**利用卷积捕获时间序列的空间特征。 - **LSTM**通过门控机制处理长序列依赖,避免梯度问题。 - **流程**: 1. 初始化粒子群,每个粒子对应CNN-LSTM参数。 2. 训练模型,以验证集MSE评估适应度。 3. 使用PSO更新粒子参数,寻找最佳配置。 4. 迭代优化直到满足停止条件,如最大迭代次数或找到优良解。
|
3月前
|
机器学习/深度学习 算法 数据可视化
基于GA遗传优化的CNN-LSTM的时间序列回归预测matlab仿真
摘要:该内容展示了基于遗传算法优化的CNN-LSTM时间序列预测模型在matlab2022a中的应用。核心程序包括遗传算法优化过程、网络训练、误差分析及预测结果的可视化。模型通过GA调整CNN-LSTM的超参数,提升预测准确性和稳定性。算法流程涉及初始化、评估、选择、交叉和变异等步骤,旨在找到最佳超参数以优化模型性能。
|
3月前
|
算法
m基于GA遗传优化的高斯白噪声信道SNR估计算法matlab仿真
**MATLAB2022a模拟展示了遗传算法在AWGN信道中估计SNR的效能。该算法利用生物进化原理全局寻优,解决通信系统中复杂环境下的SNR估计问题。核心代码执行多代选择、重组和突变操作,逐步优化SNR估计。结果以图形形式对比了真实SNR与估计值,并显示了均方根误差(RMSE),体现了算法的准确性。**
31 0
|
4月前
|
机器学习/深度学习 存储 算法
基于CNN+LSTM深度学习网络的时间序列预测matlab仿真,并对比CNN+GRU网络
该文介绍了使用MATLAB2022A进行时间序列预测的算法,结合CNN和RNN(LSTM或GRU)处理数据。CNN提取局部特征,RNN处理序列依赖。LSTM通过门控机制擅长长序列,GRU则更为简洁、高效。程序展示了训练损失、精度随epoch变化的曲线,并对训练及测试数据进行预测,评估预测误差。

热门文章

最新文章

下一篇
云函数