问题描述
我们正在预测每小时流量数据,该数据表现出每日和每周季节的多个季节模式。当提供完全相同的季节性参数并使用相同的训练和测试集时,BATS模型的测试误差比TBATS模型低得多的事实令我们感到困惑。根据Snyder和Hyndman(2011)的原始论文(详细描述了这两种模型),TBATS应该优于BATS模型。比较TBATS模型和BATS模型的残差的ACF / PACF,可以发现TBATS模型并未捕获对应于每周季节性的季节性峰值。这里有人知道TBATS模型出了什么问题吗?
tbats_fc <- forecast :: forecast(tbats(train,seasonal.periods= c(24,168)),h=24)
summary(tbats_fc) # TBATS(1,{4,4},-,{<24,7>,<168,6>})
accuracy(tbats_fc,test) # RMSE 1792.98 MAE 1554.78,MAPE 23.5707
bats_fc <- forecast :: forecast(bats(train,h=24)
summary(bats_fc) # BATS(0.035,1},0.934,{24,168})
accuracy(bats_fc,test) # RMSE 851.98 MAE 729.58,MAPE MAPE 7.2395
插件:数据和培训测试分组 我们也使用了TBATS函数的use.box.cox = TRUE选项来强制它使用转换,但结果仍然不尽人意。
library(stats,tseries,googledrive,forecast)
drive_download("taxi_series_hourly.csv",overwrite = TRUE)
traffic_hr_1yr <- read.csv("insert file path & name here",header
= TRUE)
# remove the last two days (48 observations aka 2 days)
traffic_hr_1yr_ts <- ts(traffic_hr_1yr$X0,start = c(1,1),end=c(363,24),frequency = 24)
length(traffic_hr_1yr_ts) # 8712
# train test split
train <- window(traffic_hr_1yr_ts,end = c(356,24))
test <- window(traffic_hr_1yr_ts,start = c(357,end = c(357,24))
#test set of 24 days
length(train) # 8544
length(test) # 24
# tbats including a BoxCox transformation
tbats_bc_fc <- forecast :: forecast(tbats(train,seasonal.periods=
c(24,168),use.parallel = TRUE,num.cores = NULL,use.box.cox = TRUE),h=24)
summary(tbats_bc_fc) # TBATS(0.05,2},0.8,8>,5>})
accuracy(tbats_bc_fc,test) # RMSE 2429.35
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)