时间序列1代码记录

时间序列数据的输入
少量数据:使用函数ts

ts(1:10, frequency = 4,start = c(1959, 2)) 
a<-ts(1:10, frequency = 4, start = c(1959, 2))
plot(a)

大量数据:通过txt格式或者csv格式将外部数据文件读入R

file.choose(),弹出对话框,可以让我们选择文件的位置。

方法一:

read.table(“sha.txt”,header=T)

注意:在“read.table”指令中,header默认为FALSE,也即认为第一行就是数据;所以如果第一行不是数据而是标题,要改写为header=T/TURE;
方法二:

read.csv((“sha.csv”,header=T)

注意:和“read.table”指令不同,在“read.csv”指令中默认header = TRUE,也就是第一行是标签,不是数据。

一旦你将时间序列数据读入到R,下一步就是将数据存储到R中的一个时间序列对象里,以便你能使用R的很多函数分析时间序列数据。在R中我们使用ts()函数将数据存储到一个时间序列对象中去。

Scan指令:一次只能读一个时间序列,按行读取,且只能读取数据不能读取字符,只适用与txt文档;
如要读sha.txt

scan("c:/users/w/documents/sha.txt",skip=1)

#首先告诉R文件路径,其次由于该文件第一行为标题行,无法读取,所以运用“skip=1”过滤掉第一行。

1.绘制一组数据的时序图
例题: 绘制1964—1999年中国纱产量序列时序图。

file.choose()   

R运行结果:

"C:\\Users\\Administrator\\Desktop\\sha.txt"    #首先找到所要分析的文件路径
d=read.table("C:\\Users\\Administrator\\Desktop\\sha.txt ",header=T)
d=ts(d,freq=1,start=1964,end=1999)  #通过ts()函数将“年份”数据和“纱”数据存储为时间序列。

ts()函数的基本格式:ts(data,freq,start,end), 其中,data是向量或矩阵名字,本例中指定文件d中的两列数据“年份”数据和“纱”;freq选型指定序列每年读入的数据频率,如果是年度数据则freq=1; 半年度数据则freq=2; 季度数据则freq=4; 月度数据则freq=12; 周度数据则freq=52; 日度数据则freq=365;start选型指定序列的起始读入时间;end选项指定序列的结束读入时间。

plot(d)

时间序列1代码记录_第1张图片
注意:结果发现出现两个时序图!如果该文件中有两列数据分别为年份和各年份纱产量,则画图时会对这两列数据分别画图。因此要剔除掉年份数据或者在文件中不输年份数据。如要剔除,则d[,2]指令或者d[,-1]指令只选择第二列数据或剔除第一列数据,保留纱产量数据。
所以正确的处理方式:

file.choose()   

R运行结果:

"C:\\Users\\Administrator\\Desktop\\sha.txt"    #首先找到所要分析的文件路径
d=read.table("C:\\Users\\Administrator\\Desktop\\sha.txt ",header=T)
d=d[,2]    #或采用d[,-1]指令只选择纱产量这一列数据。
sha=ts(d,start=1964,freq=1)
plot.ts(sha)   #绘制时序图。得到纱产量的时序图。

时间序列1代码记录_第2张图片
由该时序图看出,序列具有连续向上的趋势,所以不是平稳时间序列。

  1. 绘制自相关图、偏自相关图
    例题2.1 续:
d=read.table("C:\\Users\\Administrator\\Desktop\\sha1.txt",header=T)
sha=ts(d,start=1964,freq=1)
plot.ts(sha)   #绘制时序图
acf(sha,lag=22)   #或acf(sha,22),绘制自相关图,滞后期数22。

R中使用acf函数绘制自行关图,该函数的命令格式为:acf(x,lag=),式中:x:序列名;lag:延迟阶数,若用户不特殊指定,系统会根据序列长度自动指定延迟阶数。
由该自相关图看出,一直到第22期,自相关系数依然显著非0,不满足平稳时间序列的短期相关特性。所以,由自相关图判断,纱产量序列不是平稳时间序列。

acf(sha,plot=FALSE)[5]  #计算出延迟5阶的自相关系数,R的计算结果为0.609。
pacf(sha,22)  #绘制偏自相关图,滞后期数22。
pacf(sha,plot=FALSE)[5]  #计算出延迟5阶的偏自相关系数,R的计算结果为-0.129。

纱产量序列的相关图
时间序列1代码记录_第3张图片

纱产量序列的偏自相关函数图

时间序列1代码记录_第4张图片
3.产生服从正态分布的随机观察值
例题2.4 随机产生1000白噪声序列观察值

d=rnorm(1000,0,1)   #个数1000 ,来自均值0, 方差1的标准正态分布
d=ts(d)
plot(d)

时间序列1代码记录_第5张图片

4.纯随机性检验
例题2.4续

Box.test(d, type=“Ljung-Box”,lag=6)
R的计算结果为:
Box-Ljung test

data: d
X-squared = 4.8867, df = 6, p-value = 0.5584
滞后6期的纯随机性检验的结果表明,QLB检验统计量的值为4.8867,对应的P值为0.5584大于0.05,不拒绝原假设,所以为白噪声序列。

Box.test(d, type=“Ljung-Box”,lag=12) #进一步的,对该序列滞后12期的相关性进行判断。
R的结果:
Box-Ljung test

data: d
X-squared = 6.4421, df = 12, p-value = 0.8922
滞后12期的纯随机性检验的结果表明,QLB检验统计量的值为6.4421,对应的P值为0.8922大于0.05,不拒绝原假设,所以为白噪声序列。综合6期和12期的检验结果,表明该序列为白噪声序列。

你可能感兴趣的:(R)