R语言时间序列分析
时间序列 | 白噪声序列 | 终止分析,无信息可提取 | |
非白噪声序列 | 平稳序列 | AR/MA/ARMA | |
非平稳序列 | ARIMA,实际应用中最常见 |
当拿到一个时间序列的时候,首先分析该时间序列的类型情况,不同类型的序列有不同的处理方式。本文包含以下几个部分:
1、时间序列数据准备 |
2、时间序列平稳性检验 |
3、拟合ARIMA模型 |
4、ARIMA模型的检验诊断 |
5、用ARIMA模型进行预测 |
一、时间序列数据准备
> stodata <- read.csv("Stk_Day.csv")
> head(stodata)
代码 时间 开盘价 最高价 最低价 收盘价 成交量.股. 成交额.元.
1 SH600000 1999-11-10 29.50 29.80 27.00 27.75 174085000 4859102208
2 SH600000 1999-11-11 27.58 28.38 27.53 27.71 29403400 821582016
3 SH600000 1999-11-12 27.86 28.30 27.77 28.05 15007900 421591008
4 SH600000 1999-11-15 28.20 28.25 27.70 27.75 11921000 332952000
5 SH600000 1999-11-16 27.88 27.97 26.48 26.55 23223100 628908032
6 SH600000 1999-11-17 26.50 27.18 26.37 27.18 10052500 268995008
> library(xts)
> x1 <- stodata[,3]
> x2 <- stodata[,7]
> dt <- as.Date(stodata[,2]) #dt必须是时间格式
> tsdata1 <- xts(x1,dt)
> tsdata2 <- xts(x2,dt) #建立时间序列类型
> par(mfrow=c(2,1)) #画图时两行一列的排列
> plot(tsdata1,col="black")
> plot(tsdata2,col="red")
二、时间序列平稳性检验
(1)时序图主观检验
平稳时间序列的均值和方差都为常数。根据这一性质,平稳序列的时序图显示该序列值始终在一个常数附近随机波动,而且波动的范围有界;如果有明显的趋势性或周期性那它通常不是平稳序列。观察tsdata1的时间序列图,明显有趋势性,所以这个时间序列不是平稳序列(一般非平稳序列经过一定的差分计算会呈现出一定的平稳性)。
(2)绘制自相关函数图检验