我正在尝试使用tsoutliers包定位时间序列中的离群值。
我使用的是经典的尼罗河数据集(您可以在这里找到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,: 试图从不是S4对象的对象(类“ data.frame”)获取插槽“ y”
如果有人可以帮助我解决这个问题,那就太好了!谢谢!
答案 0 :(得分:1)
一个小问题:这不是语法错误(该错误来自R),而是tso0
包中tsoutliers
函数的运行时错误。
但是从您对获取数据的位置的描述来看,当tso
需要一个"ts"
对象时,您好像在传递数据帧。您不需要下载数据,它内置在R中;因此,您可以删除自己创建的不良代码,并使用内置的恶意代码:
rm(Nile)
nile.outliers <- tso(Nile,types = c("AO","LS","TC"))