R语言入门(1)时间序列分析

时间序列分析


使用软件为Rstudio,参考CRAN中时间序列分析分析函数和package,拿手上的数据练习一下时间序列分析。

1、原始数据说明

选择连续9天的数据,共2025条,时间间隔为5分钟。具体情况如下:
原始数据

2、平稳性检验

所谓平稳,是指因变量围绕着一个常数上下波动。更学术一点,就是是说统计特性(mean,variance,correlation等)不会随着时间窗口的不同而变化。

2.1 时间序列可视化

因为一些高阶函数可能不能准确地产生我想要的图,所以我这里用的是低阶图形命令手动设置label。首先把plot()函数里的默认坐标轴关掉:xaxt='n',然后通过axis()函数手动添加坐标轴。代码如下:

plot(indata,type = "s",xaxt='n',xlab = "time")
axis(1,c(1,226,451,676,901,1126,1351,1576,1801),c('5:00','5:00','5:00','5:00','5:00','5:00','5:00)

生成图形如下:
时间序列图
由上图可知:
1. 该时间序列存在很强的周期性
2. 该时间序列是平稳的。
还可以用xts函数把原始数据转换成时间序列,也就是把给每个数据对应上一个时间点,代码如下

data_1<-xts(indata_1,seq(ISOdate(0, 0, 0, 5, 0, 0),ISOdate(0, 0, 0, 23, 40, 0),by="5 mins"))
plot(data_1)

一天的时间序列
进一步绘制每一天的箱型图,代码如下:

library(ggplot2)
ggplot(data,aes(x=factor(STATDATE),y=INDATA)) + geom_boxplot()

箱型图
由上图可知:

  1. 周末的异常点较少,平日的异常点较多,说明平日存在高峰情况。

2.2 自相关和偏自相关图

此外,还可以通过自相关和偏自相关图来判断时间序列是否平稳。平稳的序列的自相关图和偏相关图不是拖尾就是截尾。截尾是指在某阶之后,系数都为 0;拖尾是指有一个衰减的趋势,但是不都为0。

ACF形状 模型
不衰减到0 不平稳
固定点上有大于0的值(周期性) 周期性
所有点都是0 完全随机(白噪声)
指数衰减到0(拖尾) AR(p)
正负交替衰减到0(拖尾) AR(p)
前几个大于0,后面都为0(截尾) MA(q)

绘制采用R中acf(indata)函数(默认滞后30阶)的自相关图和偏自相关图如下:
自相关图

偏自相关图
由上图可知:

  1. 自相关图逐渐衰减到0,存在拖尾性,偏自相关图在5阶后都为0,存在截尾性。说明该时间序列在短期内(30阶)是平稳时间序列。

考虑到滞后阶数为30,而该原始数据的周期性可能要到225阶以后才能体现出来。设置自相关图的滞后阶数为500,代码如下:

acf(indata,lag=500)
pacf(indata,lag=500)

自相关图
偏自相关图

2.3 ADF单位根平稳型检验

单位根检验是指检验序列中是否存在单位根,因为存在单位根就是非平稳时间序列了。[百度百科]
此处使用tseries包中的adf.test()函数对9天数据进行单位根平稳性检验,结果如下:

> adf.test(indata)

    Augmented Dickey-Fuller Test

data:  indata
Dickey-Fuller = -7.1486, Lag order = 12, p-value = 0.01
alternative hypothesis: stationary

aternative hypothesis称为备择假设,与原假设相对。这里备择假设是该时间序列平稳。因为p值小于0.05,拒绝原假设,接受备择假设,所以说明该时间序列是平稳的。
有意思的是,我单独拿一天的数据出来做单位根检验,可以发现该时间序列并不平稳。

> adf.test(indata_1)

    Augmented Dickey-Fuller Test

data:  indata_1
Dickey-Fuller = -1.0092, Lag order = 6, p-value = 0.9351
alternative hypothesis: stationary

3、时间序列模型选择

3.1 常用的时间序列模型

下面简单介绍下常用的时间序列模型:

  1. 移动平均(MA, moving average)
    MA(1):
    Yt=α0+α1ut1+ut

    MA(q):
  • 18
    点赞
  • 182
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值