ITPub博客

首页 > > > R语言时间序列分析(三):趋势性、季节性、周期性

R语言时间序列分析(三):趋势性、季节性、周期性

作者:浪花小雨滴 时间:2019-10-17 16:46:52 0 删除 编辑

作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(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月份很高,后面就开始急剧降低,然后又慢慢升高,据说是因为医疗保险政策所致。

参考链接:

Forecasting: Principles and Practice

原文作者:;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39825