我将考虑tseries软件包中的garch函数和fGarch软件包中的garchFit函数。tseries软件包中的garch函数速度很快,但并不总能找到解决方案。 fGarch软件包中的garchFit函数速度较慢,但收敛得更加一致。 ***************************************************** #使用Garch预测波动率 #来自tseries的garch速度很快,但是并不能始终收敛 #fGarch 速度较慢,但收敛一致 #****************************************************************** load.packages('tseries,fGarch
这对我来说是个新闻,因为书籍经常引用 fGarch,所以这可能是那些寻求在 R 中使用 GARCH 模型的人的资源——为什么不要使用 fGarch。 据我所知,用于 GARCH 模型估计和推断(以及其他工作)的“最新技术” R 包是 fGarch。特别是,函数 garchFit() 用于从数据中估计 GARCH 模型。 这个函数应该是众所周知的,问题当然可能在于我,而不是 fGarch(或者可能有更好的包)。这个函数是如此重要,让我感到我应该分享我的发现。 有可能 fGarch 开始显现出它的落伍老迈,新的包装已经解决了我在这里强调的一些问题。 包 tseries 提供了一个函数 garch(),它也通过 QMLE 拟合 GARCH(1,1)模型,并且比 fGarch 更新。它是我所知道的唯一可以拟合GARCH(1,1)模型的其他包。
本期作者:徐瑞龙 未经授权,严禁转载 本文承接《在 R 中估计 GARCH 参数存在的问题》 在之前的博客《在 R 中估计 GARCH 参数存在的问题》中,Curtis Miller 讨论了 fGarch 简单实验 首先用 1000 个模拟样本, library(rugarch)library(ggplot2)library(fGarch) set.seed(110117) x <- garchSim 这个结果相较于 fGarch 包来说,更加糟糕。 让我们看看其他参数的行为。 结论 在一般大小样本量的情况下,rugarch 和 fGarch 的表现都不好,即使改变函数的最优化算法(相关代码未贴出)也于事无补。
我记录了参数估计的行为(重点是 β ),以及使用 fGarch 计算这些估计值时发现的病态行为。我在 R 社区呼吁帮助,包括通过 R Finance 邮件列表发送我的博客文章。 首先,他告诉我 fGarch 不再是处理 GARCH 模型的首选方案。RMetrics 套件包(包括 fGarch)由 ETH Zürich 的 Diethelm Würtz 教授维护。 该软件包似乎具有比 fGarch 更多的功能和函数,这可以解释为什么它似乎更难以使用。然而,包的 vignette 很有帮助,值得打印出来。 Dr. 我的模拟显示 fGarch 很难发现 α=β=0.2,即使这些参数是“真的”。Prof. 我不会再研究 fGarch 或 tseries 了,我将专门研究 rugarch。我将探讨包支持的不同优化程序。我不会像我在第一篇文章中那样画图,这些图只是为了表明存在的问题及其严重性。
指数GARCH,允许波动率不为负值(这迫使模型只输出正方差 FGARCH。这是为长记忆模型准备的。 garchlist(model="sGARCH", #其他选项有egarch, fgarch等。
^2, lag.max=20, main='平方序列') pacf(as.numeric(epst)^2, lag.max=20,main='平方序列') 建立GARCH类模型 library(fGarch
包载入与数据预处理: #包载入 library(fGarch) library(rugarch)#garch拟合与预测 library(TSA)#BIC准则确定arma阶数 eacf确定garch
#进行单位根检验 library(tseries) #arma模型 library(fUnitRoots) #进行单位根检验 library(FinTS) #调用其中的自回归检验函数 library(fGarch cbind(eg1,leg1) fit=arima(y[,1],c(0,0,0),xreg=y[,2],include.mean=F) #拟合GARCH模型 library(tseries) library(fGarch
GARCH结果比较 作为健全性检查,我们现在将比较两个软件包 fGarch 和 rugarch的结果: # 指定具有特定参数值的ARMA(0,0)-GARCH(1,1)作为数据生成过程garch_spec n.sim = 1000)@path$# 使用“ rugarch”包指定和拟合模型rugarch_fit <- ugarchfit(spec = garch_spec, data = x)# 使用包“ fGarch omega alpha1 beta1 #> 0.09750394 0.01392648 0.13527024 0.73971658# 比较拟合的标准偏差print(head(fGarch_fi
-进行单位根检验 library(tseries)--arma模型 library(fUnitRoots)--进行单位根检验 library(FinTS)--调用其中的自回归检验函数 library(fGarch