r,ts - stl中的错误,系列有少于两个句点(错误?)

时间:2016-06-08 01:26:20

标签: r time-series forecasting

我有两年的月度数据,但 stl()似乎需要至少两年零一个月

以下是两个简单的例子:

示例1 - 返回“stl中的错误(x,”周期性“):   系列不是周期性的或少于两个周期“

dat_24 <- cumsum(rnorm(24))
x_24 <- ts(dat_24, frequency = 12)
stl(x_24, "periodic")

示例2 - 按预期返回预测

dat_25 <- cumsum(rnorm(25))
x_25 <- ts(dat_25, frequency = 12)
stl(x_25, "periodic")

我不应该仅使用频率= 12的24个数字进行预测吗?

1 个答案:

答案 0 :(得分:3)

适用于所有类型的周期系列,无论是每周或每年或任何其他时期。除了至少 2 周期的完整周期外,您还必须拥有至少1个额外数据点。

以下是每周系列的示例,您也会收到错误:

dat_Weekly <- cumsum(rnorm(104,0,5))
x_Weekly <- ts(dat_Weekly, frequency = 52, start = c(2013))
stl(x_Weekly, "periodic")

您可以浏览原始论文:here

下面的解释可能不是最好的,但我想试一试。

假设您有一个冰淇淋公司的2年月度销售数据( 24 数据点),您的目标是找出其中的季节性。

STL要做的第一件事是将数据消耗2年或更长时间(24或36或48个月)以计算季节性,趋势等。在这种情况下,我们有24个数据点。现在,STL将需要至少一个额外的数据点 ON ,这将预测季节性。 由于STL已经使用了您的前24个数据点来学习每月季节性,因此绝对需要下一个数据点来扩展之前的预测。

换句话说,前24个数据点用于检查季节性,而下一个数据点(大于24 )将遵循先前计算的两年季节性模式。对于1月的销售情况,您可能会看到STL情节有所下降。