R语言进行简单的时间序列分析
Posted 临床科研与meta分析
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言进行简单的时间序列分析相关的知识,希望对你有一定的参考价值。
经典的统计分析都假定数据序列具有独立性,而时间序列分析则侧重研究数据序列的互相依赖关系。后者实际上是对离散指标的随机过程的统计分析,所以又可看作是随机过程统计的一个组成部分。
今天我们就使用R语言自带的co2数据集进行简单的时间序列分析演示。
> View(co2)
> class(co2)
[1] "ts" ##说明为时间序列格式
> plot(co2)
> de_data<-decompose(co2)##进行数据分解,包括三项,分别为趋势项,季节项以及随机项
> plot(de_data)
建立模型之前,需要进行平稳性检验
> library(forecast)
> library(tseries)
> adf.test(co2)
Augmented Dickey-Fuller
Test data: co2 Dickey-Fuller = -2.8299, Lag order = 7, p-value = 0.2269 alternative hypothesis: stationary ##可以看到P值是0.23,说明数据时稳定的。如果不稳定则需要进行差分。
ARIMA模型:
ARIMA:自回归积分滑动平均模型(Autoregressive Integrated Moving Average Model,简记ARIMA)
ARIMA(P,D,Q)
P:代表自相关的阶数;自相关是前后之前的关联。
D:代表差分的阶数;差分就是上一节课讲到的diff()函数。一阶差分就是diff()一次,二阶差分就是对一阶差分的结果再做一次差分。
Q:代表滑动平均的阶数。
> acf(co2)
> pacf(co2)
> fit<-arima(co2,order = c(1,1,1),seasonal = list(order=c(1,1,1),period=12)) ##构建模型
> co2fit<-forecast(fit,50)##进行未来50进行预测
> plot(co2,col="red")
> par(new=t)
> plot(co2fit)
以上是关于R语言进行简单的时间序列分析的主要内容,如果未能解决你的问题,请参考以下文章
R语言时间序列(time series)分析实战:简单指数平滑法预测