Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型

简介: Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型

波动率是一个重要的概念,在金融和交易中有许多应用。这是期权定价的基础。波动率还使您可以确定资产分配并计算投资组合的风险价值(VaR)。甚至波动率本身也是一种金融工具,例如CBOE的VIX波动率指数。但是,与证券价格或利率不同,波动不能直接观察到。

取而代之的是,它通常被衡量为来自证券或市场指数的收益或收益历史的统计波动。这种类型的度量称为已实现波动率或历史波动率。衡量波动率的另一种方法是通过期权市场,在该市场中,可以使用期权价格通过某些期权定价模型来得出基础证券的波动性。Black-Scholes模型是最受欢迎的模型。这种定义称为 隐含波动性。VIX基于隐含波动率。

存在多种统计方法来衡量收益序列的历史波动率。较高频率的数据可用于计算低频收益的波动率。例如,使用日内收益率来计算每日波动率;使用每日收益来每周波动。人们还可以使用每日OHLC(开盘价,最高价,最低价和收盘价)来计算每日波动率。更多的学术方法包括ARCH(自回归条件异方差),GARCH(广义ARCH),TGARCH(阈值GARCH),EGARCH(指数GARCH)等。我们不会详细讨论每个模型及其优缺点。相反,我们将专注于随机波动率(SV)模型,并将其结果与其他模型进行比较。通常,SV模型很难用回归方法来估计。

 

EUR / USD汇率

我们将以2003-2018年EUR / USD汇率的每日收盘价为例来计算每日波动率。



ask = readtable('EURUSDdaily.csv');



t = ask.Time;

cl = ask.close;



%% 相关性检验

