r - 如何确定时间序列中的最佳频率?

标签 r statistics time-series forecasting holtwinters

我有一个按天分组的数据库指标,我需要预测 future 3 个月的数据。这些数据具有季节性(我相信季节性是一周中的几天)。

我想使用使用 R 的 Holt Winters 方法,我需要创建一个时间序列对象,它要求频率,(我认为是 7)。
但是我怎么知道我是否确定?有识别最佳频率的功能吗?

我正在使用:

FID_TS <- ts(FID_DataSet$Value, frequency=7)

FID_TS_Observed <- HoltWinters(FID_TS)

如果我用 decompose(FID_TS) 分解这些数据, 我有:

enter image description here

这是我的第一个预测 FID_TS_Observed :

enter image description here

当我查看去年的历史时,它们在前 3 个月开始较低,然后从第 3 个月增加到 11 个月,然后再次下降。

也许我的每日数据,每天都有每周季节性(频率 = 7)和每月季节性(频率 = 7x30 = 210)?我需要过去 365 天?

有什么办法可以按星期几和按月放置频率?另一件事,我在 Holt-Winters 方法中使用整个去年或其中的一部分有什么不同吗?

提前致谢 :)

最佳答案

通常,频率(或季节性,您似乎在帖子中交替使用这些词)由领域知识决定。例如,如果我在餐厅工作,并且正在分析每小时的客户数据集,我知道我将有一个 24 小时的频率,在午餐时间和晚餐时间出现峰值,以及另一个 168 小时的频率 (24 * 7)因为我的客户每周都会有一个模式。

如果由于某种原因,您没有领域知识,您可以使用 ACF 和 PACF,以及傅里叶分析来为您的数据找到最佳频率。

Have any way to put the frequency by day of the week and by month?



对于 Holt-Winters,没有。 HW 仅采用一种季节性成分。对于多个季节性组件,您应该尝试 TBATS。正如 Xiaoxi Wu 指出的那样,FB Prophet 可以模拟多个季节性,Google 的 BSTS 包也可以。

Another thing, does it make any difference I take the whole last year or just a part of it to use in the Holt-Winters method?



是的,它确实。我想对季节性进行建模,那么您需要至少两倍于季节性周期才能对其进行建模(最好是更多),否则您的模型无法知道峰值是季节性变化还是一次性冲动.因此,例如要对每周季节性进行建模,您至少需要 14 天的训练数据(加上您将用于测试的任何数据,对于年度季节性,您将需要至少 730 天的数据,等等......

关于r - 如何确定时间序列中的最佳频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49173818/

相关文章:

machine-learning - 用于提前一天基础预测模型的评估。对于我的火车测试拆分,我是否执行 80 :20 split or do a (rest of the days : last day) split?

python - 自回归模型的部分拟合或增量学习

python - t检验在 Pandas 中

sql - 如何清除 SQL Server 2005/2008 中的查询执行统计信息

r - 在向量中的点内插值

从整个数据框中删除一个字符

python每日数据来自每分钟的数据

java - 在 LAMP 系统上与 R(R 项目)、MySQL 和 Java 通信的最有效方式是什么?

r - 如何按多列拆分/聚合大型数据框(ffdf)?

r - 在R中合并两列数据框