文档详情

R语言在时间序列分析中的应用4.19.pdf

发布:2017-09-20约5.16万字共13页下载文档
文本预览下载声明
R 语言在时间序列分析中的应用 MiltonDeng from XMU R 语言在时间序列中的应用 2013.04.19 未完成 written by MiltonDeng, from department of Statistics, XMU 一、数据的读入与时间序列化 时间序列数据是R 语言中一种特定形式的数据类型。R 语言中有许多专门针对时间序列 数据编制的函数。但在运用这些函数前,首先需要对序列进行时间序列化,即运用将一组数 据转化为时间序列数据这种数据形式。 ts(data = NA, start = 1, end = numeric(), frequency = 1 ) - data : 要进行时间序列化的向量。如果是矩阵,会按列分别处理。 - start : 起始时点。 - end : 结束时点。 - frequency : 频度。取12 时自动识别为月,4 时自动识别为季度。 首先,应该注意,与多元统计等统计分析不同,单变量时间序列根本上是一个向量,而 不是一个矩阵,或者一个表。因此,在读入时间序列数据时,常常会有一些不必要的麻烦。 由于数据整理时,数据编排往往不一致,所以应该注意以何种方式读入时间序列数据。 以txt 文件为例,假设这组时间序列为“5,4,2,3,6,1 ”,在文件中以如下方式出现 (人大 出版社,王燕老师的《应用时间序列分析》中的数据均以这种形式出现): 5 4 2 3 6 1 如果以 read.table() 读入,读入的是一个2*3 的矩阵,如果直接以 ts() 时间序列化, R 会认为这是3 列数据,将对它们分别生成3 组时间序列数据。下面提供两种方法: (1)以scan()直接读入为向量。 (2 )以read.table()读入这个矩阵为D,然后 D=t(D) # 因为是以行录入,所以要先转置 D=as.vector(D) #将矩阵线性化为向量D 二、描述时间序列 对于单组时间序列: (1)ts.plot(D) #可以直接对未ts 的向量绘图 (2 )ts(D); plot(D) 如果D 是一个矩阵或frame ,可以对多个序列画在同一张图里。 三、自相关与偏自相关 自相关系数可以通过acf() 实现: acf( x, lag.max=NULL, type=c(correlation, covariance, partial), plot=TRUE ) R 语言在时间序列分析中的应用 MiltonDeng from XMU - x :时间序列数据列。 - lag.max :所计算的最大滞后阶数。 - type :分别为“自相关系数”、“自协方差”、“偏自相关系数” - plot :是否要绘出acf 的图形。 偏自相关可以通过 pacf() 实现,原理相似。也可以 acf() 中type=”partial”。 不过注意 acf 是从0 开始的,pacf 是从1 阶开始的。 四、平稳性检验 (1)时序图检验 平稳时间序列均值、方差为常数,因此可以直接用 plot() 检查时序图,平稳时间序列 应始终在一个常数值附近随机波动,而且波动范围有界。 (2 )自相关图检验 平稳序列通常有短期相关性。因此自相关系数会很快地衰减向零。 (3 )单位根检验 后面再讲。 下面我们观察几种特定时间序列的时序图与自相关图。 (1)确定趋势时间序列: 首先我们尝试生成一个带有随机扰动的线性趋势序列: X=seq(0.1,5,0.02) Y=2+0.8*X D=jitter(Y,am
显示全部
相似文档