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

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

原文出处:拓端数据部落公众号

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

离散随机波动率模型

拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化是一个随机基,有一个完整的​拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化​​ 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化 的可测量子集 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化 ​, 一个概率​拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化​和一个过滤​拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化

  • 因此,时间实例使用非负整数进行索引 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化
  • 获取序列的第一个 t元素 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化, 记拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化.

离散随机波动率(   DSV) 模型 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化 是一个实值 stochastic process (一系列随机变量)满足以下方程:

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

其中:

  • Z 是 F 的噪声过程。
  • φi 是实数,我假设 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化 并且 gi ,hi 是非负值。
  • fi 、gi 和 h_ihi 是过程的确定性函数。
  • 过程 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化 通常称为 偏移,而 σ 称为  X的波动率。因为σ 是一个随机过程,所以上面定义的过程 X 属于一个随机波动率模型的大家族。
  • 对于噪声过程 Z,使得每个 Z_t的均值和方差都存在,我们有 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化 和 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化​.

案例

制定通用 DSV 模型的特化:

后移算子 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化,对于 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化,产生其参数过程的滞后版本,即 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化, 和 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化, 如果 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化. 例如

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

为方便起见,我设置 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化 和 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化.

对于下面列表中的所有特殊情况,我假设函数 fi 、gi 和 h_i从参数过程的历史中选择一个元素,即 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化, 和 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化.

GARCH 过程定义另外设置拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化

GARCH(1, 1)过程非常流行,所以让我们明确地统计动态:

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

在 ARCH 过程中,波动性具有简化形式,对于所有 i,λi = 0,并且 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化

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

ARCH(1)过程还 满足 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化 对所有  拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化:

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

模拟

离散随机波动率模型通常用于对观察到的时间序列的对数收益进行建模。因此,为了模拟原始时间序列的路径,我们需要模拟其对数收益并计算 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化.

由带参数的高斯噪声驱动的 GARCH(1,1) 过程的样本路径 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化:

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

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

注意 σ 过程为 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化 不能低于 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化≈0.0353

最大似然估计

最大似然(ML)参数估计是所有讨论模型的选择方法,因为转换密度,即给定过去信息的 X_t 的密度拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化是明确已知的。因此,过程样本路径 x 的对数似然函数由下式给出

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

其中拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化,而拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化 是 Z的密度。将上述对数似然函数最小化可得到 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化的最大似然估计拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化

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

蒙特卡罗研究

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

  • 使用参数 (0.001, 0.2, 0.25) 模拟长度为 5000 的 2500 个独立 GARCH(1,1) 过程路径。我使用了高斯噪声,即 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化.
  • 将这些路径中的每一个都输入到 ML 估计并获得估计的参数向量 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化.
    • 此优化过程中参数的搜索范围限制为 [1e-8, 1]。
  • 将原始拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化与估计的 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化进行比较。
  • 使用参数向量拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化模拟 GARCH(1,1),计算均值和标准差,并将它们与“真实”均值和标准差(分别为 5.098 和 1.084)进行比较。

正如期望的那样,估计量 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化非常不准确,并且在大多数情况下,甚至不接近真实向量拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化。特别是,估计的拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化和 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化通常设置为零(参见下面的直方图)。

  1.   ps = [0.001, 0.2, 0.25]
  2.    
  3.   cumprod * repeat
  4.   print, np.std

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

另一方面,来自估计的拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化的过程均值和标准偏差要准确得多。这是一件好事,因为我们通常更关心恢复未知数据生成过程的特征,而不是模型的真实参数值。

  1.   mes, stvs, esms
  2.    
  3.   ax[1].hist
  4.   fig.tight_layout

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

柯西噪音

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

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

我不知道柯西分布中的不稳定样本是什么样子的。看一下带有参数向量的 GARCH(1,1) 过程的示例路径 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化:

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

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

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

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

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

柯西分布具有分位数函数

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

对 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化 评估 拓端tecdat|Python用GARCH、离散随机波动率模型DSV模拟和估计股票收益时间序列与蒙特卡洛可视化给出

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

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

norm.ppf(0.99)

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

norm.ppf(0.999)

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

norm.ppf(0.9999)

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


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

最受欢迎的见解

1.HAR-RV-J与递归神经网络(RNN)混合模型预测和交易大型股票指数的高频波动率

2.R语言中基于混合数据抽样(MIDAS)回归的HAR-RV模型预测GDP增长

3.波动率的实现:ARCH模型与HAR-RV模型

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

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

6.R语言多元COPULA GARCH 模型时间序列预测

7.R语言基于ARMA-GARCH过程的VAR拟合和预测

8.matlab预测ARMA-GARCH 条件均值和方差模型

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

上一篇:拓端tecdat|SAS分类决策树预测贷款申请评分剪枝和结果可视化


下一篇:拓端tecdat|R语言群组变量选择、组惩罚group lasso套索模型预测分析新生儿出生体重风险因素数据和交叉验证、可视化