Press "Enter" to skip to content

如何在时间序列中建模多重季节性

处理多个时间段的季节效应

Joshua Woroniecki在Unsplash上的照片

在本文中,您将学习如何在时间序列中建模多个季节性。我们将涵盖以下内容:

  • 如何使用MSTL分解时间序列
  • 创建捕捉复杂季节性的解释变量
  • 使用现成的方法,以orbit预测包为例进行说明。

复杂季节性

季节性指的是随着固定周期性重复的系统性变化。这些模式与观察时间序列的频率有关。低频时间序列通常包含一个季节性周期。例如,月度时间序列呈现年度季节性。

越来越多的时间序列以更高的采样频率收集,例如每日或每小时。这导致了具有复杂季节性的更大的数据集。每日时间序列可能显示每周、每月和每年重复的模式。

下面是一个具有每日和每周季节性的每小时时间序列的示例:

具有每日和每周季节性的每小时时间序列。人工数据和图像由作者创建。

乍一看,很难确定上述时间序列是否包含多个季节性模式。多个季节性效应可能会相互重叠,这使得识别所有相关周期变得困难。

具有多个季节性的分解

分解方法旨在将时间序列分解为其基本部分:趋势、季节性和残差。

大多数方法都是为处理单个预定义周期的季节性而设计的。其中一些例子包括经典方法x11和STL等。

STL方法已扩展到处理多个季节性。MSTL(用于多个STL)可在statsmodels Python包中使用:

import numpy as npfrom statsmodels.tsa.seasonal import MSTL# 使用复杂季节性创建人工时间序列# 每日和每周季节性period1, period2 = 24, 24 * 7# 500个数据点size = 500beta1…
Leave a Reply

Your email address will not be published. Required fields are marked *