PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化...

原文链接:http://tecdat.cn/?p=25165 

这篇文章介绍了一类离散随机波动率模型,并介绍了一些特殊情况,包括 GARCH 和 ARCH 模型。本文展示了如何模拟这些过程以及参数估计。这些实验编写的 Python 代码在文章末尾引用。

离散随机波动率模型

292c5b887f652f852aa4de09ab069b93.png是一个随机基,有一个完整的7ab0fd7ca3b806549bd050cab52445d9.png a533c3ffbd58012bd3bae7fffde62dd3.png 的可测量子集 7056429f68ad387a3e2b0212c595fab7.png , 一个概率测量a09b6cfb53e745c872bf8bf57ff24119.png和一个过滤50a3b7ec2fecd34e84fe68d8c9d6b3c2.png

  • 因此,时间实例使用非负整数进行索引 6ae08535da94500eeb35afbd4bf55a47.png

  • 获取序列的第一个 t元素 143739652a26a4d2326255657978402e.png, 记0c9b428de6cfe4ab9f150c2206a6417b.png

_离散随机波动率_(   DSV) 模型中, 224c78e8f54d6f03eb0b92ce3bd0132e.png 是一个实值 stochastic process (一系列随机变量)满足以下方程:

46de208a7824a4275afa76f2d0c1e42f.png

其中:

  • Z 是 F 的噪声过程。

  • φi 是实数,我假设 19eb0936085002c51b54599066886d7e.png 并且 gi ,hi 是非负值。

  • fi 、gi 和 h_ihi 是过程的确定性函数。

  • 过程 15530fc0f52563cbcdc9a7a4c2bacd78.png 通常称为 _偏移_,而 σ 称为  X的_波动率。_因为σ 是一个随机过程,所以上面定义的过程 X 属于一个随机波动率模型的大家族。

  • 对于噪声过程 Z,使得每个 Z_t的均值和方差都存在,我们有 df1b9eea3371ab83555a3f83c3a29a3a.png 和 c2973c1dbe8fa5a59789c007821ade77.png.

案例

制定通用 DSV 模型的特化:

后移算子 5b4f1355551642075748fb053cd25893.png,对于 9f45d1446641cbd83068ff733cc3989f.png,产生其参数过程的滞后版本,即 e6944bce7745c80fa4617966a204072f.png, 和 b397ab95db00cfae25923b23229055bd.png, 如果 f0731942042ef942da404a6739662605.png. 例如

cf8834b466d45ca59df8a9e47ae5c838.png

为方便起见,我设置 909897cded5c7ce5bfb886f70d6162d6.png 和 57b196f8bf850167e7e5a8f6381f050b.png.

对于下面列表中的所有特殊情况,我假设函数 fi 、gi 和 h_i 从参数过程中选择一个元素,即 42f125bca99217c87ee7d706005c67b0.png, 和 9a94b38565a4b8d0d71d04b621c61952.png.

GARCH 过程定义另外设置e1e951e27f749af1b8753e642a84de7d.png

_GARCH(1, 1)_过程非常流行:

54bdf0b5b7eb30c798080b00104c226f.png

在 ARCH 过程中,波动性具有简化形式,对于所有 i,λi = 0,并且 03377019fa8cb28896a1df6657655bcf.png

b88fba82e63507c7abca29916ad1119a.png

_ARCH(1)_过程还 满足 d3412294edda3631c40c4cf95c45827f.png 对所有  4107f4b33d89b26a8db3f4a3d14a0984.png:

53ed4e5acb557e9d4f36036dbff240fd.png

模拟

离散随机波动率模型通常用于对观察到的时间序列的对数收益进行建模。因此,为了模拟原始时间序列的路径,我们需要模拟其对数收益并计算 8e0c7b87e8a995c50e5c3cd1a24b624b.png.

由带参数的高斯噪声驱动的 GARCH(1,1) 过程的样本路径 5415db210a87d6912f94d61aadb78552.png:

path( \[0.001, 0.2, 0.25\])
cumprod* repeat.reshape
plt.subplots

