人工智能技术基础系列之:时间序列分析

作者:禅与计算机程序设计艺术

1.背景介绍

什么是时间序列分析?

时间序列(Time Series)数据是指按一定时间间隔观察的数据,如股价、销量等。时间序列数据的特点是随着时间的推移而变化,并且往往存在明显的趋势、周期性及其他特殊结构,因此对时间序列数据的分析具有重要意义。时间序列分析(TimeSeries Analysis,TSA)就是利用时间序列数据进行研究、预测和处理的一门学科。时间序列分析是数据挖掘的一个重要分支,其涉及到诸多的主题,包括:时序模式识别、预测、时序关联分析、异常检测、预测准确性评估、时间序列分类、异常控制、维度提取等。本文将主要讨论时间序列分析的几个基本知识点:

  • 时空分布:描述时间序列数据在时间上的分布特性。
  • 基本假设检验:验证时间序列数据的平稳性、平方程度、协整性。
  • 参数估计:根据历史数据对未来的时间序列进行估计。
  • 模型选择:选择最优的时间序列模型。
  • 预测:对未来时间序列进行预测。

    2.核心概念与联系

    时间序列数据

    时间序列数据(Time Series Data),是指按照一定时间间隔观察或记录的数字化信息,包括时序数据(Temporal Data)和指标数据(Indicator Data)。

时序数据

时序数据可以是关于时间的任何变量或现象,例如,公司的收入、地区的人口数量、城市的气候变化、物价水平、商品运输情况等都属于时序数据。这些数据通常是数字化的,每一个数据代表某种类型的时间值以及该类型变量的值。

指标数据

指标数据也称表格数据(Tabular Data),它是在一定时间段内观察到的某些事实或者事件。比如,当地的房价,某品牌产品的销售量、某地区消费者对某个商品的满意度、股票的价格变动等都属于指标数据。一般来说,指标数据一般是以表格形式呈现的,各项数据之间存在对应关系。

时空分布

时空分布(Spatial Temporal Distribution,STD),用来描述时间序列数据在空间和时间上分布的特征。时空分布可由统计分布和空间分布组成。统计分布主要包括统计指标的变异系数、方差、偏度和峰度;空间分布则用位置密度函数来表示,它反映了观察对象所在区域或领域内不同位置的密集程度。时空分布还能够描述一定的空间变换和时间变换。

相关分析

相关分析(Correlation Analysis)是时间序列分析中的一种数据分析方法。这种方法通过衡量两个时间序列之间的线性相关性、非线性相关性、趋势相关性等,从而发现其相互影响和影响因素。相关分析是时间序列分析的关键,它提供了时间序列数据中复杂模式的发现、建模和解释功能。相关分析可以帮助我们更好的理解时间序列数据,发现潜在的长期趋势,并对其进行有效的预测。

残差分析

残差分析(Residual Analysis)是时间序列分析中比较基础的方法。它是利用时间序列回归分析中残差的统计特性来判断模型是否适合用于预测。对于含有噪声的数据,残差的统计特性(均值为零、标准差为正态分布)可以作为一种自然的检验标准,来判断模型是否适合用于预测。

3.核心算法原理和具体操作步骤以及数学模型公式详细讲解

时序数据

时序数据简介

时序数据(Time series data)又称历史数据、历史记录、时间序列,是指按照一定时间间隔观察或记录的数字化信息。其特点是随着时间的推移而变化,并且往往存在明显的趋势、周期性及其他特殊结构,因此对时间序列数据的分析具有重要意义。

举个例子,假设我们有一个服装厂的销量和销售额数据,其中包含服装每个季度销量及销售额,我们可以通过时序图(time series chart)来直观地展示这一数据。时间轴表示每个季度,纵坐标表示服装销量,横坐标表示服装售价。通过查看数据中季节性变化、循环模式和累积效应等,我们可以更好地理解服装的销售情况。

时序图(Time Series Chart)

时序图(Time Series Chart)是一个很重要的工具,它可以直观地展现时间序列数据。

首先,将每个时间步的数据绘制成一条折线,即时间轴在X方向,数据值在Y方向。

其次,每条折线都用不同的颜色、线宽和样式来区分不同的数据。这样就可以很容易看出数据随时间的变化趋势。

再者,除了折线图外,还有很多其他图表都可以用来呈现时间序列数据,例如柱状图、条形图、饼状图、雷达图等。这些图表都能显示出各种数据,比如总体趋势、局部趋势、波动幅度、离散程度等。通过对比这些图表,我们可以发现数据中隐藏的一些模式。

时序数据预处理

数据清洗

对于时序数据,数据清洗是非常重要的工作。首先要检查数据质量(如缺失值、异常值、重复值等),然后将缺失值和异常值处理掉,最后对齐数据(如将同一个时间序列数据有缺失的时间点补充完整)。数据清洗需要注意以下几点:

  1. 合并、裁剪不连续的时间段数据。
  2. 检查时间标签的一致性。
  3. 确定时间戳的精度。
  4. 检查数据单位是否统一。
  5. 对时间戳进行转换,如将日期时间转化为秒、毫秒级。
  6. 删除或填补不完整的数据。
  7. 将时间戳排序,方便插值计算。
数据标准化

对于时序数据,如果它们是用不同单位或者不同尺度表示的话,就可能存在极端值,导致数据失真。所以一般都会对数据进行标准化处理,将数据除以其均值和标准差,使得数据分布在0~1之间。标准化处理需要注意以下几点:

  1. 使用平均值中心化或标准化。
  2. 校准数据偏差。
  3. 对不同属性的数据进行独立标准化。