rtn = double((cl - lagmatrix



% - remove NaN

t = t(2:en  ;



n = size(rtn,1);    %数据量



figure('position',

 

图1. EUR / USD的每日汇率 和每日对数收益率。

图2显示没有证据表明收益率存在序列相关性。最多30个之后的收益的自相关函数(ACF)和偏自相关函数(PACF)无相关性。收益率的Ljung-Box Q检验也未显示明显的自相关。


% 序列相关性检验

figure('position',[355  


figure('position',[355   
ylabel('Return^2');

图2.收益相关性检验。Ljung-Box Q检验(左下方)未显示出明显的自相关。自相关函数(右上)和偏自相关函数(右下)(红色虚线为95%置信区间),表示没有相关性。

但是,我们可以确定具有较大绝对收益的周期的群集。因此,绝对收益率值具有明显的序列相关性。这在图3的收益平方分析中得到了证实,其中ACF和PACF均显着,并且Ljung-Box Q检验也强烈表明了序列自相关。这种相关性是由集群的波动性引起的,也就是说,波动率在某些时期(例如,2008年的金融危机)较高,而在其他时期则较低。

图3.收益率平方的相关检验。

GARCH(广义自回归条件异方差)模型

我们首先使用经典GARCH(1,1)模型对收益序列进行建模


可以使用Matlab来估算GARCH(1,1)模型。图4和5中的ACF,PACF和Ljung-Box Q检验未显示出残差中的显着序列相关性,图4左上方的残差项比原始收益序列更像白噪声。然后可以认为GARCH(1,1)模型足以描述收益率的波动性(图6)。




% 序列残差相关性检验
figure('position',[355   320   800   400]);
plotcorrstat(t,res,30,1:30)






%% 绘制波动率
figure('position',[355   320   800   200]);
plot(t,V
ylabel('GARCH Volatility h_t');

图4. GARCH(1,1)模型残差的相关性检验。

图5.对GARCH(1,1)模型的残差平方的相关性检验。

图6. GARCH(1,1)模型的波动率。

马尔可夫链蒙特卡洛(MCMC)

MCMC由两部分组成。在 蒙特卡洛 部分是如何从一个给定的概率分布得出的随机样本,马尔可夫链 部分的目标是产生一个稳定的随机过程,称为马尔可夫过程。马尔可夫过程具有以下特征:随机过程的下一步骤的状态仅取决于当前步骤的状态。这种依赖性不是确定性的。取而代之的是,由当前概率到下一步的转移由平稳概率分布来描述。


MCMC已被广泛用于解决物理和财务问题。

随机波动率(SV)模型

从1990年代初开始就随机波动率建模,自1994年Jacquier,Polson和Rossi的论文首次为随机波动率提供清晰证据以来,该模型就开始应用。根据他们的开创性论文,我们编写了SV模型,


 

MCMC诊断

根据问题和设置,MCMC在序列接近目标分布之前可能需要进行多次迭代。如图7所示  beta快速达到稳定状态。稳定性之前的这些迭代称为“预烧期”。我们运行10000次迭代。

 

图7.参数的迭代。

在MCMC过程中抽取样本意味着连续样本之间可能存在相关性。为了评估序列中有多少相关,我们绘制了每个参数在不同滞后的样本自相关函数(图8)。具有高度相关性的马尔可夫链在参数空间中缓慢移动,并需要更多的迭代和更长的计算时间才能以接近目标分布的概率访问参数空间中的不同区域。因此,给定固定的迭代总数 ,具有高相关性的马尔可夫链的独立样本的总数小于具有低相关性的马尔可夫链的独立样本的总数 。

我们可以通过计算 有效样本量ESS)表示单个马尔可夫链的参数。了解ESS后,我们可以估算 MCMC方差,它衡量MCMC接近目标分布的精确度。显然,需要低MCMC方差。

可以为单个参数计算ESS。但是,考虑到参数之间的潜在互相关性(我们将在下面的联合分布图中看到),我们计算了多元ESS,发现在6000个样本中大约有517个。这些小的标准误差表明,我们的单个MCMC序列中的样本很好地代表了参数的目标联合分布。在ESS值较小(通常<100)的情况下,要么必须调整分布的参数以减少自相关,要么必须简单地生成更多样本(以计算时间为代价)。

可以采用用于Metropolis-Hastings算法的更复杂的提议方法来减少序列中的相关性,例如汉密尔顿式MCMC。

图8.预烧期后参数序列的自相关。红线表示5%的显着性水平。

结果和讨论

去除burin-in后,我们获得了参数样本的集合,这些样本可以从参数的真实高维联合分布中近似随机抽取的样本。然后,我们可以对这些参数进行统计推断。例如,成对参数的联合分布和每个参数的边缘分布如图9所示。

使用联合后验分布证明采样是合理的。但是,为不同的先验分布的变量计算出接近形式的后验分布将很麻烦。在这种情况下,Metropolis-Hastings采样方法有优势。

 

图9.配对参数的联合分布的散点图和参数的边缘分布(对角线面板)的直方图。

从边缘分布,我们可以估计参数的均值和标准误


beta alpha1 alpha2 sigma
均值 0.004 -0.053 0.957 0.044
标准误 0.008 0.008 0.006 0.004

随机波动率及其置信区间是通过在序列变得稳定之后计算采样波动率的平均值,2.5%和97.5%的分位数来获得的。绘制在图10中。

图10. 4000次测试后随机波动率的后验均值。随机波动率的95%的分位数之间用红色表示置信区间。

SV模型的随机波动总体上与GARCH模型非常相似,但参差不齐。这是自然的,因为SV模型中假设了额外的随机项。与其他模型相比,使用随机波动率模型的主要优点是,波动率被建模为随机过程而不是确定性过程。这使我们可以获得序列中每次的波动率的近似分布。当应用于波动率预测时,随机模型可以为预测提供置信度。另一方面,缺点也很明显。计算成本相对较高。


相关文章
车辆行驶控制运动学模型的matlab建模与仿真,仿真输出车辆动态行驶过程
该课题在MATLAB2022a中建立了车辆行驶控制运动学模型并进行仿真,展示车辆动态行驶过程。系统仿真结果包含四张图像,显示了车辆在不同时间点的位置和轨迹。核心程序定义了车辆参数和初始条件,使用ode45求解器模拟车辆运动。车辆运动学模型基于几何学,研究车辆空间位姿、速度随时间变化,假设车辆在平面运动且轮胎无滑动。运动学方程描述位置、速度和加速度关系,模型预测控制用于优化轨迹跟踪,考虑道路曲率影响,提升弯道跟踪性能。
|
30天前
|
机器学习/深度学习 算法
【MATLAB】基于VMD-SSA-LSTM的回归预测模型
【MATLAB】基于VMD-SSA-LSTM的回归预测模型
41 4
|
6天前
|
资源调度 SoC
基于UKF无迹卡尔曼滤波的电池Soc估计matlab仿真
**摘要:** 使用MATLAB2022a,基于UKF的电池SOC估计仿真比较真实值,展示非线性滤波在电动车电池管理中的效用。电池电气模型描述电压、电流与SoC的非线性关系,UKF利用无迹变换处理非线性,通过预测和更新步骤实时估计SoC,优化状态估计。尽管UKF有效,但依赖准确模型参数。
|
1月前
|
机器学习/深度学习 算法
【MATLAB】基于EMD-PCA-LSTM的回归预测模型
【MATLAB】基于EMD-PCA-LSTM的回归预测模型
35 0
【MATLAB】基于EMD-PCA-LSTM的回归预测模型
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络模型的鱼眼镜头中人员检测算法matlab仿真
该内容是一个关于基于YOLOv2的鱼眼镜头人员检测算法的介绍。展示了算法运行的三张效果图,使用的是matlab2022a软件。YOLOv2模型结合鱼眼镜头畸变校正技术,对鱼眼图像中的人员进行准确检测。算法流程包括图像预处理、网络前向传播、边界框预测与分类及后处理。核心程序段加载预训练的YOLOv2检测器,遍历并处理图像,检测到的目标用矩形标注显示。
|
1月前
|
算法 计算机视觉 异构计算
基于肤色模型的人脸识别FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于肤色检测算法的摘要:使用MATLAB 2022a和Vivado 2019.2进行测试和仿真,涉及图像预处理、RGB到YCbCr转换、肤色模型(基于阈值或概率)以及人脸检测。核心程序展示了如何读取图像数据并输入到FPGA处理,通过`tops`模块进行中值滤波、颜色空间转换及人脸检测,最终结果输出到&quot;face.txt&quot;。
|
2天前
|
传感器 算法
ANC主动降噪理论及Matlab代码实现
ANC主动降噪理论及Matlab代码实现
|
1月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
|
1月前
|
算法 调度
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)
含多微网租赁共享储能的配电网博弈优化调度(含matlab代码)

热门文章

最新文章