R语言IBM股票月对数收益率的Egarch模型



IBM股票 1967年1月到2009年12月的月对数收益率,共516个观测值。

1.R语言程序

>source("D:/Egarch.R")  #编译R语言程序

> da1=read.table("D:/ch2data/m-ibmsp6709.txt",header=T)  #打开文件
> dim(da1)        #数据框da1的维数,用da1是避免和da混淆
[1] 516   3              #516个观察值,共有3列数据,可用head(da1)look at data

> ibm=log(da1$ibm+1)     #对ibm列数据取对数
> Box.test(ibm,lag=12,type='Ljung')   #Ljung Box检测

          Box-Ljung test

data:  ibm 

X-squared = 7.4042, df = 12, p-value = 0.8298

                      #可知Q(12)=7.4042,p值0.8298不显著

> m1=Egarch(ibm)    #建立Egarch()模型
 
Estimation results of EGARCH(1,1) model:
estimates:  0.006732389 -0.5983263 0.217603 -0.4243245 0.92015
std.errors:  0.002877666 0.2349172 0.05916528 0.1683064 0.0388656
t-ratio:  2.339531 -2.546967 3.677882 -2.521144 23.67518

> names(m1)
[1] "residuals"  "volatility"

> stresi=m1$residuals/m1$volatility  #标准差
> tdx=c(1:516)/12+1967     #时间坐标1967年开始

>par(mfcol=c(2,1))

>plot(tdx,ibm,xlag='year',ylab='logrtn',type='l')

>plot(tdx,stresi,xlab='year',ylab='stresi',type='l')

       

IBM股票月收益率的两个plot图 IBM股票月收益率的两个plot图

> Box.test(stresi,lag=10,type="Ljung")

    Box-Ljung test

data:  stresi

X-squared = 5.2866, df = 10, p-value = 0.8712

             #Q(10)=5.2866,p值0.8712


>Box.test(stresi,lag=20,type="Ljung")
       Box-Ljung test

     data:  stresi

X-squared = 20.983, df = 20, p-value = 0.3981

> Box.test(stresi^2,lag=10,type="Ljung")

      Box-Ljung test

    data:  stresi^2

  X-squared = 5.0469, df = 10, p-value = 0.888

> Box.test(stresi^2,lag=20,type="Ljung")

    Box-Ljung test

    data:  stresi^2

X-squared = 14.261, df = 20, p-value = 0.817

               转载网址:http://rsoftware.h.baike.com/article-1940611.html

 

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
variance.model = list(model = "sGARCH", garchOrder = c(1, 1),submodel = NULL, external.regressors = NULL, variance.targeting = FALSE) distribution.model = "norm" ugarchfit(spec, datax, out.sample = 0, solver = "solnp", solver.control = list(),fit.control = list(stationarity = 1, fixed.se = 0, scale = 0)) 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") myfit=ugarchfit(myspec,data=datax,solver="solnp") #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) #通过plot(myfit)可以对模型结果进行图形诊断: plot(myfit) #如果模型通过检验,可以用ugarchforcast函数对未来进行预测: for<-ugarchforcast(myfit,n.ahead=20) library(zoo) #时间格式预处理 library(xts) #同上 library(timeSeires) #同上 library(urca) #进行单位根检验 library(tseries) #arma模型 library(fUnitRoots) #进行单位根检验 library(FinTS) #调用其中的自回归检验函数 library(fGarch) #GARCH模型 library(nlme) #调用其中的gls函数 library(fArma) #进行拟合和检验

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值