首页 文章

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

提问于
浏览
1

我有 two years of monthly datastl() 似乎需要至少 two years and one month .

这是两个简单的例子:

示例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 回答

  • 2

    它适用于所有类型的周期系列,无论是每周或每年或任何其他时期 . 除了至少 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个数据点用于检查季节性,而下一个数据点( greater than 24 )将遵循先前计算的两年季节性模式 . 对于1月的销售情况,您可能会看到STL情节有所下降 .

相关问题