我正在尝试使用tsoutliers包来定位时间序列中的异常值。
我正在使用经典的Nile数据集(你可以在这里找到:https://vincentarelbundock.github.io/Rdatasets/datasets.html),并且我不能让tso()函数工作。
我的代码是:
nile.outliers <- tso(Nile,types = c("AO","LS","TC"))
但是,我得到这个语法错误,或者我认为是语法错误:
tso0中的错误(x = y,xreg = xreg,cval = cval,delta = delta,n.start = n.start,:尝试从对象(类“data.frame”)获取插槽“y”一个S4对象
如果有人能帮助我弄清楚这个问题会很惊人!谢谢!
狡辩:这不是语法错误(来自R),它是来自tso0
包中的tsoutliers
函数的运行时错误。
但是,根据你在何处获取数据的描述,当tso
想要一个"ts"
对象时,看起来好像是在传入一个数据框。你不需要下载数据,它内置于R;所以你删除你创建的坏的,并使用内置的:
rm(Nile)
nile.outliers <- tso(Nile,types = c("AO","LS","TC"))