R forecast package-auto.ARIMA中没有能够估计误差的ARIMA模型
我在HPC服务器中为多个数据集使用R forecast package-auto.ARIMA中没有能够估计误差的ARIMA模型,r,time-series,arima,R,Time Series,Arima,我在HPC服务器中为多个数据集使用auto.arimafromforecast包。列车数据始终有24个数据点,其中包含过去2年的逐月数据。数据还包含一个外部回归。很长一段时间以来,它一直运行良好,但是我突然遇到了一个错误,仅针对一个数据集- <simpleError in search.arima(x, d, D, max.p, max.q, max.P, max.Q, max.order, stationary, ic, trace, approximation, xreg =
auto.arima
fromforecast
包。列车数据始终有24个数据点,其中包含过去2年的逐月数据。数据还包含一个外部回归。很长一段时间以来,它一直运行良好,但是我突然遇到了一个错误,仅针对一个数据集-
<simpleError in search.arima(x, d, D, max.p, max.q, max.P, max.Q, max.order, stationary, ic, trace, approximation, xreg = xreg, offset = offset, allowdrift = allowdrift, allowmean = allowmean, parallel = parallel, num.cores = num.cores): No ARIMA model able to be estimated>
当我在安装了Rrversion 4.0.2的windows计算机上运行此代码时,它工作正常(正在构建ARIMA模型(0,1,0)),但当在HPC server中使用相同的数据运行相同的代码时,我面临上述错误。即使我试图在另一台windows计算机上使用从RStudio安装的Rrversion 3.6.1执行相同的代码,我也会遇到相同的错误
这是因为R版本的差异还是我遗漏了什么?请帮我解决这个问题。R版本在这里可能没有什么区别。软件包版本更重要。这里您使用的是forecast软件包,
auto.arima
算法在过去几年中有了一些改进和错误修复。当前CRAN版本的forecast是v8.12,它返回ARIMA(0,1,0)模型。谢谢Rob Hyndman。我理解这一点,并应将pckg更新至最新版本。我很想知道,在使用较旧版本的forecast pkg时,这个错误是否有任何技术原因。使用相同的数据,如果我将第22个数据点的值减少1000,旧版本还会返回ARIMA(0,1,0)模型。我不明白原始数据和更新数据之间的区别。我不明白为什么前者会抛出错误,而后者会返回有效的ARIMA模型。如果您能对此提供一些说明,或向我介绍任何材料或文件,我将不胜感激。提前感谢您尚未说明您使用的软件包版本,因此无法回答可能导致这些结果的更改。您可以在OK上查看auto.arima()
函数更改的完整历史记录。非常感谢你。这真的很有帮助。
auto_arima <- ts(data$y, start=min(data$DATE), frequency=12)
auto_arima <- auto.arima(auto_arima, xreg = data$x1, stepwise=FALSE, approximation=FALSE, seasonal=TRUE)
structure(list(DATE = structure(c(17804, 17835, 17865, 17896,
17927, 17955, 17986, 18016, 18047, 18077, 18108, 18139, 18169,
18200, 18230, 18261, 18292, 18321, 18352, 18382, 18413, 18443,
18474, 18505), class = "Date"), x1 = c(21, 22, 21, 22, 22, 19,
22, 21, 22, 21, 22, 22, 21, 22, 21, 22, 22, 19, 22, 21, 22, 21,
22, 22), y = c(17532306871, 41826190703, 7748403270, 14959015398,
15241717931, 18655759009, 15393151016, 15251081090, 14516497716,
13974303432, 11254893416, 17410813458, 14446411746, 12876827127,
17609512917, 12179664532, 17473491954, 18447419416, 28262667160,
36623989143, 28711285833, 28711285833, 28711285833, 28711285833
)), row.names = c(NA, 24L), class = "data.frame")