乘法分量 GARCH

multiplicative component GARCH

所以我正在尝试为哥伦比亚股票 http://unstarched.net/2013/03/20/high-frequency-garch-the-multiplicative-component-garch-mcsgarch-model/ 复制这个 post,所以首先我做与 post 相同的事情,以了解它的作用和方式工作。但是在安装 mscGARCH 时,我得到了我现在不知道为什么的原因,因为我做的和 post 做的一样。一切准备就绪,但我没有得到答案,所以我来这里寻求帮助。 我的代码是:

library(rugarch)
Sys.setenv(TZ="GMT")
library(quantmod)
library(zoo)
library(TTR)

R_i=read.csv('C:/Users/Alejandro/Downloads/C_2008_1minret.csv')
R_i= xts(R_i[,2],as.POSIXct(R_i[,1]))
getSymbols("C", from="2000-01-01", to="2013-03-20")
C= adjustOHLC(C,use.Adjusted = T)
R_d= ROC(Cl(C),na.pad=F)

par(cex.main=0.85,col.main="black")
acf(abs(as.numeric(R_i)),lag.max=4000, main="1-min retornos absolutos\nCitigroup (2008 Jan-Feb)"
      ,cex.lab=1.5)

####################
## Implementacion ##
####################

n= length(unique(format(index(R_i),"%Y-%m-%d")))

spec_d=ugarchspec(mean.model = list(armaOrder=c(1,1)),
                  variance.model = list(model="eGARCH",garchOrder=c(2,1)),
                  distribution="nig")

roll=ugarchroll(spec_d,data=R_d["/2008-02-29"], forecast.lenght=n,
                refit.every = 5,refit.window = "moving", moving.size=2000,
                calculate.VaR=F)

df=as.data.frame(roll)
f_sigma=as.xts(df[,"Sigma",drop=F])

spec= ugarchspec(mean.model=list(armaOrder=c(1,1),include.mean=T),
                 variance.model=list(model="mcsGARCH"), distribution="nig")

fit=ugarchfit(data=R_i, spec=spec,DailyVar=f_sigma^2)

最后一个命令给我的错误是:Error in !matchD : invalid argument type。但是我不知道我做错了什么

我以前遇到过这个错误。如果我没记错的话,你的错误来自这一行:

fit=ugarchfit(data=R_i, spec=spec,DailyVar=f_sigma^2)

您需要确保 R_if_sigma 的数据范围一致。我认为这就是该错误告诉您的内容(matchD = 每日数据的日内匹配?)

例如,如果 R_i 具有 2012 年所有日期的盘中数据,那么在您的通话中确保您的每日交易量估计值用作输入,包含在 f_sigma 中,与相同的时间范围(即子集 f_sigma 正确)。例如。做类似的事情 fit=ugarchfit(data=R_i, spec=spec,DailyVar=f_sigma["2012"]^2)