请选择 进入手机版 | 继续访问电脑版
楼主: hylnwoau
2056 0

[程序分享] 金融时间序列蔡瑞胸第三版第三章部分习题答案 [推广有奖]

  • 0关注
  • 5粉丝

硕士生

61%

还不是VIP/贵宾

-

威望
0
论坛币
2511 个
通用积分
20.6074
学术水平
2 点
热心指数
0 点
信用等级
0 点
经验
4549 点
帖子
60
精华
0
在线时间
263 小时
注册时间
2017-5-22
最后登录
2022-12-25

hylnwoau 发表于 2018-5-14 22:41:46 来自手机 |显示全部楼层 |坛友微信交流群

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
#习题3.12
dat<-read.table(file="C:\\Users\\admin\\Desktop\\好好学习\\金融时间序列\\unit3\\d-gmsp9908.txt",header = T)
library(fGarch)
library(timeDate)
library(timeSeries)
library(fBasics)

sp<-ts(dat[,3])
plot(sp)
#检验ARCH效应
Box.test(sp^2,lag=10,type = 'Ljung')
#X-squared = 2100, df = 10, p-value < 2.2e-16,存在ARCH效应

#建立GARCH模型
#步骤一:建立均值方程
acf(sp)
pacf(sp)  #5阶截尾
m11=arima(sp,order=c(5,0,0))
m11
Box.test(m11$residuals,lag=10,type='Ljung')
#除AR(3)外,系数都显著,且残差无序列相关性


#步骤二:检验均值方程残差项的ARCH效应
Box.test(m11$residuals^2,lag=10,type='Ljung')
#存在ARCH效应

#步骤三:识别ARCH或GARCH模型的阶数
at=m11$residuals
acf(at^2) #拖尾
pacf(at^2)  #8阶截尾,arch效应的阶数过多,因而考虑建立GARCH模型

#步骤四:建立GARCH模型
m12=garchFit(sp~arma(5,0)+garch(1,1),data=sp,trace=F)
summary(m12)
#Ljung-Box Test     R    Q(20)  19.09316  0.5157779
#Ljung-Box Test     R^2  Q(20)  19.8018   0.4703876
#GARCH模型充分

#步骤五:预测
predict(m11,n.ahead=4)
#收益率序列向前1步至4步预测值
#-0.0042056740 -0.0006821726 -0.0002578279 -0.0017980087


#习题3.13
library(rugarch)
library(parallel)
#了解ugarchspec函数的用法
?ugarchspec

#拟合GARCH-M模型
source("C:\\Users\\admin\\Desktop\\好好学习\\金融时间序列\\GARCH函数簇\\garchM.R")
m21=garchM(sp)
myspec=ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)),
                   mean.model = list(armaOrder = c(5, 0), include.mean =T, archm = T))
m22=ugarchfit(myspec,data=sp,solver = "solnp")


#拟合EGARCH模型
myspec1=ugarchspec(variance.model = list(model = "eGARCH", garchOrder = c(1, 1)),
                  mean.model = list(armaOrder = c(5, 0), include.mean =T, archm = FALSE))
myfit1=ugarchfit(myspec1,data=sp,solver = "solnp")
#杠杆效应在5%的显著性水平下显著


#习题3.14
#对数收益率
lnsp<-log(sp+1)*100
lngm<-log(1+dat[,2])*100

#建立广义误差分布的AR(5)-GARCH(1,1)模型
myspec2=ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)),
                   mean.model = list(armaOrder = c(5, 0),include.mean =T),
                   fixed.pars=list(ar1=0,ar2=0,ar4=0),
                  distribution.model = "ged" )
myfit2=ugarchfit(myspec2,data=lnsp,solver = "solnp")
?ugarchfit

#提取拟合的波动率序列
spvol<-fitted(myfit2)
spvol<-sigma(myfit2)  #提取方差序列
plot(myfit2,which="all")

#对gm的对数收益率建立ARMA(1,1)的均值方程
acf(lngm)
pacf(lngm)
m31=arima(lngm,order=c(1,0,1))
Box.test(m11$residuals,lag=10,type='Ljung')

#将spvol作为外生变量,建立GM的GARCH(1,1)模型
myspec3<-ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1),
                    external.regressors=spvol),
                    mean.model = list(armaOrder = c(1, 1),include.mean =T))
myfit3=ugarchfit(myspec3,data=lngm,solver = "solnp")
二维码

扫码加我 拉你入群

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

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


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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-17 02:48