R語言時間序列和ARIMA模型預(yù)測拖拉機銷售的制造案例研究
完整原文鏈接:http://tecdat.cn/?p=5421

本文是我們通過時間序列和ARIMA模型預(yù)測拖拉機銷售的制造案例研究示例的延續(xù)。您可以在以下鏈接中找到以前的部分:
第1部分?:時間序列建模和預(yù)測簡介
第2部分:在預(yù)測之前將時間序列分解為解密模式和趨勢
第3部分:ARIMA預(yù)測模型簡介
?
ARIMA模型 - 制造案例研究示例
回到我們的制造案例研究示例,準(zhǔn)備好開始分析,以預(yù)測未來3年的拖拉機銷售情況。
步驟1:將拖拉機銷售數(shù)據(jù)繪制為時間序列
首先,您已為數(shù)據(jù)準(zhǔn)備了時間序列圖。以下是您用于讀取R中的數(shù)據(jù)并繪制時間序列圖表的R代碼。
data = ts(data[,2],start = c(2003,1),frequency = 12)
plot(data, xlab='Years', ylab = 'Tractor Sales')
顯然,上面的圖表有拖拉機銷售的上升趨勢,還有一個季節(jié)性。
第2步:差分?jǐn)?shù)據(jù)使數(shù)據(jù)在平均值上保持不變(刪除趨勢)
?
用于繪制差異系列的R代碼和輸出顯示如下:
?
plot(diff(data),ylab='Differenced Tractor Sales')
好的,所以上面的系列在方差上不是固定的,即隨著我們向圖表右側(cè)移動,圖中的變化也在增加。我們需要使系列在方差上保持穩(wěn)定,以通過ARIMA模型產(chǎn)生可靠的預(yù)測。

步驟3:記錄變換數(shù)據(jù)以使數(shù)據(jù)在方差上保持不變
使系列在方差上保持靜止的最佳方法之一是通過對數(shù)變換轉(zhuǎn)換原始系列。
以下是與輸出圖相同的R代碼。請注意,由于我們在沒有差分的情況下使用原始數(shù)據(jù),因此該系列不是平均值。
?
plot(log10(data),ylab='Log (Tractor Sales)')
現(xiàn)在方差上看起來很穩(wěn)定。

步驟4: 差分對數(shù)變換數(shù)據(jù)使得數(shù)據(jù)在均值和方差上都是固定的
讓我們看一下對數(shù)變換序列的差分圖 。
?
plot(diff(log10(data)),ylab='Differenced Log (Tractor Sales)')
是的,現(xiàn)在這個系列在均值和方差上看起來都很穩(wěn)定。?

步驟5: 繪制ACF和PACF以識別潛在的AR和MA模型
現(xiàn)在,讓我們創(chuàng)建自相關(guān)因子(ACF)和部分自相關(guān)因子(PACF)圖來識別上述數(shù)據(jù)中的模式,這些模式在均值和方差上都是固定的。該想法是識別殘差中AR和MA組分的存在。以下是生成ACF和PACF圖的R代碼。

因為,在無效區(qū)域(虛線水平線)之外的圖中有足夠的尖峰,我們可以得出結(jié)論,殘差不是隨機的。這意味著AR和MA模型可以提取殘差中的果汁或信息。此外,在滯后12處的殘差中存在可用的季節(jié)性分量(由滯后12處的尖峰表示)。這是有道理的,因為我們正在分析由于拖拉機銷售模式而往往具有12個月季節(jié)性的月度數(shù)據(jù)。
步驟6: 確定最佳擬合ARIMA模型
R中的預(yù)測包中的自動動態(tài)功能有助于我們即時識別最適合的ARIMA模型。以下是相同的代碼。請在執(zhí)行此代碼之前在R中安裝所需的“預(yù)測”包。
ARIMAfit = auto.arima(log10(data), approximation=FALSE,trace=FALSE)
summary(ARIMAfit)
時間序列:log 10(拖拉機銷售)最佳版型:ARIMA(0,1,1)(0,1,1)[12] MA1SMA1系數(shù):-0.4047-0.5529SE0.08850.0734對數(shù)似然= 354.4AIC = -702.79AICC = -702.6BIC = -694.17
基于Akaike信息準(zhǔn)則(AIC)和貝葉斯信息準(zhǔn)則(BIC)值選擇最佳擬合模型。我們的想法是選擇具有最小AIC和BIC值的模型。我們將在下一篇文章中探討有關(guān)AIC和BIC的更多信息。在R中開發(fā)的最佳擬合模型的AIC和BIC值顯示在以下結(jié)果的底部:
正如預(yù)期的那樣,我們的模型具有等于1的I(或積分)分量。這表示階數(shù)1的差分。在上述最佳擬合模型中存在滯后12的附加差分。此外,最佳擬合模型具有1階的MA值。此外,存在具有階數(shù)1的滯后12的季節(jié)性MA。
第6步:使用最合適的 ARIMA模型預(yù)測銷售情況
下一步是通過上述模型預(yù)測未來3年(即2015年,2016年和2017年)的拖拉機銷量。以下R代碼為我們完成了這項工作。
par(mfrow = c(1,1))
lines(10^(pred$pred-2*pred$se),col='orange')
以下是拖拉機銷售預(yù)測值為藍色的輸出。此外,預(yù)測誤差的范圍(即標(biāo)準(zhǔn)偏差的2倍)在預(yù)測藍線的兩側(cè)顯示橙色線。
?
?

現(xiàn)在,長達3年的預(yù)測是一項雄心勃勃的任務(wù)。這里的主要假設(shè)是時間序列中的下劃線模式將繼續(xù)保持與模型中預(yù)測的相同。短期預(yù)測模型,比如幾個營業(yè)季度或一年,通常是一個合理準(zhǔn)確的預(yù)測。像上述那樣的長期模型需要定期評估(比如6個月)。我們的想法是將可用的新信息與模型中的時間推移相結(jié)合。
步驟7:為ACIM和PACF繪制ARIMA模型的殘差?
最后,讓我們創(chuàng)建一個ACF和PACF的最佳擬合ARIMA模型殘差的圖,即ARIMA(0,1,1)(0,1,1)[12]。以下是相同的R代碼。
pacf(ts(ARIMAfit$residuals),main='PACF Residual')

由于ACF和PACF圖的無效區(qū)域之外沒有尖峰,我們可以得出結(jié)論,殘差是隨機的。
?
?

最受歡迎的見解?
1.在python中使用lstm和pytorch進行時間序列預(yù)測
2.python中利用長短期記憶模型lstm進行時間序列預(yù)測分析
3.使用r語言進行時間序列(arima,指數(shù)平滑)分析
4.r語言多元copula-garch-模型時間序列預(yù)測
5.r語言copulas和金融時間序列案例
6.使用r語言隨機波動模型sv處理時間序列中的隨機波動
7.r語言時間序列tar閾值自回歸模型
8.r語言k-shape時間序列聚類方法對股票價格時間序列聚類
9.python3用arima模型進行時間序列預(yù)測