关于数据挖掘:R语言GARCH模型对股市sp500收益率bootstrap滚动估计预测VaR拟合诊断和蒙特卡罗模拟可视化

6次阅读

共计 3287 个字符,预计需要花费 9 分钟才能阅读完成。

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

介绍

Box 等人的开创性工作 (1994) 在自回归挪动均匀模型畛域的相干工作为稳定率建模畛域的相干工作铺平了路线,别离由 Engle (1982) 和 Bollerslev (1986) 引入了 ARCH 和 GARCH 模型。这些模型的扩大包含更简单的动力学,例如阈值模型来捕获新闻影响的不对称性,以及除正态之外的散布来解释实际中察看到的偏度和适度峰度。在进一步的扩大中,

本文旨在为单变量 GARCH 过程建模提供一套全面的办法,包含拟合、过滤、预测、模仿以及诊断工具,包含绘图和各种测试。用于评估模型不确定性的其余办法(例如滚动预计、疏导预测和模仿参数密度)为这些过程的建模提供了丰盛的环境。

示例

拟合对象属于 uGARCHfit 类,能够传递给各种其余办法,例如 show (summary)、plot、ugarchsim、ugarchforecast 等。

> fit = ugarchfit(spec = spec)

拟合诊断

持重标准误差基于 White (1982) 的办法,该办法通过计算参数 (θ) 的协方差 (V) 来生成渐近无效的置信区间:

其中,

这是最佳分数的 Hessian 和协方差。持重标准误差是 V 的对角线的平方根。拟合或过滤对象上的 inforcriteria 办法返回 Akaike (AIC)、贝叶斯 (BIC)、Hannan-Quinn (HQIC) 和 Shibata (SIC) 信息规范,以通过以不同速率惩办过拟合来启用模型抉择。模式上,它们能够定义为:

Q-statistics 和 ARCH-LM 测验已被 Fisher 和 Gallagher (2012) 的 Weighted Ljung-Box 和 ARCH-LM 统计量取代,这更好地阐明了来自预计模型。ARCH-LM 测验当初是一个加权组合测验,用于测验充沛拟合的 ARCH 过程的原假如,而 Ljung-Box 是另一个组合测验,其 ARMA 拟合的充分性为零。signbias 计算 Engle 和 Ng (1993) 的 Sign Bias Test,也显示在摘要中。这测试了标准化残差中杠杆效应的存在(以捕获 GARCH 模型可能的谬误指定),

其中 I 是指标函数,^t 是 GARCH 过程的预计残差。原假如是 H0:ci = 0(对于 i = 1、2、3),并且联结 H0:c1 = c2 = c3 = 0。从先前拟合的总结能够推断,存在显着的负和对冲击的踊跃反馈。应用诸如 apARCH 之类的模型可能会加重这些影响

gof 计算卡方拟合优度测验,将标准化残差的教训散布与所选密度的实践散布进行比拟。该实现基于 Palm (1996) 的测试,该测试通过从新分类标准化残差而不是依据它们的值(如在规范测试中),而是依据它们的大小,计算在存在非独立同散布察看的状况下的测试,计算察看到小于标准化残差的值的概率,该残差应该是雷同的规范均匀分布。该函数必须采纳 2 个参数,即拟合对象以及用于对值进行分类的箱数。在拟合摘要中,应用了 (20, 30, 40, 50) 个 bin 的抉择,

nymblom 测验计算了 Nyblom (1989) 的参数稳定性测验,以及联结测验。显示用于比拟后果的临界值,但在超过 20 个参数的状况下,这不适用于联结测试。

最初,一些信息图能够交互绘制(which = ‘ask’),独自绘制(which = 1:12),或者一次全副绘制(which = ‘all’),如图 2 所示。

过滤

有时心愿应用一组预约义的参数简略地过滤一组数据。例如,当新数据达到并且人们可能不心愿从新拟合时,可能就是这种状况。

> filt = ugarchfilter(spec = spe)
> show(filt)

 

预测和 GARCH bootstrap 程序

