机器学习之时间序列分析(一)
2018-08-19 本文已影响13人
墨攻科技
时间序列分析是机器学习中常见的一种类型。经常用来以下几种问题:
- 销量预测 2. 金融分析
时间序列分析这个领域内通常有两种解决问题的方式:
- 谱分析:通过傅里叶变换将时域变换到频域,然后对频域数据进行分析
- 时域分析:从序列自相关的角度揭示时间序列的发展规律
目前常用第二种方法。下面默认时间序列分析方法指的是第二种。
时间序列分析一个重要的假设就是序列是平稳的,包括AR(自回归Auto Regressive)、MA(Moving Average 移动平均)以及ARMA(Auto Regressive Moving Average) 这几个模型都对待建模序列有这个要求。ARIMA(Auto Regressive Integrated Moving Average Model 差分整合移动平均模型) 可以对非平稳的序列进行预测,前提是ARIMA可以通过差分获得平稳序列。
故进行时间序列分析需要进行以下几步:
-
检测序列平稳性
方法有 ADF-Test(Augmented Dickey-Fuller Test)
如果存在单位根,则序列非稳定,无法进行分析 -
对不平稳的序列进行差分
可以差分一次或者多次,然后对数据进行稳定性分析。可以通过 绘图或者ADF-Test进行
直到处理后的自相关函数和偏自相关函数数值非显著非零。 -
建模
-
如果偏自相关函数是截尾,而自相关函数是拖尾,则建立AR模型
-
如果偏自相关函数是拖尾,而自相关函数是截尾,则建立MA模型
-
如果偏自相关函数和自相关函数都是拖尾,则建立ARMA模型
-
-
模型检验
判断残差序列是否为白噪声,如果是,则表示建模成功