在应用任何建模技术之前,理解时间序列数据中的结构是重要一步。时间序列数据中的观测值是时间相关的,这种相关性通常源于潜在模式。时间序列 $y_t$ 通常由几个未观测到的部分构成,这些部分影响其随时间的变化。识别这些部分有助于选择合适的分析方法并构建更好的预测模型。下面我们分析通常讨论的四个主要组成部分:趋势 ($T_t$)趋势代表数据中的长期方向或变动。它反映了在较长时间内潜在的增长或下降,同时忽略短期波动。特点: 序列平均水平的平滑、通常单调(持续增加或减少)的变化。示例:全球人口数十年间的稳定增长。某项特定技术随着普及化价格逐渐下降。电动汽车不断提高的普及率。识别: 在显示很长一段时间的时间序列图中,通常表现为上升或下降的斜率。明显的趋势通常意味着序列的均值随时间变化。正如我们将在第2章中看到的,这是许多原始时间序列非平稳的主要原因,而许多标准模型都要求我们处理这种状况。{"layout": {"title": "上升趋势示例", "xaxis": {"title": "时间"}, "yaxis": {"title": "数值"}, "showlegend": false, "template": "plotly_white", "width": 600, "height": 350, "margin": {"l": 40, "r": 20, "t": 50, "b": 40}}, "data": [{"x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "y": [20, 22, 21, 24, 25, 27, 26, 29, 30, 32, 31, 34, 35, 37, 36, 39, 40, 42, 41, 44], "mode": "lines+markers", "line": {"color": "#1c7ed6"}, "marker": {"color": "#1c7ed6", "size": 6}}]}一个显示总体上升趋势的简单序列。季节性 ($S_t$)季节性指代在固定且已知周期内重复出现的模式。这个周期可以是每年、每季度、每月、每周甚至每天,具体取决于数据的性质。特点: 在特定时间段内出现的可预测波动(例如,温度数据在夏季出现高峰,冬季出现低谷)。周期的长度是固定的。示例:由于假期,零售销售额在11月和12月增长。电力消耗在炎热的夏季下午和寒冷的冬季早晨达到高峰。工作日早晚通勤时间交通量增加。识别: 在时间序列图中,视觉上明显表现为规律间隔重复出现的波峰和波谷。按季节周期(例如,月份、星期几)分组的箱线图也能清晰地显示这些模式。季节性与趋势不同,因为它代表了围绕趋势的短期、规律波动。在第5章讨论SARIMA模型时,处理季节性是一个重点。{"layout": {"title": "季节性示例(季度模式)", "xaxis": {"title": "季度"}, "yaxis": {"title": "销售额"}, "showlegend": false, "template": "plotly_white", "width": 600, "height": 350, "margin": {"l": 40, "r": 20, "t": 50, "b": 40}}, "data": [{"x": ["Q1'21", "Q2'21", "Q3'21", "Q4'21", "Q1'22", "Q2'22", "Q3'22", "Q4'22", "Q1'23", "Q2'23", "Q3'23", "Q4'23"], "y": [100, 150, 120, 200, 110, 160, 130, 210, 105, 155, 125, 205], "mode": "lines+markers", "line": {"color": "#12b886"}, "marker": {"color": "#12b886", "size": 6}}]}显示每年重复模式,并在第四季度达到高峰的销售数据。周期性 ($C_t$)周期性组成部分代表中长期波动,这些波动没有固定或已知周期。这些周期通常跨越数年,并通常与更广范围的经济或商业状况相关。特点: 持续时间通常超过一年的波浪状模式。一个周期(从一个波峰到下一个波峰或一个波谷到下一个波谷)的长度是可变且不可预测的。示例:商业周期(经济扩张期后接收缩期),可能持续2到10年或更长时间。受全球供需变化影响的商品价格长期波动。识别: 由于周期可变,比趋势或季节性更难直观识别。需要非常长的时间序列。通常使用更高级的技术或领域知识进行分析。季节性模式和周期性模式之间的主要区别在于周期长度及其可预测性。季节性具有固定、已知周期(例如,12个月),而周期性模式具有可变、未知周期(例如,数年)。由于其不规则性,明确地对周期性组成部分建模可能很困难。不规则性 ($I_t$)不规则性组成部分,也称为残差或噪声,代表时间序列中随机、不可预测的波动,这些波动无法通过趋势、季节性或周期性组成部分来解释。特点: 短期、不稳定的变化。理想情况下,在考虑了系统模式后,该部分代表随机噪声。示例:影响销售的意外事件,例如自然灾害、罢工或突然的政策变化。测量误差。许多微小、未观测到的因素的累积效应。识别: 去除趋势、季节性和周期性组成部分后剩余的部分。在建模中,我们通常检查这些残差,以确保它们表现为随机噪声(例如,具有零均值、恒定方差且无自相关性),这验证了模型的拟合优度。组合组成部分这些组成部分通常被假定以特定方式组合,以形成观测到的时间序列 $y_t$。这种组合的两种最常见的模型是:加法模型: 假定组成部分相加。当季节性/周期性波动的幅度随时间相对恒定时适用,无论趋势水平如何。 $$y_t = T_t + S_t + C_t + I_t$$乘法模型: 假定组成部分相乘。当季节性/周期性波动的幅度随着趋势水平的上升或下降而增加或减少时,这种模型通常更合适。 $$y_t = T_t \times S_t \times C_t \times I_t$$ 有时,乘法模型可以通过对序列取对数转换为加法模型:$\log(y_t) = \log(T_t) + \log(S_t) + \log(C_t) + \log(I_t)$。将时间序列分解为这些组成部分的过程称为分解,我们将在第2章中使用Python实现它。理解这些基本组成部分很重要,因为趋势和季节性的存在显著影响合适预测模型的选择(如ARIMA与SARIMA)以及所需的预处理步骤(如差分以实现平稳性)。本章后面讨论的数据可视化,通常是识别可能存在哪些组成部分的第一步。{"layout": {"title": "带有趋势、季节性和噪声的合成序列", "xaxis": {"title": "时间步长"}, "yaxis": {"title": "数值"}, "showlegend": false, "template": "plotly_white", "width": 700, "height": 400, "margin": {"l": 40, "r": 20, "t": 50, "b": 40}}, "data": [{"x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "y": [22, 28, 25, 20, 23, 29, 26, 21, 24, 30, 27, 22, 25, 31, 28, 23, 26, 32, 29, 24, 27, 33, 30, 25, 28, 34, 31, 26, 29, 35, 32, 27, 30, 36, 33, 28], "mode": "lines", "line": {"color": "#4c6ef5"}}]}一个时间序列,显示上升趋势,结合重复的季节性模式(周期为4个时间步长)和一些随机噪声。