206fbdfad95385c09c5b0d1f2e8f8c44.png

注意 σ 过程为 fa0a2d22458a35982416b8828d407104.png 不能低于 b07d71df079b84136265c2ee28eab1a7.png≈0.0353


点击标题查阅往期内容

24525813fd7b13a101f25d20f91e1889.jpeg

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

outside_default.png

左右滑动查看更多

outside_default.png

01

fd884bbd196dcbd882d35de3c3becd98.png

02

5eadc6ddd425c3bba0f8b821e006278f.png

03

034bd18b5b3cae485558ac2cdeb97a81.png

04

20cd99093c60f4eb54f1c75897cf8269.png

最大似然估计

最大似然(ML)参数估计是所有讨论模型的选择方法,因为转换密度,即给定过去信息的 X_t 的密度5a5cd999b4fca9dac685e9a7fbf40673.png是明确已知的。因此,过程样本路径 x 的对数似然函数由下式给出

2eaf7e4c9c7f85aca89aec38f0378cb3.png

其中ca6ccc1d3239cd3bf91e3eb9eaf873c4.png,而0b49b7765985b1c448ed48aa465b9445.png 是 Z的密度。将上述对数似然函数最小化可得到 b238b2af7d9d42ab8ea244a4c231640f.png的最大似然估计d1334f94923fcf648bce40618268bb60.png

6bb379eed99d222253aac722d54f0320.png.

蒙特卡罗研究

为了测试 ML 参数估计过程,我进行了以下蒙特卡罗实验。

  • 使用参数 (0.001, 0.2, 0.25) 模拟长度为 5000 的 2500 个独立 GARCH(1,1) 过程路径。我使用了高斯噪声,即 d2247e131bad9b3fe61b6c190dd0a9e0.png.

  • 将这些路径中的每一个都输入到 ML 估计并获得估计的参数向量 c25ccd8d905c0f6f25098619027e8385.png.

  • 此优化过程中参数的搜索范围限制为 [1e-8, 1]。

  • 将原始bfd8bbb46db865cdde47a9c33415b105.png与估计的 ad94ec7b7801a97e7144f293a77913de.png进行比较。

  • 使用参数向量c204262277274b699a395f0a45255993.png模拟 GARCH(1,1),计算均值和标准差,并将它们与“真实”均值和标准差(分别为 5.098 和 1.084)进行比较。

正如期望的那样,估计量 0b3b327b8d4d84264afb3c3ebe1913b5.png非常不准确,并且在大多数情况下,甚至不接近真实向量dee10b956a9e828de09d1cca702d2029.png。特别是,估计的20b44debdd00fea901261b1d4d455ee6.png和 7b7886e51e6626a0f1f39d2b5ed5cf88.png通常设置为零(参见下面的直方图)。

ps = \[0.001, 0.2, 0.25\]

cumprod * repeat
print, np.std

ecf004d928192da8e89dbaf502030865.png

另一方面,来自估计的6401112520570654881e843106faebc6.png的过程均值和标准偏差要准确得多。这是一件好事,因为我们通常更关心恢复未知数据生成过程的特征,而不是模型的真实参数值。

mes, stvs, esms 
  
    ax\[1\].hist
    fig.tight_layout

96f76dafa2291501be7f02fa554e8e32.jpeg

柯西噪音

噪声过程  不必归一化为均值 0 和方差 1。实际上,我们只需要确保随机变量 Zt 的分布具有密度即可。如果是这种情况,过程模拟和 ML 估计都可以按照描述的方式工作。

那么如何用从柯西分布中采样的噪声替换高斯噪声呢?在许多概率论书籍中,柯西分布被用作反例,因为它具有许多“病态”特性。例如,它没有均值,因此也没有方差。

我不知道柯西分布中的不稳定样本是什么样子的。看一下带有参数向量的 GARCH(1,1) 过程的示例路径 f9175ebc3d71c46dc3891abb7d6b48cc.png:

4b4f2f5e68b9a005b6b10bb4ba0428ae.png