2 种类型的预测。一种滚动办法,其中基于拟合例程中设置的 out.sample 选项创立间断 1-ahead 预测,以及用于 n>1 超前预测的无条件办法。(也能够将两者联合起来创立一个相当简单的对象)。在后一种状况下,也能够应用 Pascual 等人形容的 bootstrap 程序。bootstrap 办法基于从拟合模型的教训散布中从新采样标准化残差,以生成序列和 sigma 的将来实现。实现了两种办法:一种通过模仿和从新拟合建设参数的模仿散布来思考参数不确定性,另一种只思考散布不确定性,从而防止低廉且简短的参数散布预计。在后一种状况下,1-ahead sigma 预测的预测区间将不可用,因为在这种状况下,只有参数不确定性与 GARCH 类型模型相干。

> sec = ugrspc(are.e=list(model="csGARCH"),ititin="std")
> fi = grit(sc,sp5et)
bot(fit, mehod = c("Pl", "Full")\[1\],

 残缺 GARCH bootstrap 程序总结如下:

1. 从预计对象中提取标准化残差。如果是具备固定参数的标准,首先应用提供的数据集进行过滤,而后从过滤后的对象中提取标准化残差。

2. 应用 spd 或基于内核的办法从原始标准化残差中采样大小为 N 的 n.bootfit 集(原始数据集减去任何样本周期外)。

模仿

模仿能够间接在拟合对象上进行:

其中 n.sim 示意模仿的长度,而 m.sim 示意独立模仿的数量。出于速度的起因,当 n.sim 绝对于 m.sim 较大时,仿真代码在 C 中执行,而对于较大的 m.sim,应用了非凡用处的 C++ 代码(应用 Rcpp 和 RcppArmadillo),发现这会导致速度显着进步。

滚动预计

对模型 / 数据集组合执行滚动预计和预测,可抉择返回指定程度的 VaR。更重要的是,它返回计算预测密度所需的任何度量所必须的散布预测参数。以下示例阐明了该办法的应用,其中还应用了并行性能并在 10 个内核上运行。

> cl = mkSluter(10)
> spec = uarpc(vaaneoel = list(model = "eGARCH"), ditrtonodel = "jsu")
> roll = ghrospe,se .at = 1000, ef.every= 10,
refit.windw =moing, calult.V= TRUE,
V.ha = c(0.01, 0.05), cser = c, eep.oef = TUE)


> report

蒙特卡罗试验:模仿参数散布和 RMSE

通过屡次模仿和拟合模型并针对不同的“窗口”大小来执行蒙特卡罗试验。这容许通过查看均方根误差的降落率以及咱们是否具备 √ N 一致性,在数据窗口减少时对参数估计的一致性有所理解。

> spec = urhprnmel = list(model = "gjrGARCH"),
+ distuto.el  "ged")


> dist = ugacdsribton(fiOspec spec, n.sm = 2000),
+ user = cl)
> stopCluster(cl)
> show(dist)

 

 

 

常见问题解答和指南

问:我应该应用多少数据对 GARCH 过程进行建模?

然而,应用 100 个数据点来尝试拟合模型不太可能是一种正当的办法,因为您不太可能取得十分无效的参数估计。提供了一种办法(ugarchdistribution),用于从预先指定的模型、不同大小的数据进行模仿,将模型拟合到数据,并推断参数的散布以及作为数据长度的 RMSE 变化率减少。这是查看参数散布的一种计算成本十分高的办法(但在非贝叶斯世界中是惟一的办法),因而应审慎应用并在有足够计算能力的状况下应用。


最受欢迎的见解

1. 在 python 中应用 lstm 和 pytorch 进行工夫序列预测

2.python 中利用长短期记忆模型 lstm 进行工夫序列预测剖析

3. 应用 r 语言进行工夫序列(arima,指数平滑)剖析

4.r 语言多元 copula-garch- 模型工夫序列预测

5.r 语言 copulas 和金融工夫序列案例

6. 应用 r 语言随机稳定模型 sv 解决工夫序列中的随机稳定

7.r 语言工夫序列 tar 阈值自回归模型

8.r 语言 k -shape 工夫序列聚类办法对股票价格工夫序列聚类

9.python3 用 arima 模型进行工夫序列预测

正文完
 0