当p = 0时,预测::nnetar中的不稳定行为

xvw2m8pv  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(136)

使用forecast包版本8.15,运行以下代码行:

set.seed(42)
fit <- nnetar(nottem,p = 0,P = 2) 
fcast <- forecast(fit,h = 24)

(当然是在调用library(forecast)之后)对我来说产生了非常奇怪的不一致的结果。
我意识到p = 0并不是nnetar()所期望的,因为文档中说的是The inputs are for lags 1 to p,实际上在使用1:p这样的表达式时,代码隐含地假设了p > 0
因此,错误是合理的期望。然而,我发现nnetar()总是在没有错误或警告的情况下运行,并且结果对象上的forecast()通常返回相同的预测值集(可能是无意义的,但至少是一致的),但很少会返回以下错误:

> fcast <- forecast(fit,h = 24) 
Error in forecast.nnetar(fit, h = 24) : 
  I can't forecast when there are missing values near the end of the series.

遍历forecast::forecast.nnetar似乎可以发现,偶尔会产生NaN的预测值,然后将其纳入后续滞后,但我似乎无法确定为什么或在什么条件下首先产生NaN
有人知道这种行为的根源是什么吗?

643ylb08

643ylb081#

结果表明,这是软件包没有预料到的输入组合,不稳定行为是硬编码序列(如1:p)和不检查值(如p = 0)的结果。
这个issuepull request就是为了解决这个问题而创建的,在后续版本中,该软件包应该允许只有季节性滞后的模型。

相关问题