数据挖掘之时间序列分析

一、 概念

时间序列(Time Series)

时间序列是指同一统计指标的数值按其发生的时间先后顺序排列而成的数列(是均匀时间间隔上的观测值序列)。

时间序列分析的主要目的是根据已有的历史数据对未来进行预测。

时间序列分析主要包括的内容有:趋势分析、序列分解、序列预测。

时间序列分解(Time-Series Decomposition)

时间序列按照季节性来分类,分为季节性时间序列和非季节性时间序列。

时间序列的构成要素:

  • 长期趋势 T:现象在较长时期内受某种根本性因素作用而形成的总的变动趋势

  • 季节变动 S:现象在一年内随着季节的变化而发生的有规律的周期性变动

  • 循环趋势 C:现象以若干年为周期呈现出的波浪起伏形态的有规律的变动

  • 不规则变动 I:是一种无规律可循的变动,包括严格的随机变动和不规则的突发性影响很大的变动两种类型

二、 非季节性时间序列

移动平均(MA,Moving Average)

移动平均是一种简单平滑技术,它通过在时间序列上逐项退役取一定项数的均值,来表现指标的长期变化和发展趋势

1、 简单移动平均(SMA)

简单移动平均将时间序列上前n个数值做简单的算术平均。

SMAn = ( x1 + x2 + ...... + xn)/ n

2、 加权移动平均(WMA)

加权移动平均,在基于简单移动平均的基础上,对时间序列上前n期的每一期数值赋予相应的权重,即加权平均的结果

基本思想:提升近期的数据、减弱远期数据对当前预测值的影响,使预测值更贴近最近的变化趋势。

WMAn = w1x1 + w2x2 + ...... + wnxn

3、 非季节性时间序列的分解

将非季节性时间序列分解为 趋势 和 不规则波动 两个部分。

#导入数据并绘制图形,得到如下的图形

三、 季节性时间序列

在一个时间序列中,若经过n个时间间隔后呈现出相似性,该序列具有以n为周期的季节性特性。

季节性时间序列的分解

将季节性时间序列分解为 趋势 、周期性 和 不规则波动 三个部分。

tips:需要将时间列转换成索引列,方便计算

四、 序列预测

1、概念

预测(forecast)

对尚未发生或目前还不明确的事物进行预先的估计和推测,是在现时对事物将要发生的结果进行探讨和研究,简单的说就是指从已知事件预测未知事件。

时间序列预测(Time Series Forecasting

通过分析时间序列,根据时间序列所反映出来的发展过程、方向和趋势,进行类推或延申,借以预测下一段时间或以后若干时间段内可能达到的水平。

平稳型时间序列(Stationary Time Series)

平稳时间序列,其统计特征不随时间变化二变换,一般采用均值、方差或者协方差来作为统计特征。

差分(Integrated)

常用的时间序列预测模型:

AR(p)模型(Autoregressive Model):自回归模型描述的是当前值与历史值之间的关系

MA(q)模型(Moving Average Model):移动平均模型描述的是自回归部分的误差累计

ARMA模型: 所谓ARMA模型,是指将非平稳时间序列转化为平稳时间序列,然后将因变量仅对它的滞后值以及随机误差项的现值和滞后值进行回归所建立的模型。

相关推荐
智算菩萨2 分钟前
MP3音频编码原理深度解析与Python全参数调优实战:从心理声学模型到LAME编码器精细控制
android·python·音视频
qq_4523962331 分钟前
【模型手术室】第四篇:全流程实战 —— 使用 LLaMA-Factory 开启你的第一个微调任务
人工智能·python·ai·llama
放下华子我只抽RuiKe51 小时前
深度学习全景指南:硬核实战版
人工智能·深度学习·神经网络·算法·机器学习·自然语言处理·数据挖掘
无心水1 小时前
Java时间处理封神篇:java.time全解析
java·开发语言·python·架构·localdate·java.time·java时间处理
吴秋霖1 小时前
【某音电商】protobuf聊天协议逆向
python·算法·protobuf
深藏功yu名2 小时前
Day24:向量数据库 Chroma_FAISS 入门
数据库·人工智能·python·ai·agent·faiss·chroma
cm6543202 小时前
用Python破解简单的替换密码
jvm·数据库·python
wan9yu2 小时前
为什么你需要给 LLM 的数据"加密"而不是"脱敏"?我写了一个开源工具
python
摇滚侠2 小时前
你是一名 java 程序员,总结定义数组的方式
java·开发语言·python
这个名有人用不3 小时前
解决 uv 虚拟环境使用 pip 命令提示command not found的办法
python·pip·uv·claude code