时间序列数据是指随时间顺序收集的观测值。可以是每日股价、每月降雨量或每小时网站流量。与通常每个观测值独立的常规数据集不同,时间序列数据的主要特征是其固有的时间依赖性。时间依赖性序列在某一时间点的值,例如$y_t$,通常会受到其先前时间点的值的影响,如$y_{t-1}$、$y_{t-2}$等。观测值与其前驱值之间的这种关系称为自相关或序列相关。考虑零售店的月度销售数据。12月的高销售额之后,1月的销售额可能会下降,这会在$y_{December}$和$y_{January}$之间产生负相关。相反,一个季度的强劲销售增长可能接着出现持续(尽管可能较慢)的增长,表明在不同时间滞后下存在正相关。这种时间依赖性是核心。尽管它违反了许多标准统计方法(如直接应用的普通最小二乘回归)所基于的独立性假设,但这正是时间序列分析旨在建模并用于预测的结构。如果你知道今天的温度,那么你对明天的温度会比对今天一无所知时有更好的判断。隐含顺序由于观测值与特定时间点相关联,因此顺序非常重要。随机打乱时间序列数据集会破坏其顺序关系,并使大多数时间序列分析技术变得无效。序列 $y_1, y_2, ..., y_T$ 包含的信息在顺序改变后会丢失。这与横截面数据(例如在某一时间点进行的用户偏好调查)形成鲜明对比,在横截面数据中,行的顺序通常不包含信息。可能存在的系统模式时间序列经常表现出可以识别和建模的系统模式。尽管我们将在稍后详细审视这些组成部分,但主要类型有:趋势 (Trend): 数据的长期增长或下降。例如,几十年间全球气温的逐渐升高。季节性 (Seasonality): 在固定已知周期内重复出现的模式。例如,节假日期间零售销售额的增加(年度季节性)或一天中特定时段电力消耗的增加(每日季节性)。周期性模式 (Cyclical Patterns): 非固定周期的长期波动,通常与更广泛的经济或商业周期相关。由于其持续时间可变,这些模式通常比季节性更难建模。这些模式的存在需要专门的技术来分离和理解它们的影响。{"layout": {"title": "时间序列示例", "xaxis": {"title": "时间 (月)"}, "yaxis": {"title": "值"}, "margin": {"l": 40, "r": 20, "t": 40, "b": 40}}, "data": [{"type": "scatter", "mode": "lines", "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], "y": [3.0, 6.8, 9.6, 10.0, 8.1, 5.2, 2.8, 2.4, 4.9, 8.2, 11.1, 12.5, 15.3, 19.0, 21.1, 21.0, 18.5, 15.1, 12.2, 11.9, 14.8, 18.6, 22.0, 24.1], "line": {"color": "#339af0"}}]}一个时间序列,显示出24个月内的上升趋势和季节性变化。频率时间序列数据与特定的频率相关联,频率定义了连续观测值之间的时间间隔。这可以是每小时、每日、每周、每月、每季度、每年,甚至是更细的间隔(例如,每分钟、每秒),或是不规则间隔。了解频率对于以下方面很重要:理解季节性: 季节性模式是相对于频率定义的(例如,月度数据中每12个点重复出现的模式是年度季节性)。数据处理: 像Pandas这样的库会使用频率信息来执行日期范围生成和对齐等任务。模型解释: 模型参数和预测的解释取决于时间单位。大多数技术假设数据是以规则间隔(固定频率)收集的,尽管也存在处理不规则间隔时间序列的方法。统计属性的变化(非平稳性)许多原始时间序列的一个重要属性是非平稳性。这意味着序列的统计属性,如均值、方差或自相关结构,随时间变化。一个表现出明显趋势或强季节性的序列通常是非平稳的,因为其均值随趋势或季节而变化。许多时间序列模型,包括我们将在后续学习的ARIMA模型,都假设数据是平稳的。因此,识别非平稳性并转换数据以实现平稳性(通常通过差分或分解)是分析工作流程中常见且必要的一步。我们将在第二章专门介绍平稳性的理解和处理。识别这些属性,即时间依赖性、固定顺序、可能存在的模式、频率以及非平稳的可能性,是进行任何时间序列分析的起点。它们指导我们如何预处理数据、可视化数据、选择合适的模型,并最终生成有意义的预测。