一、简介
笔者在工作中,接触到了客流数据,网络质量数据等,零零散散的对时间序列分析方法进行了学习和实践。
在平时的工作中,大多数公司都会有很多时序数据,也都离不开时序数据的挖掘。
所以现在整理分享出来,忘大家批评指正。
二、什么是时序数据
时间序列数据(time series data)是在不同时间上收集到的数据,用于描述现象随时间变化的情况。
时间序列是一种典型的数据,具有随时间变化的特征。在大多数场景中,都能见到的一种数据类型。
如客流数据,股票数据,销售额数据,网络日志,某些KPI指标等等内容。
Time | Value |
---|---|
2018-11-01 | 2222 |
2018-11-02 | 3241 |
2018-11-03 | 4232 |
... | ... |
三、时间序列的分析
一般情况下,时间序列数据可以分解为3个部分,如下图所示:
- Trend,数据的总体变化趋势
- Seasonality,数据的周期性/季节性变化
-
Residuals,数据的残差或者噪音
y = trend + seasonality + residuals
上图就是时间序列分解图,时间序列数据可以看出是 trend, seasonal, residual等信号的叠加。对其进行分解,有助于我们了解数据,对数据进一步分析。
四、时间序列预测方法
首先我们要有个目标,想通过时间序列数据完成什么样的目标,短期、中期、长期预测。然后需要尽可能的收集时间序列数据,数据越多,能够发现更多数据特征,预测会更准确。时间序列需要对数据中的缺失、异常、范围等进行处理。
常见的时间序列数据预测方法,笔者主要总结一下几种:
- 简单平均法
- 移动平均法
- 指数平均法
- ARIMA法
- Prophet法
- 线性回归、KNN等机器学习算法
- LSTM等深度学习算法
下面,我会针对每种算法进行简单的介绍,以及示例分析。没有详细介绍的部分,也会给出更好的参考文献,供大家学习。
希望大家有所提升,我也是不断的在学习。谢谢。
有问题欢迎留言,转载请注明地址。