除了通过最小化误差平方和来估计参数,另一种方法是通过 最大化“似然函数” 。似然函数是特定模型产生数据的概率。因此,一个好的模型通常有着较大的似然函数。对于一个加性误差模型,最大化似然函数(假定误差正态分布)与最小化误差平方和给出的结果相同。但是,乘性误差模型会得到不同的结果。在本节中,我们将通过最大化似然函数来估计平滑参数
\(\alpha\)
,
\(\beta\)
,
\(\gamma\)
和
\(\phi\)
,以及初始状态
\(\ell_0\)
,
\(b_0\)
,
\(s_0,s_{-1},\dots,s_{-m+1}\)
。
平滑参数可以采用的可能值会受到限制。传统上,参数被限制在0和1之间,以便于将方程解释为加权平均值。也就是说,
\(0< \alpha,\beta^*,\gamma^*,\phi<1\)
。对于状态空间模型,我们设置了
\(\beta=\alpha\beta^*\)
和
\(\gamma=(1-\alpha)\gamma^*\)
。因此,传统的限制转换为
\(0< \alpha <1\)
,
\(0 < \beta < \alpha\)
以及
\(0< \gamma < 1-\alpha\)
。在实践中,阻尼参数
\(\phi\)
通常会受到进一步限制,以防止模型估计过程中的计算困难。在R中,它被限制为
\(0.8<\phi<0.98\)
。
(误差,趋势,季节性)的三种组合可能会导致数值计算上的困难。具体来说,可能导致这种不稳定性的模型是ETS(A,N,M),ETS(A,A,M),和ETS(A,A
\(_d\)
,M),因为在状态方程中分母可能接近于零。在选择模型时,我们通常不会考虑这些特定组合。
当数据严格为正值时,带有乘性误差的模型 很有用,但当数据包含零或负值时,模型在数值上并不稳定。因此,如果时间序列不是严格为正,那么乘性误差模型将不被考虑。在这种情况下,只有六个完全加性模型将会被应用。
: 要预测的时间序列。
model
: 一个由三个字母组成代码,表示使用ETS分类和符号表示的用来估计的模型。可能的输入值为“N”表示无,“A”表示加性,“M”表示乘性,或“Z”表示自动选择。如果任何一个输入为“Z”,则根据信息准则选择该成分。默认值
ZZZ
表示所有成分都使用信息准则进行选择。
damped
: 如果
damped=TRUE
,则将使用衰减趋势(A或M)。如果
damped=FALSE
,那么将使用无衰减趋势。如果 ‘damped=NULL’(默认值),那么将选择衰减或无衰减趋势,具体取决于哪个模型具有最小的信息准则值。
alpha
,
beta
,
gamma
,
phi
: 可以使用这些参数来指定平滑参数的值。如果它们设置为
NULL
(每个参数的默认值),则对这些参数进行估计。
lambda
: Box-Cox转换参数。如果
lambda=NULL
(默认值),它将被忽略。否则,时间序列将在模型估计之前进行变换。当
lambda
不是
NULL
时,
additive.only
被设置为
TRUE
。
biasadj
: 如果取值为
TRUE
且
lambda
不是
NULL
,那么反向变换的拟合值和预测值将被进行偏差调整。
additive.only
: 如果
additive.only=TRUE
,则只考虑含有加性成分的模型。否则,将考虑所有模型。
restrict
: 如果
restrict=TRUE
(默认值),那么在模型选择中不会考虑导致计算困难的模型。
allow.multiplicative.trend
: 乘性趋势模型也使用,但本书并未涉及。将此参数设置为
TRUE
以允许考虑这些模型。
ets()
函数将返回
ets
类的对象。有许多R函数可以方便地处理
ets
对象,将其中几个描述如下。
coef()
: 返回所有拟合参数值。
accuracy()
: 返回在训练数据上计算出的准确性度量。
summary()
: 打印一些关于拟合模型的摘要信息。
autoplot()
和
plot()
: 生成各成分的时序图。
residuals()
: 返回估计模型的残差。
fitted()
: 返回训练数据的一步预测值。
simulate()
: 将模拟来自拟合模型的未来样本路径。
forecast()
: 计算将在下一节所讲的点预测值和预测区间。