r - R中关于TBATS的两个问题
问题描述
我对时间序列数据集和我的 TBATS 分析有疑问。
我有一个每月商品价格数据集。图 1 显示了历史价格数据,我认为由于商品的固有性质,可能存在多个季节性。我正在使用以下代码运行 TBATS 模型。
TBATS_Fit <- tbats(y = Convert_Zoo_To_ts(df, 12))
TBATS_Fit
BATS(0.001, {0,0}, -, -)
Call: tbats(y = Convert_Zoo_To_ts(df, 12))
Parameters
Lambda: 0.0011
Alpha: 1.209941
Seed States:
[,1]
[1,] 8.091626
attr(,"lambda")
[1] 0.001099983
Sigma: 0.04596143
AIC: 5817.134
但是,该模型没有发现任何季节性,对吗?
然后,我尝试了以下方法以创建具有多个季节性的 ts 对象。我选择季节性周期时会考虑可能的季节性,例如 3 个月、6 个月、一年、3 年和 5 年。
y_msts = msts(y, seasonal.periods = c(3,6,12,36,60))
TBATS_Fit_Mult <- tbats(y = y_msts )
BATS(0.001, {0,0}, -, -)
Call: tbats(y = y_msts )
Parameters
Lambda: 0.0011
Alpha: 1.209941
Seed States:
[,1]
[1,] 8.091626
attr(,"lambda")
[1] 0.001099983
Sigma: 0.04596143
AIC: 5817.134
两个模型的结果是一样的。
虽然模型的回报预测相当不错,但我认为我错过了一些我可以捕捉到的信息。
另一个问题是,当我提前预测多个时期时,模型的预测是相同的,与预测范围无关。换句话说,提前一个月的价格预测 = 提前三个月的价格预测。
可能是什么原因,你能帮帮我吗?
谢谢。
解决方案
推荐阅读
- python - Auto Py To Exe 打开文件时出错
- android - Gradle 同步失败:没有这样的属性:类的记录器:org.gradle.initialization.DefaultProjectDescriptor
- visual-studio - 来自用户的数组输入
- swift - 将文件写入不存在的目录时自动创建目录
- laravel - where 子句 laravel 上的数组
- python - 使用初始参数值python重新启动类
- node.js - Amazon S3 getObject() 收到被 NodeJS 拒绝的访问
- angular - agm-map 和 agm-marker 拖动
- python - 蟒蛇3;pyexiv2 v.2.7 无法加载 exiv2.dll,虽然它在那里
- html - 为什么我的 flex-row 不能在我的内部 div 上工作