楼主: tinaskyi
26533 25

[R] rugarch包与R语言中的garch族模型 [推广有奖]

  • 0关注
  • 1粉丝

高中生

60%

还不是VIP/贵宾

-

威望
0
论坛币
139 个
通用积分
0.0011
学术水平
17 点
热心指数
12 点
信用等级
11 点
经验
426 点
帖子
19
精华
0
在线时间
29 小时
注册时间
2012-12-9
最后登录
2015-12-22

楼主
tinaskyi 发表于 2015-3-2 17:00:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

       rgarch包是R中用来拟合和检验garch模型的一个包。该包最早在网站上发布,现已发布到CRAN上。简单而言,该包主要包括四个功能:



  • 拟合garch族模型
  • garch族模型诊断
  • garch族模型预测
  • 模拟garch序列
  • 拟合序列分布

下面分别说一下。



拟合garch族模型



     拟合garch族模型分三个步骤:


(1)通过ugarchspec函数设定模型形式


(2)通过ugarchfit函数拟合模型


设定模型形式

一个典型的garch(p,q)模型如下:


 

      该模型由三个部分构成,均值方程对应式(1),分布假设对应(2),方差方程对应式(3),对三个部分进行适当的变形后可以形成egarch模型,egarch-ged模型,egarch-t模型,Igarch模型,garch-m模型和Qgarch模型等。因此,设定模型形式就是分别设定均值方程、方差方程和分布。


      rugarch包的优越之处正在于这里。ugarchspec函数的参数也被分解为为三个主要部分,分别是variance.model,对应式(3),mean.model,对应式(1),distribution.model对应式(2)中的$\epsilon$。用户通过对三个部分的参数的分别设定从而构造出自己想用的模型。


      举个例子:

      variance.model = list(model = "sGARCH", garchOrder = c(1, 1),submodel = NULL, external.regressors = NULL, variance.targeting = FALSE),

      表示拟合的方差模型为sGARCH,方差模型的自回归阶数是(1,1),方差模型中未引入外生变量。

mean.model = list(armaOrder = c(1, 1), include.mean = TRUE, archm = FALSE, archpow = 1, arfima = FALSE, external.regressors = NULL, archex = FALSE)

      表示均值方程为arma(1,1)模型,方程自变量中包含均值,未引入外生变量。

distribution.model = "norm"

      表示模型分布假设为正态分布。
      将三个部分装入ugarchspec的参数中就可以完成一个sgarch(1,1)-norm模型的模型设定。

myspec=ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1), submodel = NULL, external.regressors = NULL, variance.targeting = FALSE), mean.model = list(armaOrder = c(1, 1), include.mean = TRUE, archm = FALSE, archpow = 1, arfima = FALSE, external.regressors = NULL, archex = FALSE), distribution.model = "norm")



拟合模型




      拟合模型的函数是ugarchfit。ugarchfit的参数如下:

ugarchfit(spec, data, out.sample = 0, solver = "solnp", solver.control = list(),fit.control = list(stationarity = 1, fixed.se = 0, scale = 0), ...)

      其中,spec为ugarchspec函数的结果,data为数据对象。solver为优化算法。solver.control设定优化参数,fit.control设定拟合参数。
      接上面的例子:

myfit=ugarchfit(myspec,data=sp500ret,solver="solnp")

      到这里一个garch模型就完成了。





      查看结果



键入下列代码查看模型的拟合结果:

1.jpg



提取模型结果

rugarch包中模型结果的提取要依靠as.data.frame函数。比如提取模型的拟合值


as.data.frame(myfit,which="fitted")

提取残差序列:

as.data.frame(myfit,which=" residuals")

提取方差序列:

as.data.frame(myfit,which="sigma")

当然,也可以同时查看所有:

as.data.frame(myfit,which=all)

或者

as.data.frame(myfit)

两个语句等价。




模型诊断




通过plot(myfit)可以对模型结果进行图形诊断:

> plot(myfit)Make a plot selection (or 0 to exit):  1:   Series with 2 Conditional SD Superimposed 2:   Series with 2.5% VaR Limits (with unconditional mean) 3:   Conditional SD 4:   ACF of Observations 5:   ACF of Squared Observations 6:   ACF of Absolute Observations 7:   Cross Correlation 8:   Empirical Density of Standardized Residuals 9:   QQ-Plot of Standardized Residuals10:   ACF of Standardized Residuals11:   ACF of Squared Standardized Residuals12:   News-Impact CurveSelection: 1模型预测

如果模型通过检验,可以用ugarchforcast函数对未来进行预测:


2.jpg


可以用fpm或者plot来查看模型的预测结果。比如:


> plot(fore)Make a plot selection (or 0 to exit): 1:   Time Series Prediction (unconditional)2:   Time Series Prediction (rolling)3:   Conditional SD PredictionSelection: 1


来源:炼数成金

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:rugarch包 garch族模型 UGARCH GARCH ARCH rugarch包 garch族模型 R语言

已有 4 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
HanghangKE + 5 观点有启发
黎明前的。 + 1 + 1 + 1 精彩帖子
xddlovejiao1314 + 100 + 100 + 5 + 5 + 5 精彩帖子
niuniuyiwan + 60 + 60 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 160  论坛币 + 160  学术水平 + 16  热心指数 + 11  信用等级 + 11   查看全部评分

本帖被以下文库推荐

沙发
小熊齐 发表于 2015-4-19 11:19:26
请问一下楼主,plot(fit)后得到的12:   News-Impact Curve这个指标怎么看?谢谢!
已有 1 人评分经验 论坛币 收起 理由
xddlovejiao1314 + 10 + 3 鼓励积极发帖讨论

总评分: 经验 + 10  论坛币 + 3   查看全部评分

藤椅
搜搜我试试 发表于 2015-12-31 15:44:39
受教了,谢谢楼主分享
已有 1 人评分经验 论坛币 收起 理由
xddlovejiao1314 + 10 + 3 鼓励积极发帖讨论

总评分: 经验 + 10  论坛币 + 3   查看全部评分

板凳
xddlovejiao1314 学生认证  发表于 2016-1-3 10:04:38
感谢分享。

报纸
待琢璞玉 学生认证  发表于 2016-2-14 21:16:04
请问distribution.model=t分布,该如何表示

地板
丁丁琪琪 发表于 2016-3-8 09:31:00
待琢璞玉 发表于 2016-2-14 21:16
请问distribution.model=t分布,该如何表示
distribution.model=std

7
Akybat 发表于 2016-3-16 20:27:23
正好在学garch,谢谢楼主

8
swingser 发表于 2016-4-19 21:12:17
楼主,好像只有拟合,那怎么模拟GARCH序列啊

9
张文竹新西兰 发表于 2016-5-4 12:19:58
通过plot(myfit)可以对模型结果进行图形诊断 , 1:   Series with 2 Conditional SD Superimposed 2:   Series with 2.5% VaR Limits (with unconditional mean) 3:   Conditional SD 4:   ACF of Observations 5:   ACF of Squared Observations 6:   ACF of Absolute Observations 7:   Cross Correlation 8:   Empirical Density of Standardized Residuals 9:   QQ-Plot of Standardized Residuals10:   ACF of Standardized Residuals11:   ACF of Squared Standardized Residuals12:   News-Impact CurveSelection:
这12个分别指的什么意思啊 假如画出了这12个的图片,应该怎么comment?

10
gossip888 发表于 2016-10-13 23:06:35
请问怎么模拟样本外的序列?predict?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-19 07:19