Python随机波动率(SV)模型对标普500指数时间序列波动性预测

简介: Python随机波动率(SV)模型对标普500指数时间序列波动性预测

资产价格具有随时间变化的波动性(逐日收益率的方差)。在某些时期,收益率是高度变化的,而在其他时期则非常平稳。随机波动率模型用一个潜在的波动率变量来模拟这种情况,该变量被建模为随机过程。下面的模型与 No-U-Turn Sampler 论文中描述的模型相似,Hoffman (2011) p21。

这里,r是每日收益率序列,s是潜在的对数波动率过程。


建立模型

首先,我们加载标普500指数的每日收益率。

returns = (pm.get_data("SP500"))
returns\[:5\]

正如你所看到的,波动性似乎随着时间的推移有很大的变化,但集中在某些时间段。在2500-3000个时间点附近,你可以看到2009年的金融风暴。

ax.plot(returns)

指定模型。

GaussianRandomWalk('s', hape=len(returns))
nu = Exponential(  .1)
r = StudentT(  pm.math.exp(-2*s),
                    obs=returns)

拟合模型

对于这个模型,最大后验(_Maximum_ A _Posteriori_,MAP)概率估计具有无限的密度。然而,NUTS给出了正确的后验。

pm.sample(tune=2000
Auto-assigning NUTS sampler...

plot(trace\['s'\]);

观察一段时间内的收益率,并叠加估计的标准差,我们可以看到该模型是如何拟合一段时间内的波动率的。

plot(returns)
plot(exp(trace\[s\]);

np.exp(trace\[s\])

参考文献

  1. Hoffman & Gelman. (2011). The No-U-Turn Sampler: Adaptively Setting Path Lengths in Hamiltonian Monte Carlo.

相关文章
|
4天前
|
机器学习/深度学习 运维 Python
python深度学习实现自编码器Autoencoder神经网络异常检测心电图ECG时间序列
python深度学习实现自编码器Autoencoder神经网络异常检测心电图ECG时间序列
12 0
|
1天前
|
机器学习/深度学习 算法 数据挖掘
【视频】Python基于SVM和RankGauss的低消费指数构建模型
【视频】Python基于SVM和RankGauss的低消费指数构建模型
|
1天前
|
安全 Python
【视频】Python用GM(1,1)灰色模型预测模型对电力预测
【视频】Python用GM(1,1)灰色模型预测模型对电力预测
|
2天前
|
机器学习/深度学习 人工智能 数据可视化
python用回归模型对水泥生产关键温度点预测模型
python用回归模型对水泥生产关键温度点预测模型
|
2天前
|
机器学习/深度学习 算法 定位技术
Python用Lstm神经网络、离散小波转换DWT降噪对中压电网电压时间序列预测
Python用Lstm神经网络、离散小波转换DWT降噪对中压电网电压时间序列预测
|
4天前
|
机器学习/深度学习 算法 算法框架/工具
PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
10 0
|
4天前
|
机器学习/深度学习 TensorFlow API
Python安装TensorFlow 2、tf.keras和深度学习模型的定义
Python安装TensorFlow 2、tf.keras和深度学习模型的定义
|
4天前
|
vr&ar Python
Python ARIMA时间序列模型预测航空公司的乘客数量
Python ARIMA时间序列模型预测航空公司的乘客数量
18 0
|
5天前
|
机器学习/深度学习 数据采集 算法
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
10 1
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
|
5天前
|
数据采集 机器学习/深度学习 搜索推荐
使用Python实现推荐系统模型
使用Python实现推荐系统模型
17 1