使用R进行时间序列分解

来源:互联网 发布:ubuntu yum 编辑:程序博客网 时间:2024/06/04 17:40

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

数据

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 seriesbirths <- 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()

结果

0 0
原创粉丝点击