【问题标题】:Forecasting with tsDyn - Error in R使用 tsDyn 进行预测 - R 中的错​​误
【发布时间】:2018-03-04 20:12:15
【问题描述】:

早上好,
我目前正在使用每日销售额的时间序列进行预测。
名为myts 的数据集之前已转换为time series 对象。

每当我运行以下代码时,它都会给我一个错误

require(tsDyn)
x <- log(myts)
mod.ar <- linear(x, m=2)

错误:x必须是向量,不是ts对象,你要吗 stats::lag()?

最好的问候, 亚历克斯

【问题讨论】:

    标签: r neural-network forecasting


    【解决方案1】:

    是的,问题是由dplyr 拥有自己的lag 版本引起的,它覆盖了通常的滞后功能,以及包tseriesChaostsDyn 依赖于)导入方式中的错误斯塔斯::滞后。已发送并批准修复,但尚未提交给 CRAN: https://github.com/antoniofabio/tseriesChaos/commit/8abcc5a2d6d65588cdcec5527d4e5cb96eeccaec

    同时,您可以简单地将lag 覆盖回来:

    lag <- stats::lag
    

    现在应该可以了:

    mod.ar <- linear(lynx, m=2)
    

    如果你真的想要dplyr 的版本,请使用dplyr::lag `

    【讨论】:

      【解决方案2】:

      Alessandro 报告的问题可以由dplyrlag 函数生成,它覆盖了statslag 函数。
      试试这个:

      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()`?
      

      【讨论】:

      • 很好的发现 Marco!
      【解决方案3】:

      试试这个例子(注意我从一个向量开始,然后将它转换为一个时间序列对象)

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-20
        • 2017-12-07
        • 1970-01-01
        • 1970-01-01
        • 2018-05-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多