• R学习日记——分解时间序列(季节性数据)


    上篇说明了分解非季节性数据的方法。就是通过TTS包的SMA()函数进行简单移动平均平滑。让看似没有规律或没有趋势的曲线变的有规律或趋势。然后再进行时间序列曲线的回归预测。

    本次,开始分解季节性时间序列。
     
    一个季节性时间序列中会包含三部分,趋势部分、季节性部分和无规则部分。分解时间序列就是要把时间序列分解成这三部分,然后进行估计。
     
    对于可以使用相加模型进行描述的时间序列中的趋势部分和季节性部分,我们可以使用 R中的“decompose()” 函数来估计。这个函数可以估计出时间序列中趋势的、季节性的和不规则的部分,而此时间序列须是可以用相加模型描述的。  

    “decompose()” 这个函数返回的结果是一个列表对象, 里面包含了估计出的季节性部分, 趋势部分和不规则部分, 他们分别对应的列表对象元素名为“seasonal” 、 “trend” 、 和“random” 。 

    示例:纽约每月出生人口数量是在夏季有峰值、 冬季有低谷的时间序列。
     
    > births <- scan("http://robjhyndman.com/tsdldata/data/nybirths.dat") 
    Read 168 items
    > birthstimeseries <- ts(births, frequency=12, start=c(1946,1)) 
    > ts.plot(birthstimeseries)

    > birthcomponents <- decompose(birthstimeseries)
    > plot(birthcomponents)
    而当你需要剔除某个趋势时(我们就去掉季节因素),我们可以运用减法去掉该因素,下图就是去掉季节性因素后的修正序列。
    > birthstimeseriesseasonallyadjusted<-birthstimeseries-birthcomponents$seasonal
    > plot(birthstimeseriesseasonallyadjusted)
    留下记录,供日后复习应用。
    一只混迹在规划圈的giser,喜欢数据分析和模型
  • 相关阅读:
    spring security几大核心组件
    什么是CSRF攻击?如何避免?
    MyBatis+Oracle实现主键自增长的几种常用方式
    fastjson在将Map<Integer, String>转换成JSON字符串时,出现中文乱码问题
    Layui我提交表单时,table.reload(),表格会请求2次,是为什么?
    Jquery+ajax模板
    HttpServletRequest和ServletRequest的区别
    java技术基础
    mysql数据库基础
    linux基础03
  • 原文地址:https://www.cnblogs.com/giserliu/p/4354651.html
Copyright © 2020-2023  润新知