ARIMA(p,d,q)模型全稱為差分自回歸移動平均模型(Autoregressive Integrated Moving Average Model,簡記ARIMA),AR是自回歸, p為自回歸項; MA為移動平均,q為移動平均項數,d為時間序列成為平穩時所做的差分次數。
所謂ARIMA模型,是指將非平穩時間序列轉化為平穩時間序列,然后將因變量僅對它的滯后值以及隨機誤差項的現值和滯后值進行回歸所建立的模型。ARIMA模型根據原序列是否平穩以及回歸中所含部分的不同,包括移動平均過程(MA)、自回歸過程(AR)、自回歸移動平均過程(ARMA)以及ARIMA過程。
*什么時候要取對數:原序列的前后數值相差較大或者數量級相差較大時,一般取對數將指數趨勢轉化為線性趨勢,而且還不會改變變量之間的統計性質,同時得到較平穩的序列;可以消除異方差,
讓方差恆定,即讓波動相對穩定。
http://www.zhihu.com/question/22012482
以數據集robot為例
1.打開數據並轉換格式
data(robot)
x<-data.frame(robot)
ro<-ts(x)
2.模型擬合,參數估計
> air.fit <- arima(aplog,order=c(0,1,1), seasonal=list(order=c(0,1,1), period=12))
> m1=arima(x = ro, order = c(1, 0, 0)) > m2=arima(x = ro, order = c(0, 1, 1))
3.繪制自相關圖和偏自相關圖
> acf(ro,80) > pacf(ro,30)
4.導出R的數據
> write.table(robot,"robot.csv",sep=",")
5.繪制時間序列圖,一次差分時間序列圖,一次差分與季節差分時間序列圖
> plot.ts(ro)
> plot.ts(diff(aplog)
> aplog1<-diff(aplog,diff=1)
> aplog222<-diff(aplog1,lag = 12)
6.繪制標准殘差圖,繪制殘差自相關圖,殘差正態性檢驗
> plot(rstandard(m1),type="o")
> plot(rstandard(m2),type="o")
> acf(rstandard(m1)) > acf(rstandard(m2))
> shapiro.test(ro)
當p-value<0.05時,我們拒絕原假設,拒絕其符合正態分布
7.模型檢驗
#對估計進行診斷,判斷殘差是否為白噪聲
> tsdiag(data.fit)
隨機變量X(t)(t=1,2,3……),如果是由一個不相關的隨機變量的序列構成的,即對於所有S不等於T,隨機變量Xt和Xs的協方差為零,則稱其為純隨機過程。對於一個純隨機過程來說,若其期望和方差均為常數,則稱之為白噪聲過程。白噪聲過程的樣本實稱成為白噪聲序列,簡稱白噪聲。之所以稱為白噪聲,是因為他和白光的特性類似,白光的光譜在各個頻率上有相同的強度,白噪聲的譜密度在各個頻率上的值相同。
8.模型預測
> m4 <- arima(ro, order = c(1, 0, 1)) > airfore4<-forecast.Arima(m4,h=5,level=c(99.5))