时间序列分解
时间序列分解为周期项 + 趋势项 + 节假日项
分解方式
分类
加性
- $Y_t=S_t+T_t+R_t$
乘性
- $Y_t=S_t \times T_t \times R_t$
^^S^^eason
- 计算原始序列数据-趋势值之后的 detrend 值在周期内的均值
^^T^^rend
计算序列的[[移动平均]]
sktime 多项式回归
^^R^^esidual
- 原始数据 - Season - Trend
[[Python/package]]
statsmodels.tsa.seasonal中seasonal_decompose
季节性和周期性
季节性总是具有固定的已知频率
周期性的波动频率不是固定的
时间序列分解如何和时间序列预测结合?
gbdt 外推能力差,对于趋势性强的时间序列数据的拟合能力比较差,通过时间序列分解之后去除趋势性部分,剩下季节性+残差部分用 gbdt 进行拟合。
扩展开来趋势项可以用 lr 或 nn 拟合,剩余部分使用 gbdt 拟合
- 双重误差问题,gbdt 在 lr 或 nn 基础上再进行拟合,如果外推模型本身存在过拟合,gbdt 会错上加错。
缺点
经典时间序列分解方法简单,精度低。电商的节假日无法分解
季节性分解做的比较简单,每一个周期内的值都是不变的
无法分解多个周期性嵌套的时间序列问题