时间序列简介
时间序列是时间间隔不变的情况下收集的时间点集合,没有其他数据辅助。这些集合被分析用来了解长期发展趋势,为了预测未来或者表现分析的其他形式。
最近完成一个基于时间序列ARIMA预测的项目,为了处理非平稳化的数据,需要将数据分解成长期趋势项、季节性周期项以及残差项几部分,然后分别“对症下药”。以下写写数据的具体分解函数代码及原理。
decompose数据分解
python代码
数据分解的代码可直接调用python的statsmodels库,如下,就分解成了三部分数据。
from statsmodels.tsa.seasonal import seasonal_decompose
decomposition = seasonal_decompose(timeseries) #timeseries时间序列数据
trend = decomposition.trend
seasonal = decomposition.seasonal
residual = decomposition.resid
但到底是如何分解成这三部分呢,还是值得探究一下。以下写写数据的具体分解过程。
数据分解原理
decompose数据分解模型主要有两类:相加模型(additive)和相乘模型(multiplicative)。
官方解释是:
The additive model is Y[t] = T[t] + S[t] + e[t]
The multiplicative model is Y[t] = T[t] * S[t] * e[t]
其中,T[t]是趋势项,S[t]是季节性周期项,e[t]是残值项。一般的ÿ