哪个是适合时间序列预测的神经网络/函数?请考虑,上述示例只是一个简化的数据示例。
好吧,这完全取决于您的数据。在您的示例数据中,您拥有
- 一个小的单变量时间序列(只有 14 个观察值)
- 线性趋势
- 没有白噪声
- 没有季节性
- 无循环
- 非线性
nnetar()
神经网络通常非常精通数据/数据饥渴。这意味着您需要大量数据来实施准确的预测。14 次观察绝对不够,您需要十或十万。一般来说,我不建议使用神经网络来预测单变量时间序列。神经网络的一个好处是它们可以捕获非线性,但您的数据不会表现出任何非线性。注意nnetar()使用前馈神经网络;在最近的时间序列预测中,许多研究人员使用循环神经网络而不是前馈神经网络。
您也可以阅读此讨论。据我所知nnetar()是基于这里的讨论
如果您打印fit,您将看到模型。它是 20 个不同神经网络的平均值,因此不是确定性的。
Series: df
Model: NNAR(1,1)
Call: nnetar(y = df)
Average of 20 networks, each of which is
a 1-1-1 network with 4 weights
options were - linear output units
sigma^2 estimated as 0.003636
ets()
此函数使用指数平滑。指数平滑模型需要较少的参数。因此,它们在您的小型数据集上表现更好。
仔细研究简单指数平滑方程可能会有所帮助:
s0=x0
st=αxt+(1−α)st−1
在你的情况下和是0。s0x0
如果您打印fit2,您会看到信息标准都等于负无穷大,这表明没有比您选择的模型更好的模型。
ETS(A,A,N)
Call:
ets(y = df)
Smoothing parameters:
alpha = 0.5445
beta = 0.1009
Initial states:
l = 0
b = 1
sigma: 0
AIC AICc BIC
-Inf -Inf -Inf