使用R进行时间序列分解

非季节性数据的时间序列分解

数据

http://robjhyndman.com/tsdldata/misc/kings.dat

分析

非季节性的数据包含两个组成成分,分别为随机噪声和趋势。为了能使用加性模型(Additive Model)描述非季节性数据的趋势成分,我们使用平滑法(SMA)来计算一个时间序列的移动平均。在使用SMA计算时间序列的移动平均值时,需设定跨度n。

R代码

library("TTR")
kings <- scan("kings.dat", skip = 3)
kings.ts <- ts(kings)
kings.ts.sma3 <- SMA(kings.ts, n=3)
kings.ts.sma8 <- SMA(kings.ts, n=8)

svg("kings.ts.sma.svg", width = 8, pointsize = 12)
par(mfrow=c(3,1))
plot.ts(kings.ts)
plot.ts(kings.ts.sma3)
plot.ts(kings.ts.sma8)
graphics.off()

结果

从上之下分别是原时间序列,跨度为3的平滑后的时间序列,以及跨度为8的平滑后的时间序列。从跨度为8的时间序列中可以看到其趋势是先下降后上升。

季节性时间序列分解

数据

http://robjhyndman.com/tsdldata/data/nybirths.dat

分析

季节性时间序列,正如其名,在非季节性时间序列的基础上增加了季节性成分,因此,分析一个季节性时间序列,需分解出他的季节性成分,趋势成分以及随机噪声成分。

R代码

##seasonal time series
births <- scan("nybirths.dat")
births.ts <- ts(births, frequency=12, start=c(1946,1))
births.ts.com <- decompose(births.ts)
png("births.ts.decompose.png")
plot(births.ts.com)
graphics.off()

结果

时间: 2024-12-15 06:53:44

使用R进行时间序列分解的相关文章

时间序列 R 07 时间序列分解 Time series decomposition

一个时间序列可以分解为多个模型的组合 1.1 时间序列的组成 1.1.1 时间序列组成模式 三种时间序列模式(不计剩余残差部分) 1. 趋势Tend :比如线性趋势,先增加后降低的整体趋势 2. 季节性Seasonal :以时间为固定周期,呈现循环的特性 3. 周期性Cyclic:在以不固定周期不断震荡,通常周期性至少持续2年 下图就是讲时间序列分解之后的结果,应该比较容易理解上面的定义 下图是周期性的表现之一: 每个周期的震荡持续了6-10年,整体没有什么明显的趋势,第一幅图中trend包含了

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

上篇说明了分解非季节性数据的方法.就是通过TTS包的SMA()函数进行简单移动平均平滑.让看似没有规律或没有趋势的曲线变的有规律或趋势.然后再进行时间序列曲线的回归预测. 本次,开始分解季节性时间序列. 一个季节性时间序列中会包含三部分,趋势部分.季节性部分和无规则部分.分解时间序列就是要把时间序列分解成这三部分,然后进行估计. 对于可以使用相加模型进行描述的时间序列中的趋势部分和季节性部分,我们可以使用 R中的“decompose()” 函数来估计.这个函数可以估计出时间序列中趋势的.季节性的

将R非时间序列的data.frame转变为时序格式

将R非时间序列的data.frame转变为时序格式,常常会用到,尤其是股票数据处理中, 举例:dailyData包括两列数据:Date Close10/11/2013 871.9910/10/2013 868.2410/9/2013 855.8610/8/2013 853.6710/7/2013 865.7410/4/2013 872.3510/3/2013 876.0910/2/2013 887.9910/1/2013 8879/30/2013 875.919/27/2013 876.399/

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

分解时间序列,就是将一个时间序列拆分成不同的构成元件.一般序列(非季节性序列)包含一个趋势部分和一个不规则部分(也就是随机部分),而如果是一个季节性序列,除以上两个外,还有季节性部分. 在此,我们先讲——非季节性数据的分解. 一个非季节性时间序列包含一个趋势部分和一个不规则部分. 分解时间序列即为试图把时间序列拆分成这些成分,也就是说, 需要估计趋势的和不规则的这两个部分. 为了估计出一个非季节性时间序列的趋势部分, 使之能够用相加模型进行描述, 最常用的方法便是平滑法, 比如计算时间序列的简单

用R分析时间序列(time series)数据

时间序列(time series)是一系列有序的数据.通常是等时间间隔的采样数据.如果不是等间隔,则一般会标注每个数据点的时间刻度. time series data mining 主要包括decompose(分析数据的各个成分,例如趋势,周期性),prediction(预测未来的值),classification(对有序数据序列的feature提取与分类),clustering(相似数列聚类)等. 这篇文章主要讨论prediction(forecast,预测)问题. 即已知历史的数据,如何准确

R语言时间序列数据应用xts

zoo是时间序列的基础库,是面向通用的设计. xts 是对时间序列库(zoo) 的一种扩展实现.xts 类型继承了zoo 类型,丰富了时间序列数据处理的函数. 一.xts对象的结构和定义 1.xts对象是一个具有时间索引的观测值矩阵,结构如下: xts = matrix + times 2.创建xts对象,函数如下: xts (x= ,  order.by= ,  -  ) 参数   x : 数据,必须是一个向量或者矩阵: order.by: 索引(index),是一个与x行数相同的升序排列的时

R语言时间序列应用(decompose、Holt-Winters初步)

对于明显的周期性时间序列,可以使用decompose函数对数据进行分解成季节部分.趋势部分.随机部分三种.decompose函数有两种type,即"additive"以及"multiplicative"两种,还有一个fliter选项,表示是否加入线性滤波,一般fliter选择NULL即可.下面的例子展现了使用decompose分析含有季节因素时间序列数据的例子 将某地区1962-1970年平均每头奶牛的月度产奶量数据导入outcome内.对于时间序列数据,常常还要使

R语言-时间序列

时间序列:可以用来预测未来的参数, 1.生成时间序列对象 1 sales <- c(18, 33, 41, 7, 34, 35, 24, 25, 24, 21, 25, 20, 2 22, 31, 40, 29, 25, 21, 22, 54, 31, 25, 26, 35) 3 # 1.生成时序对象 4 tsales <- ts(sales,start = c(2003,1),frequency = 12) 5 plot(tsales) 6 # 2.获得对象信息 7 start(tsales

R语言时间序列中的时间设置

时间序列的不同时间分段设置 1. 普通的时间序列:年.月.季 1 myserises<-ts(data,start=,end=,frequency=)#其中frequency=1代表年:frequency=12代表月:frequency=4代表季度数据 2. 如果以天为单位的时间序列 1 t<-ts(1:365,frequency=1,start=as.Date("2017-05-01")) 2 s<-as.Date("2017-05-01") 3