原文链接:http://tecdat.cn/?p=26271
最近我们被客户要求撰写关于GARCH的研究报告,包括一些图形和统计输出。
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 个参数的情况下,这不适用于联合测试。
视频
时间序列分析:ARIMA GARCH模型分析股票价格数据
**
拓端
,赞22
最后,一些信息图可以交互绘制(which = 'ask'),单独绘制(which = 1:12),或者一次全部绘制(which = 'all'),如图 2 所示。
点击标题查阅往期内容
R语言极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析
左右滑动查看更多
01
02
03
04
过滤
有时希望使用一组预定义的参数简单地过滤一组数据。例如,当新数据到达并且人们可能不希望重新拟合时,可能就是这种情况。
> filt = ugarchfilter(spec = spe)
> show(filt)
预测和 GARCH bootstrap程序
两种类型的预测。一种滚动方法,其中基于拟合例程中设置的 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程序总结如下:
-
从估计对象中提取标准化残差。如果是具有固定参数的规范,首先使用提供的数据集进行过滤,然后从过滤后的对象中提取标准化残差。
-
使用 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 变化率增加。这是检查参数分布的一种计算成本非常高的方法(但在非贝叶斯世界中是唯一的方法),因此应谨慎使用并在有足够计算能力的情况下使用。
点击标题查阅往期内容
R语言单变量和多变量(多元)动态条件相关系数DCC-GARCH模型分析股票收益率金融时间序列数据波动率
R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格
GARCH-DCC模型和DCC(MVT)建模估计
R语言预测期货波动率的实现:ARCH与HAR-RV与GARCH,ARFIMA模型比较
ARIMA、GARCH 和 VAR模型估计、预测ts 和 xts格式时间序列
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语言极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析
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 条件均值和方差模型