如何知道最好的 FASSTER 公式
How to know the best FASSTER formula
我的数据结构如下图所示,以小时为间隔。我需要预测需求。
# A tsibble: 23,400 x 6 [1h] <UTC>
Date Demand WeekDay DaysAfterHoliday Influenza MAX_Temperature
<dttm> <int> <int> <int> <dbl> <dbl>
1 2017-05-01 00:00:00 122 1 0 1 19.2
2 2017-05-02 01:00:00 124 2 1 3.04 25.3
...
我知道在假期后的一天,急诊室的患者人数比平时多,但我无法确定模型是否考虑到了这一点。
数据具有每日、每周和每年的季节性(特别是对于固定假期)。
对于多重季节性,我可以使用 FASSTER
来处理假期效果。我阅读了关于这个和一些演示文稿的 r 文档页面,但在那些情况下,季节性和预测公式被赋予这样的函数:
# NOT RUN {
cbind(mdeaths, fdeaths) %>%
as_tsibble %>%
model(FASSTER(mdeaths ~ fdeaths + poly(1) + trig(12)))
# }
有没有办法让FASSTER
搜索到最合适的公式?如果不是,我怎么知道哪个是最好的方法?
提前致谢!
faster 包目前不提供任何自动模型选择功能 (https://github.com/tidyverts/fasster/issues/50)。
要确定合适的更快的模型规范,您可以首先以图形方式探索数据以识别其结构。您可能会考虑的一些问题包括:
- 你的数据是季节性的吗?需要哪些季节?
通过 fourier(period, K)
或 season(period)
将季节性包含在傅立叶项中。通常使用 fourier()
项更好,因为能够指定谐波数 (K
) 可以让您控制季节性的平滑度并减少模型参数。
- 您的数据是否包括水平或局部趋势?
包括 poly(1)
的水平或 poly(2)
的趋势。
- 是否存在潜在的外生回归因素(一个很好的例子是电力需求的温度)。
以与 lm()
. 中相同的方式包括外生回归变量
- 数据中的模式是否以可预测的方式交替(例如,工作日和周末的季节性。)
使用%S%
在这些模式之间切换。例如,要为工作日和周末设置不同的季节性模式,您可以考虑 day_type %S% (fourier("day", K = 7))
,其中 day_type
是模型中的一个变量,用于指定当天是工作日还是周末。
捕获假期后患者增加的一种简单方法是将 DaysAfterHoliday
作为外生回归变量。由于这种关系可能是非线性的,您可能还需要包括该变量的一些非线性转换作为外生回归变量。
我的数据结构如下图所示,以小时为间隔。我需要预测需求。
# A tsibble: 23,400 x 6 [1h] <UTC>
Date Demand WeekDay DaysAfterHoliday Influenza MAX_Temperature
<dttm> <int> <int> <int> <dbl> <dbl>
1 2017-05-01 00:00:00 122 1 0 1 19.2
2 2017-05-02 01:00:00 124 2 1 3.04 25.3
...
我知道在假期后的一天,急诊室的患者人数比平时多,但我无法确定模型是否考虑到了这一点。 数据具有每日、每周和每年的季节性(特别是对于固定假期)。
对于多重季节性,我可以使用 FASSTER
来处理假期效果。我阅读了关于这个和一些演示文稿的 r 文档页面,但在那些情况下,季节性和预测公式被赋予这样的函数:
# NOT RUN {
cbind(mdeaths, fdeaths) %>%
as_tsibble %>%
model(FASSTER(mdeaths ~ fdeaths + poly(1) + trig(12)))
# }
有没有办法让FASSTER
搜索到最合适的公式?如果不是,我怎么知道哪个是最好的方法?
提前致谢!
faster 包目前不提供任何自动模型选择功能 (https://github.com/tidyverts/fasster/issues/50)。
要确定合适的更快的模型规范,您可以首先以图形方式探索数据以识别其结构。您可能会考虑的一些问题包括:
- 你的数据是季节性的吗?需要哪些季节?
通过fourier(period, K)
或season(period)
将季节性包含在傅立叶项中。通常使用fourier()
项更好,因为能够指定谐波数 (K
) 可以让您控制季节性的平滑度并减少模型参数。 - 您的数据是否包括水平或局部趋势?
包括poly(1)
的水平或poly(2)
的趋势。 - 是否存在潜在的外生回归因素(一个很好的例子是电力需求的温度)。
以与lm()
. 中相同的方式包括外生回归变量
- 数据中的模式是否以可预测的方式交替(例如,工作日和周末的季节性。)
使用%S%
在这些模式之间切换。例如,要为工作日和周末设置不同的季节性模式,您可以考虑day_type %S% (fourier("day", K = 7))
,其中day_type
是模型中的一个变量,用于指定当天是工作日还是周末。
捕获假期后患者增加的一种简单方法是将 DaysAfterHoliday
作为外生回归变量。由于这种关系可能是非线性的,您可能还需要包括该变量的一些非线性转换作为外生回归变量。