我有一个模型,它需要时间序列库存返回数据,并按返回的大小进行分类。类别的大小由标准偏差的数量来定义。我目前使用cut函数来执行此操作,我的代码是:
Division <- cut(return, br=c(min(return),-2*sd(return),-1*sd(return),-0.5*sd(return),0*sd(return),0.5*sd(return),1*sd(return),2*sd(return),max(return)))
这很好用,一切都好看。所以接下来我要做的就是将这些分区视为EGARCH模型中的虚拟变量。我只是想以正常方式指定,但这不起作用。我使用的代码是:
spec = ugarchspec(variance.model = list(model = "eGARCH", garchOrder = c(2,2)), mean.model = list(armaOrder = c(0,0), include.mean = TRUE))
fit = ugarchfit(spec = spec, data = Division)
我得到的错误是:
Error in if (mean(data) == 0) { : missing value where TRUE/FALSE needed
对我想要做的任何帮助都将不胜感激。
答案 0 :(得分:0)
传递错误的一种方法是在类别中包含min:
Division <- cut(return, br=c(min(return)*1.01,-2*sd(return),-1*sd(return),-0.5*sd(return),0*sd(return),0.5*sd(return),1*sd(return),2*sd(return),max(return)*1.01))