我使用下面的代码在R中对一组时间序列数据进行了预测。场景1和场景1之间的唯一区别2是我在场景2中错误地将原始时间序列和子集时间序列设置为start=c(2015,12)
。两种场景的预测结果是不同的。两种方案都具有与预测中使用的子集数据相同的开始日期。我不明白为什么原始时间序列开始日期会影响预测结果。
# Scenario 1
ts.vision = ts(data=vision$ADJ_ILR, frequency = 12,start=c(2015,1), end=c(2017,12))
ts.vision.sub <- window(ts.vision, start=c(2015, 12))
ts.vision.fit <- stl(ts.vision.sub, t.window=15, s.window="periodic", robust=TRUE)
forecast(ts.vision.fit, h=12)
# Scenario 2
ts.vision = ts(data=vision$ADJ_ILR, frequency = 12,start=c(2015,12), end=c(2017,12))
ts.vision.sub <- window(ts.vision, start=c(2015, 12))
ts.vision.fit <- stl(ts.vision.sub, t.window=15, s.window="periodic", robust=TRUE)
forecast(ts.vision.fit, h=12)
这是类似的情况,我使用基础R上可用的nottem数据集重写了两个场景: #场景1 ts.nottem = ts(nottem,frequency = 12,start = c(1920,1),end = c(1939,12)) ts.nottem.sub&lt; - window(ts.nottem,start = c(1937,12)) ts.nottem.fit&lt; - stl(ts.nottem.sub,t.window = 15,s.window =&#34; periodic&#34;,robust = TRUE) 预测(ts.nottem.fit,h = 12)
#Scenario 2
ts.nottem = ts(nottem, frequency = 12,start=c(1937,12), end=c(1939,12))
ts.nottem.sub <- window(ts.nottem, start=c(1937, 12))
ts.nottem.fit <- stl(ts.nottem.sub, t.window=15, s.window="periodic", robust=TRUE)
forecast(ts.nottem.fit, h=12)
我不明白为什么预测结果不同,即使方案1和方案之间的子集时间序列数据相同。 2。
答案 0 :(得分:0)
以下是一些内置数据的示例
library(forecast)
ts.1 <- ts(data=nottem[1:36], frequency = 12, start=c(2015,1), end=c(2017,12))
ts.1.sub <- window(ts.1, start=c(2015, 12))
ts.1.fit <- stl(ts.1.sub, t.window=15, s.window="periodic", robust=TRUE)
ts.1.fc <- forecast(ts.1.fit, h=12)
ts.2 <- ts(data=nottem[1:36], frequency = 12, start=c(2015,12), end=c(2017,12))
ts.2.sub <- window(ts.2, start=c(2015, 12))
ts.2.fit <- stl(ts.2.sub, t.window=15, s.window="periodic", robust=TRUE)
ts.2.fc <- forecast(ts.2.fit, h=12)
#all.equal(ts.1.fc, ts.2.fc) # NO!
我省略了长长的愤怒信息!发生了什么?看看两个子集对象:
head(ts.1.sub)
#> Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
#> 2015 39.8
#> 2016 44.2 39.8 45.1 47.0 54.1
head(ts.2.sub)
#> Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
#> 2015 40.6
#> 2016 40.8 44.4 46.7 54.1 58.5
它们不一样,因为在方案1中,您通过原始数据中的第36个值获得第12个值,而在方案2中,您获得第1个到第25个值。