SARIMA模型PM10浓度预测m=365的问题

问题描述 投票:0回答:2

我正在尝试构建 SARIMA(季节性自回归综合移动平均线)模型,用于根据五年的数据预测 PM10 浓度。但是,当我将季节性参数 m 设置为 365 时,我的代码似乎无法运行。

有人可以解释一下为什么我的代码没有以 m=365 运行并提出一个潜在的解决方案吗?

提前致谢!

# Here's a snippet of my code:
## Split the dataset into train and test sets

    `train_size = int(len(Alipur_df) * 0.8)  # 80% train, 20% test`
    `train, test = Alipur_df[:train_size], Alipur_df[train_size:]`

## Convert train DataFrame to a numpy array

    `train_values = train['Alipur'].values`
    `test_values = test['Alipur'].values`

## Use auto_arima to find the best parameters for SARIMA

    `auto_model = auto_arima(train['Alipur'], seasonal=True, stationary=True, m= 365, trac
machine-learning time-series forecasting arima
2个回答
4
投票

SARIMA(和指数平滑)具有众所周知的“长”季节性问题,如 Rob Hyndman 的博客post中所述:

[...]非常高阶的季节性差异没有多大意义 - 对于每日数据,它涉及将今天发生的情况与一年前发生的情况进行比较,并且不存在季节性模式平滑的限制。

处理“长”季节性的普遍接受的方法是使用具有 ARIMA 误差的傅立叶项回归,或使用专门的状态空间模型,如 BATS/TBATS - 请参阅上面链接的博客文章。


0
投票

根据 Rob Hyndman 的博客文章 “长季节周期预测”,长季节周期的季节性 ARIMA(p,d,q)(P,D,Q) 模型很难估计:

arima()
函数允许季节性周期高达$m=350$,但实际上,只要季节性周期超过约$200$,通常就会耗尽内存。

这可能是您的代码无法运行的原因。

与Stephan Kolassa的答案相反,我的理解是这与季节差分的顺序$D$无关,因为问题不仅存在于$D>1$,而且当时也存在$D=0$。同时,季节周期较短且 $D>1$ 的季节性 ARIMA 模型不受此问题的影响。因此,我认为对季节性差异的关注是转移注意力的。

关于推荐的替代方案,我同意 Stephan Kolassa 的回答中建议的方案。

© www.soinside.com 2019 - 2024. All rights reserved.