返回

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

发布时间:2022-11-16 21:06:25 289
# 数据

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

拓端数据tecdat|Python随机波动率(SV)模型对标普500指数时间序列波动性预测_r语言

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

建立模型

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

  1.   
  2.  returns = (pm.get_data("SP500.csv"))
  3.  returns[:5]

拓端数据tecdat|Python随机波动率(SV)模型对标普500指数时间序列波动性预测_r语言_02

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

 

  1.   
  2.  ax.plot(returns)

拓端数据tecdat|Python随机波动率(SV)模型对标普500指数时间序列波动性预测_r语言_03

指定模型。

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

 

拟合模型

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

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

拓端数据tecdat|Python随机波动率(SV)模型对标普500指数时间序列波动性预测_r语言_04

 

拓端数据tecdat|Python随机波动率(SV)模型对标普500指数时间序列波动性预测_r语言_05

 

plot(trace['s']);

拓端数据tecdat|Python随机波动率(SV)模型对标普500指数时间序列波动性预测_r语言_06

 

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

  1.  plot(returns)
  2.  plot(exp(trace[s]);

拓端数据tecdat|Python随机波动率(SV)模型对标普500指数时间序列波动性预测_r语言_07

np.exp(trace[s])

拓端数据tecdat|Python随机波动率(SV)模型对标普500指数时间序列波动性预测_拟合_08

参考文献

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

拓端数据tecdat|Python随机波动率(SV)模型对标普500指数时间序列波动性预测_拟合_09


 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线