Python使用GARCH,EGARCH,GJR |
您所在的位置:网站首页 › garch模型推导 › Python使用GARCH,EGARCH,GJR |
全文下载链接:http://tecdat.cn/?p=20678
在本文中,预测股价已经受到了投资者,政府,企业和学者广泛的关注。然而,数据的非线性和非平稳性使得开发预测模型成为一项复杂而具有挑战性的任务(点击文末“阅读原文”获取完整代码数据)。 在本文中,我将解释如何将 GARCH,EGARCH和 GJR-GARCH 模型与Monte-Carlo 模拟结合使用, 以建立有效的预测模型。金融时间序列的峰度,波动率和杠杆效应特征证明了GARCH的合理性。时间序列的非线性特征用于检查布朗运动并研究时间演化模式。非线性预测和信号分析方法因其在特征提取和分类中的鲁棒性而在股票市场上越来越受欢迎。 相关视频 动力学系统可以用一组时变(连续或离散)变量来描述,这些变量构成信号分析非线性方法的基础。如果时间的当前值和状态变量可以准确地描述下一时刻的系统状态,则可以说这样的系统是确定性的。另一方面,如果时间和状态变量的当前值仅描述状态变量的值随时间变化的概率,则将动力学系统视为随机系统。因此,在使用GARCH 建模方法之前 ,我将采用 分形维数(FD),重定 范围 和 递归量化分析(RQA)的 数据建模 技术 来总结数据的非线性动力学行为并完成研究目标。 方法Hurst系数 (H) 是长期依赖的特征参数,与 FD (_FD + H = 2_)有关。 R / S分析是数据建模的核心工具。经验研究表明, 与同类中的其他方法相比, R / S_带来了更好的结果,例如自相关,光谱分解的分析。它是度量时间序列差异的度量,该时间序列的定义是给定持续时间_(T)_的均值范围 ,除以该持续时间的标准偏差 [ R / S = k * T(H) ]; _ķ 是一个取决于时间序列的常数。H度量时间序列的长期记忆,将其表征为均值回复,趋势或随机游走。 H 0.5表示趋势序列,并且 H = 0.5表示随机游走。 我将展示如何使用 GARCH 模型进行风险评估。 GARCH 模型的一个关键限制 是对其参数施加非负约束,以确保条件方差的正性。这样的约束会给估计GARCH 模型带来困难 。 因此,提出了 非对称GARCH 模型,即俗称的 GJR-GARCH 模型,以解决对称GARCH 模型的局限性 。更重要的是,指数 GARCH 或 EGARCH 模型相对于传统的GARCH 模型具有潜在的改进 。 数据挖掘查看数据。 在过去的几十年中,原油价格呈现出较大的波动,尤其是在2008年左右。可以看出,随着多次上升和下降,价格保持在相对较低的水平。从自相关图可以看出原始数据中明显的自相关。QQ和PP图的形状表明该过程接近正态,但是_重尾分布_。 简单收益率的常用形式为:r(t)= {p(t)— p(t-1)} / p(t-1),对数收益率= ln(pt / p(t-1),pt每日原油价格,r(t)是每日收益。对数收益率在这里被视为本文的每日收益率。原始价格和对数收益率的直观显示清楚地证明了以几乎恒定的均值,使用对数收益率是合理的。 收益率序列图显示了高和低变化周期。在图中可以看到一个随机且集中在零附近的过程。大幅度波动的正收益和负收益都增加了风险投资和管理的难度。每日收益率的平均值基本上在零水平水平附近,并且具有明显的波动性聚类,表明存在异方差性。ACF很小,但是高度相关。QQ和PP图的形状没有明显变化。 收益率的偏度(-0.119)和向右偏离表明,收益率正比负收益率高,峰度(7.042)反映了油价波动大。 点击标题查阅往期内容 R语言ARMA-GARCH-COPULA模型和金融时间序列案例 左右滑动查看更多 01 02 03 04 Jarque-Bera检验的值表明,传统的正态分布假设不适用于原油收益的真实分布。 ADF = ADF(df.returns) print(ADF.summary().as_text()) kpss = KPSS(df.returns) print(kpss.summary().as_text())进行了VR检验,以测试对数收益率序列是否是纯粹的随机游走,以及是否具有一定的可预测性。我在这里比较了1个月和12个月的对数收益率,并且拒绝了该系列为纯随机游走的空值。用负检验统计量VA(-11.07)拒绝零表示在时间序列中存在序列相关性。用ADF,KPSS,DFGLS,PP和ZA统计量对单位根和平稳性进行的检验均显示出显着性,表明使用 GARCH型模型来拟合收益序列是合适的。 非线性动力学使用_Hurst_对平稳性的研究 。 # 计算最近价格的Hurst系数 tau = \[sqrt(std(subtract(closes\_recent\[lag:\], closes\_recent\[:-lag\]))) for lag in lags\] m = polyfit(log(lags), log(tau), 1) hurst = m\[0\]*2_H_(0.531)表示具有长期依赖性的随机运动时间序列。证明了 本研究中GARCH模型的合理性 。 此处,低 R 表示较低的周期性和随机行为。此外,较低的 DET 值表示不确定性。这证明了使用GARCH 方法的合理性 。 GARCH模型在估算GARCH类型的模型之前,将收益率乘以100。由于波动率截距与模型中其他参数非常接近,因此这有助于优化程序进行转换。 X = 100* df.returns让我们拟合一个 ARCH 模型并绘制平方残差以检查自相关性。 我们可以看到平方残差具有自相关的依据。让我们拟合一个GARCH模型并查看其性能。我将按照以下步骤进行操作: 通过ARIMA(p,d,q) 模型的组合进行迭代 ,以拟合最优时间序列。 根据 具有最低AIC的ARIMA模型选择 GARCH模型 。 将 GARCH(p,q) 模型拟合到时间序列。 检查模型残差和平方残差进行自相关 因此,我们在这里发现,最好的模型是 ARIMA(2,0,2)。现在,我们对残差进行绘图,以确定它们是否具有条件异方差。 arch_model(X, p=2, q=2, o=1,power=2.0, vol=’Garch’, dist=’StudentsT’)所有3个GARCH 模型的输出 都以表格格式显示。Ω (ω) 是白噪声,alpha和beta是模型的参数。此外, α[1] +β[1] |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |