拓端tecdat|R語(yǔ)言用ARIMA模型,ARIMAX模型預(yù)測(cè)冰淇淋消費(fèi)時(shí)間序列數(shù)據(jù)
原文鏈接:http://tecdat.cn/?p=22511
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
標(biāo)準(zhǔn)的ARIMA(移動(dòng)平均自回歸模型)模型允許只根據(jù)預(yù)測(cè)變量的過去值進(jìn)行預(yù)測(cè)。該模型假定一個(gè)變量的未來的值線性地取決于其過去的值,以及過去(隨機(jī))影響的值。ARIMAX模型是ARIMA模型的一個(gè)擴(kuò)展版本。它還包括其他獨(dú)立(預(yù)測(cè))變量。該模型也被稱為向量ARIMA或動(dòng)態(tài)回歸模型。
ARIMAX模型類似于多變量回歸模型,但允許利用回歸殘差中可能存在的自相關(guān)來提高預(yù)測(cè)的準(zhǔn)確性。
本文練習(xí)提供了一個(gè)進(jìn)行ARIMAX模型預(yù)測(cè)的練習(xí)。還檢查了回歸系數(shù)的統(tǒng)計(jì)學(xué)意義。
這些練習(xí)使用了冰淇淋消費(fèi)數(shù)據(jù)。該數(shù)據(jù)集包含以下變量。
美國(guó)的冰淇淋消費(fèi)(人均)
每周的平均家庭收入
冰淇淋的價(jià)格
平均溫度。
觀測(cè)數(shù)據(jù)的數(shù)量為30個(gè)。它們對(duì)應(yīng)的是1951年3月18日至1953年7月11日這一時(shí)間段內(nèi)的四周時(shí)間。
?
練習(xí)1
加載數(shù)據(jù)集,并繪制變量cons(冰淇淋消費(fèi))、temp(溫度)和收入。

ggplot(df, aes(x = X, y = income)) +
ylab("收入") +
xlab("時(shí)間") +
grid.arrange(p1, p2, p3, ncol=1, nrow=3)

練習(xí)?2?
對(duì)冰淇淋消費(fèi)數(shù)據(jù)估計(jì)ARIMA模型。然后將該模型作為輸入傳給預(yù)測(cè)函數(shù),得到未來6個(gè)時(shí)期的預(yù)測(cè)數(shù)據(jù)。
auto.arima(cons)

fcast_cons <- forecast(fit_cons, h = 6)

練習(xí)3
繪制得到的預(yù)測(cè)圖。

練習(xí)4
找出擬合的ARIMA模型的平均絕對(duì)誤差(MASE)。
accuracy

練習(xí)5
為消費(fèi)數(shù)據(jù)估計(jì)一個(gè)擴(kuò)展的ARIMA模型,將溫度變量作為一個(gè)額外的回歸因子(使用auto.arima函數(shù))。然后對(duì)未來6個(gè)時(shí)期進(jìn)行預(yù)測(cè)(注意這個(gè)預(yù)測(cè)需要對(duì)期望溫度進(jìn)行假設(shè);假設(shè)未來6個(gè)時(shí)期的溫度將由以下向量表示:
fcast_temp <- c(70.5, 66, 60.5, 45.5, 36, 28))
繪制獲得的預(yù)測(cè)圖。

練習(xí)6
輸出獲得的預(yù)測(cè)摘要。找出溫度變量的系數(shù),它的標(biāo)準(zhǔn)誤差,以及預(yù)測(cè)的MASE。將MASE與初始預(yù)測(cè)的MASE進(jìn)行比較。
summary(fca)

溫度變量的系數(shù)是0.0028
該系數(shù)的標(biāo)準(zhǔn)誤差為0.0007
平均絕對(duì)比例誤差為0.7354048,小于初始模型的誤差(0.8200619)。
練習(xí)7
檢查溫度變量系數(shù)的統(tǒng)計(jì)意義。該系數(shù)在5%的水平上是否有統(tǒng)計(jì)學(xué)意義?
test(fit)

練習(xí)8
估計(jì)ARIMA模型的函數(shù)可以輸入更多的附加回歸因子,但只能以矩陣的形式輸入。創(chuàng)建一個(gè)有以下幾列的矩陣。
溫度變量的值。
收入變量的值。
滯后一期的收入變量的值。
滯后兩期的收入變量的值。
輸出該矩陣。
注意:最后三列可以通過在收入變量值的向量中添加兩個(gè)NA來創(chuàng)建,并將得到的向量作為嵌入函數(shù)的輸入(維度參數(shù)等于要?jiǎng)?chuàng)建的列數(shù))。
vars <- cbind(temp, income)
print(vars)

練習(xí)9
使用獲得的矩陣來擬合三個(gè)擴(kuò)展的ARIMA模型,使用以下變量作為額外的回歸因子。
溫度、收入。
溫度、收入的滯后期為0、1。
溫度,滯后期為0、1、2的收入。
檢查每個(gè)模型的摘要,并找到信息準(zhǔn)則(AIC)值最低的模型。
注意AIC不能用于比較具有不同階數(shù)的ARIMA模型,因?yàn)橛^察值的數(shù)量不同。例如,非差分模型ARIMA(p,0,q)的AIC值不能與差分模型ARIMA(p,1,q)的相應(yīng)值進(jìn)行比較。
auto.arima(cons, xreg = var)
print(fit0$aic)

?可以使用AIC,因?yàn)楦髂P偷膮?shù)階數(shù)相同(0)。
AIC值最低的模型是第一個(gè)模型。
它的AIC等于-113.3。
練習(xí)10
使用上一練習(xí)中發(fā)現(xiàn)的模型對(duì)未來6個(gè)時(shí)期進(jìn)行預(yù)測(cè),并繪制預(yù)測(cè)圖。預(yù)測(cè)需要一個(gè)未來6個(gè)時(shí)期的期望溫度和收入的矩陣;使用temp變量和以下期望收入值創(chuàng)建矩陣:91, 91, 93, 96, 96, 96。
找出該模型的平均絕對(duì)比例誤差,并與本練習(xí)集中前兩個(gè)模型的誤差進(jìn)行比較。


帶有兩個(gè)外部回歸因子的模型具有最低的?平均絕對(duì)比例誤差(0.528)

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