【问题标题】:autostsm stsm_estimate Error: exo must be a data frame or data tableautostsm stsm_estimate 错误:exo 必须是数据框或数据表
【发布时间】:2021-02-10 11:40:08
【问题描述】:

使用包autostsm,函数stsm_estimate和下面的MWE代码会产生错误Error in stsm_estimate(y, exo = x) : exo must be a data frame or data table

x <- data.frame(cbind(runif(10),runif(10)))
y <- runif(10)
library(autostsm)
fitstsm <- stsm_estimate(y, exo=x)

如何修复它并进行估算?

编辑:我也试过了

library(autostsm)
x <- data.frame(Date = Sys.Date() + sample(10), c = cbind(runif(10),runif(10)))
y <- data.frame(Date = Sys.Date() + sample(10), c = runif(10))
fitstsm <- stsm_estimate(y, exo=x)

产生同样的错误。

RStudio 版本 1.3.1093 Ubuntu Bionic 的“Apricot Nasturtium”(aee44535,2020-09-17) Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.12.8 Chrome/69.0.3497.128 Safari/537.36

Ubuntu 18.04 LTS

【问题讨论】:

    标签: r


    【解决方案1】:

    ?stsm_estimate 的文档表明 y 应该是时间序列数据集或带有日期列的 2 列数据框。

    这行得通:

    library(autostsm)
    y <- data.frame(Date = Sys.Date() + sample(10), c = runif(10))
    fitstsm <- stsm_estimate(y)
    

    【讨论】:

    • 但是,对于外生变量(我想使用),它仍然没有:library(autostsm) x &lt;- data.frame(Date = Sys.Date() + sample(10), c = cbind(runif(10),runif(10))) y &lt;- data.frame(Date = Sys.Date() + sample(10), c = runif(10)) fitstsm &lt;- stsm_estimate(y, exo=x) 生成与上面相同的错误。
    • 我认为该函数存在错误。它有一个检查 ` if(!is.data.frame(exo) | !is.data.table(exo)). However, it should be if(!(is.data.frame(x) | is.data.table (x)))`。从这里检查源代码rdrr.io/cran/autostsm/src/R/stsm_estimate.R
    • 那么为 VARX 使用不同的包会更容易。我试过dse,但它似乎没有输出单个系数的标准误差或统计显着性。下次试试MTS
    【解决方案2】:

    我将在 autostsm 的下一次更新中进行此修复。感谢发帖!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-15
      • 2022-07-14
      • 2021-07-01
      • 2021-07-17
      • 2021-05-08
      • 2018-01-27
      • 2020-08-15
      • 2018-12-26
      相关资源
      最近更新 更多