如何为寓言的 ARIMA 模型指定年度季节性

How to specify annual seasonality for an ARIMA model of fable

我在 fable 包的 ARIMA 模型中指定季节性时遇到问题。我有一个包含每日数据的数据集,并且想考虑年度季节性。我利用了可以在 Kaggle 上找到的每日电价和需求数据。

df <- read.csv("complete_dataset.csv")
df <- as_tibble(df)

df_t <- df %>% mutate(date = as_date(date),
                    school_day = if_else(school_day == "Y", 1, 0),
                    holiday = if_else(holiday == "Y", 1, 0))
df_ts <- as_tsibble(df_t, index = date)

arima_model2 <- df_ts %>% model(ARIMA(demand ~ max_temperature + PDQ(period=365.25)))
report(arima_model2)

## Warning: 1 error encountered for ARIMA(demand ~ max_temperature + PDQ(period = 365.25))
## [1] not all series have the same phase

## Series: demand 
## Model: NULL model 
## NULL model

我也试过 period = "1 year",但出现了同样的错误。

有办法解决这个问题吗?还是应该以其他方式指定?

谢谢!

没有可重现的例子,很难知道这里发生了什么。

要考虑每日数据的 ARIMA 模型中的年度季节性,使用傅里叶项比尝试添加具有较大周期的季节性 ARIMA 项要好得多。首先,季节性 ARIMA 组件需要一个整数周期。此外,他们使用季节性周期倍数的滞后值,并且参考过去一年(或几年)的观察结果是处理季节性的一种非常低效的方法。最后,对于具有较大季节性周期的 ARIMA 模型,估计速度非常慢(或者 return 会出错)。

有一个示例使用傅立叶项和 https://otexts.com/fpp3/complexseasonality.html#example-electricity-demand 处的 half-hourly 电力需求数据。您可以使用每日数据轻松地使其适应您的情况。