作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言数据高效处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书,《R语言数据高效处理指南》(黄天元)【简介_书评_在线阅读】 - 当当图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。
一般来说,时间序列能够分解为趋势性、周期性和残差三个部分。传统的分解方法可以划分为可加性分解(additive)和可乘性分解(multiplicative)两种,算法可见6.3 Classical decomposition | Forecasting: Principles and Practice。其中,可加性的分解目前不建议使用,原因是:
1、分解的时候,趋势性的预测总是缺乏首尾的数值。这一点做滑动平均(moving average)就会有体会,用前n个序列的均值来作为n+1时刻的趋势预测,那么前面n个数值注定都是缺失值,而最后n个数值也无法获得;
2、对于骤增和骤降不敏感,显得过于平滑,因此如果有突发的事件也难以进行捕捉;
3、对季节性的预测非常刻板,基本假设中周期性是固定的,如果随着时间改变其周期性波动也发生改变,可加性分解就无法捕捉到。
简单方法的R实现函数为decompose(type="multiplicative