time series analysis with r for arma

1、加载所需要的包

1
2
3
4
library(readxl)
library(forecast)
library(TSA)
library(lmtest)

2、读取excel文档中的数据

1
mydata=read_excel("文档位置",sheet = 1)

3、转换成时间序列

1
tsdata <- ts(mydata)

4、差分分析
方法一

1
2
3
4
diff1<-diff(tsdata)
plot(diff1,type="o")
diff2<-diff(tsdata2)
plot(diff2,type="o")

取对数

1
2
3
4
diff1<-diff(log(tsdata))
plot(diff1,type="o")
diff2<-diff(log(tsdata),2)
plot(diff2,type="o")

方法二

1
ndiffs(tsdata)

5、求p,q值
方法一

1
2
acf(tsdata)
pacf(tsdata)

方法二

1
eacf(tsdata)

6、可以直接求出p,d,q的值

1
2
auto.arima(tsdata)
sol <- stats::arima((tsdata,order=c(p,d,q))

7、预测50的值

1
2
3
forecast <- forecast.Arima(sol,h=50,level=c(99.5))
forecast
plot.forecast(forecast)

8、tsdiag检验

1
tsdiag(sol)