如果使用路径生成函数的时间足够长,甚至可能会生成溢出异常。因此,我用来生成上面显示的直方图的 Python 函数失败了。为了了解原因,让我们使用来自柯西分布的样本生成一些直方图:

3687ac09c686c918392881b598e74807.jpeg

aa7126d6f9f2c3c9bb0f12785234d0a6.jpeg

a59ec15f5bda090bbad6ebfba26dd19e.jpeg

柯西分布具有分位数函数

74352e8125687f8c852e695f130cbe41.png

对 e09c5ab3a3c4298060118ff1ab7346e2.png 评估 a55b91503771acbbcdae8d7a34a004d0.png给出

0ae2efbc0110ccf0a236cad7a1d73c30.png

这意味着,例如,在 0.0001 的概率下,采样值大于 3183.10。为了比较,让我们计算标准正态分布的相应分位数:

norm.ppf(0.99)

6d94ae03efb0155345b1e5aeded93334.png

norm.ppf(0.999)

d8203c91ac975105bdeb43f9b5f619f9.png

norm.ppf(0.9999)

cb1dea2eefb7aa8845678216bdf458ab.png


56551f2c4396b84ff366db0f92f66913.png

本文摘选《PYTHON用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化》,点击“阅读原文”获取全文完整资料。


点击标题查阅往期内容

极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析

Garch波动率预测的区制转移交易策略

金融时间序列模型ARIMA 和GARCH 在股票市场预测应用

时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言风险价值:ARIMA,GARCH,Delta-normal法滚动估计VaR(Value at Risk)和回测分析股票数据

R语言GARCH建模常用软件包比较、拟合标准普尔SP 500指数波动率时间序列和预测可视化

Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用

MATLAB用GARCH模型对股票市场收益率时间序列波动的拟合与预测

R语言GARCH-DCC模型和DCC(MVT)建模估计

Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言ARIMA-GARCH波动率模型预测股票市场苹果公司日收益率时间序列

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

R语言时间序列GARCH模型分析股市波动率

R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测

matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

使用R语言对S&P500股票指数进行ARIMA + GARCH交易策略

R语言用多元ARMA,GARCH ,EWMA, ETS,随机波动率SV模型对金融时间序列数据建模

R语言股票市场指数:ARMA-GARCH模型和对数收益率数据探索性分析

R语言多元Copula GARCH 模型时间序列预测

R语言使用多元AR-GARCH模型衡量市场风险

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言用Garch模型和回归模型对股票价格分析

GARCH(1,1),MA以及历史模拟法的VaR比较

matlab估计arma garch 条件均值和方差模型

R语言POT超阈值模型和极值理论EVT分析

R语言极值推断:广义帕累托分布GPD使用极大似然估计、轮廓似然估计、Delta法

R语言极值理论EVT:基于GPD模型的火灾损失分布分析

R语言有极值(EVT)依赖结构的马尔可夫链(MC)对洪水极值分析

R语言POT超阈值模型和极值理论EVT分析

R语言混合正态分布极大似然估计和EM算法

R语言多项式线性模型:最大似然估计二次曲线

R语言Wald检验 vs 似然比检验

R语言GARCH-DCC模型和DCC(MVT)建模估计

R语言非参数方法:使用核回归平滑估计和K-NN(K近邻算法)分类预测心脏病数据

matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计

R语言基于Bootstrap的线性回归预测置信区间估计方法

R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

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

Matlab马尔可夫区制转换动态回归模型估计GDP增长率

R语言极值推断:广义帕累托分布GPD使用极大似然估计、轮廓似然估计、Delta法

欲获取全文文件,请点击左下角“阅读原文”。

8e969b081499b0a7de5c0d9c15fcdccf.gif

c205be04dbf6cdf83ffc3e78e3aaf92c.png

3e07b628428e017970df5c0c8ea187bf.jpeg

ba68488d29b7f7f3549a99e8153a76d6.png

欲获取全文文件,请点击左下角“阅读原文”。

2490980081430315ba3bb8f80c07f45a.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值