使用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
。
有人知道这种行为的根源是什么吗?
1条答案
按热度按时间643ylb081#
结果表明,这是软件包没有预料到的输入组合,不稳定行为是硬编码序列(如
1:p
)和不检查值(如p = 0
)的结果。这个issue和pull request就是为了解决这个问题而创建的,在后续版本中,该软件包应该允许只有季节性滞后的模型。