当前位置:文档之家› 新版时间序列习题(含答案)-新版.pdf

新版时间序列习题(含答案)-新版.pdf

新版时间序列习题(含答案)-新版.pdf
新版时间序列习题(含答案)-新版.pdf

时间序列分解Decompose

时间序列分解算法和d ecompose函数实现 李思亮 55531469@https://www.doczj.com/doc/9e15562243.html, 目录 时间序列分解算法和decompose函数实现 (1) 1 数据读入并生成时间序列 (2) 2 数据可视化 (4) 3 时间序列分解 (7)

在时间序列分析的过程中,往往需要对时间序列作出初步分析,本文主要采用R语言作为分析平台,从数据的读入,可视化图,分解(decompose)为趋势项,季节项,随机波动等角度对数据开展分析的几个案例。最后对分解算法作出初步描述并探讨其预测预报中的潜在应用。本文的数据和部分内容主要采用https://www.doczj.com/doc/9e15562243.html,/en/latest/中的内容,感兴趣的读者可以参考。 1 数据读入并生成时间序列 对于数据分析来讲,数据读入是一个比较关键的步骤。常用的数据读入函数有scan,read.table 等。下面列举了几种常见的数据。 首先是https://www.doczj.com/doc/9e15562243.html,/tsdldata/misc/kings.dat,中包含了英国国王的寿命从William开始,数据来源(Hipel and Mcleod, 1994)。 > kings <- scan("https://www.doczj.com/doc/9e15562243.html,/tsdldata/misc/kings.dat",skip=3) Read 42 items > kings [1] 60 43 67 50 56 42 50 65 68 43 65 34 47 34 49 41 13 35 53 56 16 43 69 59 48 59 86 55 68 51 33 49 67 77 81 67 71 81 68 70 77 56 上述例子中,读入了连续42个公国国王的寿命并将其赋给变量‘kings’ 如果我们希望对读入数据开展分析,下一步就是将其转化为时间序列对象(时间序列类),R提供了很多函数用于分析时间序列类数据。可以使用ts函数将变量转化为时间序列类。 > kingsts <- ts(kings) > kingsts Time Series: Start = 1 End = 42 Frequency = 1 [1] 60 43 67 50 56 42 50 65 68 43 65 34 47 34 49 41 13 35 53 56 16 43 69 59 48 59 86 55 68 51 33 49 67 77 81 67 71 81 68 70 77 56 对于上述数据操作的好处是将数据转化为特定的“时间序列类”便于我们使用R中的函数分析数据。 有时候我们会按照一定的时间周期来收集数据,这个周期可能是季度,月,日,小时,分。在大数据时代,有些情况下的数据是按照秒来采集收集。这种情况下,我们需要对数据的周期或频率进行设置。这里采用ts函数中的frequency参数可以实现这种功能。比方说,若按1年为一个周期,我们的月度时间

时间序列分解法

什么是时间序列分解法 时间序列分解法是数年来一直非常有用的方法,这种方法包括谱分析、时间序列分析和傅立叶级数分析等。 时间序列分解模型 时间序列y可以表示为以上四个因素的函数,即: Y t = f(T t,S t,C t,I t) 时间序列分解的方法有很多,较常用的模型有加法模型和乘法模型。 加法模型为:Y t = T t + S t + C t + I t 乘法模型为: 时间序列的分解方法 (1)运用移动平均法剔除长期趋势和周期变化,得到序列TC。然后再用按月(季)平均法求出季节指数S。 (2)做散点图,选择适合的曲线模型拟合序列的长期趋势,得到长期趋势T。 (3)计算周期因素C。用序列TC除以T即可得到周期变动因素C。 (4)将时间序列的T、S、C分解出来后,剩余的即为不规则变动,即:

时间序列的模式 时间序列一般包括四类因素,长期趋势因素、季节变动因素、循环变动因素和不规则变动因素。四种因素的组合形式一般有以下几类, 其中记Xt为时间序列的全变动;Tt为长期趋势;St为季节变动;Ct为循环变动;It为不规则变动,它总是存在着的。 1)乘法模式,其中, a) X t与T t有相同的量纲,S t为季节指数,C t为循环指数,两者皆为比例数; b) c) I t是独立随机变量序列,服从正态分布。 2)加法模式X t = T t + S t + C t + I t 这种形式要求满足条件: a) X t,T t,S t,C t,I t均有相同的量纲; b) ,k为季节性周期长度; c) I t是独立随机变量序列,服从正态分布。 3) 混合模式

a) X t与T t,C t,I t有相同的量纲,St是季节指数,为比例数; b) c) I t是独立随机变量序列,服从正态分布。 时间序列分解法试图从时间序列中区分出这四种潜在的因素,特别是长期趋势因素(T)、季节变动因素(S)和循环变动因素(C)。显然,并非每一个预测对象中都存在着T、S、C这三种趋势,可能是其中的一种或两种。一个具体的时间序列究竟由哪几类变动组合,采取哪种组合形式,应根据所掌握的资料、时间序列及研究目的来确定。 时间序列分解法各因素的确定 分解法的基础是容易理解而且直观的。不过最重要的是它为预测和检验提供了独特和非常有用的资料。我们用一个例题来说明各个因素分解的步骤。 设有某产品十二年(91年-02年)的季度销售额数据。见表4.3中的第二列,共有48个数据。如果将这些数据画在图上(图.1),可以看出有明显的长期趋势和季节变动。利用分解法,假设这48个数据可表示为 。这里X t是这些原始数据,通过分析原始数据X来确定T、C、S(剩下的为I)。

时间序列分解结果

在随机时间序列分析中,为简便起见,我们假定时间序列主要由趋势项(T)、季节项 (S)和随机项(R)构成。 # 读入数据,画曲线图 > sales <- read.csv(file = "sales.csv",header = TRUE) > head(sales) > plot(sales$t,sales$Y,type = "l") 观察这幅图形,可以看出有明显的长期趋势和季节变动。 利用分解法,假设这48个数据可表示为:,Yt代表实际销售额

度。 长期趋势的分解 用时间回归法,在同一图中画出趋势项目、季节项和随机项的数据图,如下: decompose()函数主要用来做季节指数分解,figure项即指季节指数。同时也返回原始数据,以及MA算法的结果;trend趋势项使用光滑移动平均法求得,它包含了长期趋势T 和周期变动因素C,之前用回归法求得长期趋势T,利用此函数的返回值Trend即可求得周期变动因素C;Random即为不规则变动。 此函数的基本结构: Additive: xt = Trend + Seasonal + Random Multiplicative: xt = Trend * Seasonal * Random > sales1 <- ts(sales[,2],start = 1,frequency = 4) # 季节变动趋势分解 > m <- decompose(sales1,type = "multiplicative") > plot(m) > m$x Qtr1 Qtr2 Qtr3 Qtr4 2003 3017.60 3043.54 2094.35 2809.84 2004 3274.80 3163.28 2114.31 3024.57 2005 3327.48 3493.48 2439.93 3490.79 2006 3685.08 3661.23 2378.43 3459.55 2007 3849.63 3701.18 2642.38 3585.52 2008 4078.66 3907.06 2828.46 4089.50 2009 4339.61 4148.60 2916.45 4084.64 2010 4242.42 3997.58 2881.01 4036.23 2011 4360.33 4360.53 3172.18 4223.76 2012 4690.48 4694.48 3342.35 4577.63 2013 4965.46 5026.05 3470.14 4525.94 2014 5258.71 5189.58 3596.76 3881.60

相关主题
文本预览
相关文档 最新文档