早上好,
目前我正在使用每日销售的时间序列进行预测。
名为 myts
的数据集之前已被转换成了 时间序列
对象。
无论何时运行以下代码,它都会给出一个 错误:
require(tsDyn)
x <- log(myts)
mod.ar <- linear(x, m=2)
错误:
x
必须是向量,不能是时间序列对象,您是否想使用stats::lag()
?
祝好, Alex
早上好,
目前我正在使用每日销售的时间序列进行预测。
名为 myts
的数据集之前已被转换成了 时间序列
对象。
无论何时运行以下代码,它都会给出一个 错误:
require(tsDyn)
x <- log(myts)
mod.ar <- linear(x, m=2)
错误:
x
必须是向量,不能是时间序列对象,您是否想使用stats::lag()
?
祝好, Alex
dplyr
中的 lag
函数引起的,该函数覆盖了 stats
中的 lag
函数。detach("package:dplyr", unload=TRUE)
library(tsDyn)
linear(log(lynx), m=2)
linear
正确工作,结果如下:Non linear autoregressive model
AR model
Coefficients:
const phi.1 phi.2
2.4352150 1.3842377 -0.7477757
现在,请试试这个:
detach("package:tsDyn", unload=TRUE)
library(dplyr)
library(tsDyn)
linear(log(lynx), m=2)
Error: `x` must be a vector, not a ts object, do you want `stats::lag()`?
require(tsDyn)
set.seed(1234)
tsdatav <- (seq(1:300)+rnorm(300,1000,10))
myts <- ts(tsdatav, frequency = 365, start = c(2017, 6))
plot(myts)
x <- log(myts)
mod.ar <- linear(x, m = 2)
mod.ar
是的,问题是由于 dplyr
有自己的版本 lag
,它覆盖了通常的滞后函数,以及包 tseriesChaos
(tsDyn
依赖于该包)导入 stas::lag 的错误。已经发送并批准了修复程序,但尚未提交到 CRAN:
https://github.com/antoniofabio/tseriesChaos/commit/8abcc5a2d6d65588cdcec5527d4e5cb96eeccaec
同时,您可以简单地将 lag
覆盖回来:
lag <- stats::lag
现在应该可以工作了:
mod.ar <- linear(lynx, m=2)
如果你真的想要使用 dplyr
的版本,可以使用 dplyr::lag