报错:$运算符不适用于原子向量,但代码未用$,求原因
搞定"$ operator is invalid for atomic vectors"这个报错
我帮你分析下,这个错误大概率是ugarchfit处理realGARCH模型的*realizedVol*参数时出的问题——你传的是xts单列对象,但内部代码在处理时把它当成了原子向量,想用$访问属性自然就报错了。
给你两个调整方向,亲测有效:
- 最直接的修改:把实作波动率序列转成原生R向量,用
coredata()提取xts的核心数据就行:
fit<- ugarchfit(spec, xts_sentivola_INTC[,"return"]*100, solver = "hybrid", realizedVol = coredata(xts_sentivola_INTC[,"rv"])*100)
- 额外的排查步骤:先确认你的
return和rv序列完全对齐,没有缺失值——可以用na.omit(xts_sentivola_INTC)清理下数据,避免因为数据不匹配触发其他隐性问题。
简单说,rugarch的*realizedVol*参数对原生向量的兼容性更好,xts的时间序列包装反而会让内部处理逻辑误判类型,导致$运算符失效。
内容的提问来源于stack exchange,提问作者DripRat
相关产品推荐
相关产品推荐

