首页 > > > R语言时间序列分析(三):趋势性、季节性、周期性
作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言数据高效处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。
时间序列有一些比较常见的特征,包括:
1、趋势性(Trend):即在一定时间内的单调性,一般来说斜率是固定的。
2、季节性(Seasonal):固定长度的变化,就像春夏秋冬的温度变化一样。
3、周期性(Cyclic):与季节性很像,但是它的波动的时间频率不是固定的。
以上都是基本概念,重点是区分季节性和周期性。事物都是盛极必衰,但是跌落谷底之后又反弹,这种往复的运动,被称之为周期性。但是像日出日落、春夏秋冬、周六日放假这种节律如果能够固定下来,那么这种固定的往复变化就被成为季节性。
对季节性数据的可视化,有一定的方法,比如对于a10这份数据(1991年到2008年月尺度的抗糖尿病药物销量),就可以做两种图。第一种是总体概况:
ggseasonplot(a10, year.labels=TRUE, year.labels.left=TRUE) +
ylab("$ million") +
ggtitle("Seasonal plot: antidiabetic drug sales")
这个图的原则是,以我们ts的frequency作为一个单位来表示。因为这里是12月1年的月尺度数据,因此frequency其实是12,就会用月来显示数据。这里基于年进行分组。
第二种可视化方法是基于月进行分组,然后查看不同年份每个月的趋势和均值:
ggsubseriesplot(a10) +
ylab("$ million") +
ggtitle("Seasonal subseries plot: antidiabetic drug sales")
这样可以看到每个月基本的均值。具体的应用需要见仁见智,我们可以看到的是1月份很高,后面就开始急剧降低,然后又慢慢升高,据说是因为医疗保险政策所致。
参考链接:
原文作者:;如有侵权,请联系管理员删除。