R学习日记——分解时间序列(季节性数据)
2015-03-20 21:36
316 查看
上篇说明了分解非季节性数据的方法。就是通过TTS包的SMA()函数进行简单移动平均平滑。让看似没有规律或没有趋势的曲线变的有规律或趋势。然后再进行时间序列曲线的回归预测。
本次,开始分解季节性时间序列。
一个季节性时间序列中会包含三部分,趋势部分、季节性部分和无规则部分。分解时间序列就是要把时间序列分解成这三部分,然后进行估计。
对于可以使用相加模型进行描述的时间序列中的趋势部分和季节性部分,我们可以使用 R中的“decompose()” 函数来估计。这个函数可以估计出时间序列中趋势的、季节性的和不规则的部分,而此时间序列须是可以用相加模型描述的。
“decompose()” 这个函数返回的结果是一个列表对象, 里面包含了估计出的季节性部分, 趋势部分和不规则部分, 他们分别对应的列表对象元素名为“seasonal” 、 “trend” 、 和“random” 。
示例:纽约每月出生人口数量是在夏季有峰值、 冬季有低谷的时间序列。
而当你需要剔除某个趋势时(我们就去掉季节因素),我们可以运用减法去掉该因素,下图就是去掉季节性因素后的修正序列。
留下记录,供日后复习应用。
本次,开始分解季节性时间序列。
一个季节性时间序列中会包含三部分,趋势部分、季节性部分和无规则部分。分解时间序列就是要把时间序列分解成这三部分,然后进行估计。
对于可以使用相加模型进行描述的时间序列中的趋势部分和季节性部分,我们可以使用 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)
留下记录,供日后复习应用。
相关文章推荐
- R学习日记——分解时间序列(非季节性数据)
- 预测和分解时间序列数据(小时)Forecast and STL hourly time series data
- 时间序列数据分析
- 【原创】分布式大数据时间序列数据库设计概述
- 利用Python进行数据分析--时间序列
- R语言与数据分析之八:时间序列--霍尔特指数平滑法
- R语言与数据分析之七:时间序列简单指数平滑
- 傅里叶变换和小波变换处理时间序列数据,他们常常包含周期模式
- Twitter开源云环境时间序列数据断层检测工具BreakoutDetection
- 时间序列数据挖掘
- 了解向量、因子、矩阵、数组、列表和数据框、时间序列(R语言)
- 时间序列数据处理的角逐:MongoDB vs. Cassandra
- logistic regression的一些问题,不平衡数据,时间序列,求解惑
- 时间序列数据挖掘综述
- R并行做大数据时间序列分析与bootstrap
- DWT小波变换及其在时间序列数据预测中的应用
- R工具:连接数据库,查数据,画时间序列图,加点、文本
- 时间序列数据处理的角逐:MongoDB vs. Cassandra
- 时间序列数据挖掘综述
- 用R分析时间序列(time series)数据