时序数据的特征提取

时序数据一般会包含许多特征,如移动平均线、高斯白噪声、趋势性检测、周期性检测、自相关函数、偏自相关函数等。通过对这些特征进行分析,可以更好地了解数据的时间序列特征。特征提取过程需要注意以下几点:

  1. 分割训练集和测试集。
  2. 选择合适的模型。
  3. 使用交叉验证的方式评估模型的性能。
  4. 在多个时间序列上同时训练模型。
  5. 用多个机器学习算法进行融合。

Trend 和 Seasonality

在进行时序分析之前,我们应该对数据进行一些预处理工作,如去除无关紧要的信号、填充缺失值等。接下来,我们将讨论 Trend 和 Seasonality。

Trend 是指数据随时间的变化趋势。一个典型的 Trend 可以是趋向于上升或下降的线性回归。当出现趋势性变化时,我们可以考虑建立 Trend 模型来预测数据的未来走势。Seasonality 是指时间的季节性特征,也就是说,数据往往是以固定的周期性变化的。季节性变化可以使得数据变得更加复杂和难以预测。季节性变化通常发生在年末、年初、上半年和下半年。

趋势性

趋势性是指数据随时间的变化趋势,可以分为上升趋势、下降趋势、不规则趋势等。上升趋势是指数据的变化速度较快且持续时间较长。例如,一天之内股票的价格上升了一个百分点以上。下降趋势是指数据随时间呈现负趋势,并持续的时间较短。例如,一周之内股票的价格下跌了十分之一左右。不规则趋势是指数据发生变化剧烈且缓慢。

对于上升趋势,我们可以使用平滑曲线来拟合数据。平滑曲线可以将上升趋势减弱到趋于平稳状态。对于下降趋势,我们可以使用阶梯函数来拟合数据。阶梯函数是指数据以稳定的速度逐渐下降,然后突然一下子跳跃起来。不规则趋势也可以用类似的技术来预测。

季节性

季节性是指时间的周期性特征,它可以使得数据变得更加复杂和难以预测。季节性变化一般发生在年末、年初、上半年和下半年。在季节性变化影响下,数据随时间的变化趋势会出现变化。

常见的季节性变化包括:

  1. 年度调节:季节性变化带来整体经济状况的变化,如货币供应、利率、劳动力价格、房价上涨、企业活动、股市等。
  2. 月度调节:月末通常会触发投资热潮,比如楼市炒作。
  3. 节日调节:春节、端午、元宵、中秋等节日带来消费需求激增,也会导致全球经济景气上升。
  4. 时序调节:有些系统的行为依赖于时间。比如,股票市场的政策和市场的运行规律可能会受到时间的影响。

为了检测季节性,我们可以使用 ACF(自相关函数)和 PACF(偏自相关函数)进行分析。

自相关函数(Autocorrelation Function,ACF)是衡量变量在给定时间段内自身相关性的指标。对于数据 X(t),ACF 表示数据在时间 t 以后的情况和过去时刻的情况之间的相关程度。对于数据 X(t+k),ACF(k) 表示数据在 k 个单位时间之后和过去时刻的相关程度。对于信号的某一段时间,ACF 函数可以给出各时间点的相关性系数,以便判断信号的趋势、周期性、跳跃点等。

偏自相关函数(Partial Autocorrelation Function,PACF)是对 ACF 函数做偏移得到的函数。偏自相关函数将观察点排除了,只考虑自身前面的时间跨度,对于数据的延迟性进行了描述。

通过 ACF 和 PACF,我们可以检测出季节性变化,并进一步确定趋势性。

ARIMA 模型

ARIMA (AutoRegressive Integrated Moving Average,自回归 integrated moving average)是时间序列分析中一种常用的统计模型。它是基于移动平均模型(Moving Average Model,MA)和 autoregression model 的组合。ARMA 模型的目的是找到一个数学模型,使得在当前时刻的观察值 y_t 和先前观察值的线性组合 a(L) 中,能够尽可能精确地预测当前时刻之后的值 y_(t+k)。其中,a(L) 为 autoregressive 系数,L 为滞后阶数,autoregressive 系数决定了 ARMA 模型的灵敏度,L 越大模型的预测能力越强。

ARIMA 模型的工作流程如下:

  1. 一阶差分。将原始数据一阶微分,求得当前时刻数据和滞后一阶数据之间的关系。
  2. 计算自相关函数。自相关函数是描述随机过程相互关系的指标。ARIMA 使用自相关函数来识别数据中的趋势和季节性。
  3. 确定 p 和 q。p 和 q 分别代表自回归和移动平均模型中的参数个数。
  4. 计算误差项。ARIMA 通过最小化模型的均方误差来寻找合适的参数。

指标监控

指标监控是对模型的性能进行实时的监控,随时掌握模型的运行情况,调整模型参数、调整策略、分析预测结果等。指标监控可以帮助我们调整模型的性能,避免错误地认为模型已经能够完全预测。

常用的指标有 RMSE(Root Mean Square Error)、MAPE(Mean Absolute Percentage Error)、MSE(Mean Squared Error)、R^2(R Squared)等。RMSE 表示均方根误差,即预测值与实际值之间的平方差的算术平方根。MAPE 表示平均绝对百分比误差,MAPE = (|F - A| / |A|) * 100%,其中 F 为预测值,A 为实际值。R^2 表示拟合优度,它反映了模型的拟合能力。

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/133594330