R語(yǔ)言ARIMA模型分析預(yù)測(cè)上??諝赓|(zhì)量指數(shù)AQI時(shí)間序列
全文鏈接:http://tecdat.cn/?p=32265
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
指數(shù)平滑法對(duì)于預(yù)測(cè)來(lái)說(shuō)是非常有幫助的,而且它對(duì)時(shí)間序列上面連續(xù)的值之間相關(guān)性沒(méi)有要求。但是,如果你想使用指數(shù)平滑法計(jì)算出預(yù)測(cè)區(qū)間,那么預(yù)測(cè)誤差必須是不相關(guān)的, 而且必須是服從零均值、 方差不變的正態(tài)分布。即使指數(shù)平滑法對(duì)時(shí)間序列連續(xù)數(shù)值之間相關(guān)性沒(méi)有要求,在某種情況下,我們可以通過(guò)考慮數(shù)據(jù)之間的相關(guān)性來(lái)創(chuàng)建更好的預(yù)測(cè)模型。
自回歸移動(dòng)平均模型( ARIMA) 包含一個(gè)確定(explicit)的統(tǒng)計(jì)模型用于處理時(shí)間序列的不規(guī)則部分,它也允許不規(guī)則部分可以自相關(guān)。
我們以上??諝赓|(zhì)量指數(shù)AQI做成的時(shí)間序列數(shù)據(jù)為例。 隨著時(shí)間增加, 數(shù)值變化很大。
下面是excel數(shù)據(jù):
data=read.xlsx("上??諝赓|(zhì)量指數(shù) (1).xlsx") ?
head(data)##???? 城市? 日期 AQI指數(shù) ?## 1 上海市 41640???? 193 ?## 2 上海市 41641???? 140 ?## 3 上海市 41642???? 195 ?## 4 上海市 41643???? 137 ?## 5 上海市 41644????? 83 ?## 6 上海市 41645????? 59
把數(shù)據(jù)轉(zhuǎn)換成時(shí)間序列格式
data=ts(data[,3],start = c(2014,1,1) ,frequency = 365)
查看數(shù)據(jù)概覽
summary(data)##??? Min. 1st Qu.? Median??? Mean 3rd Qu.??? Max. ?##??? 28.0??? 59.0??? 77.0??? 86.5?? 103.0?? 266.0
平穩(wěn)性檢驗(yàn)(ADF單位根檢驗(yàn))
adf.test(data,k = 5)##? Augmented Dickey-Fuller Test ?## ?## data:? data ?## Dickey-Fuller = -9.987, Lag order = 5, p-value = 0.01 ?## alternative hypothesis: stationary
驗(yàn)出P值小于0.05,不存在單位根,說(shuō)明原時(shí)間序列穩(wěn)定
找到合適的ARIMA模型
如果你的時(shí)間序列是平穩(wěn)的,或者你通過(guò)做 n 次差分轉(zhuǎn)化為一個(gè)平穩(wěn)時(shí)間序列, 接下來(lái)就是要選擇合適的 ARIMA模型,這意味著需要尋找 ARIMA(p,d,q)中合適的 p 值和 q 值。為了得到這些,通常需要檢查[平穩(wěn)時(shí)間序列的(自)相關(guān)圖和偏相關(guān)圖。
觀察 ARIMA 模型的預(yù)測(cè)誤差是否是平均值為 0 且方差為常數(shù)的正態(tài)分布(服從零均值、方差不變的正態(tài)分布) 是個(gè)好主意,同時(shí)也要觀察連續(xù)預(yù)測(cè)誤差是否(自)相關(guān)。
#AR(1)
model=arima(data,c(1,0,0))
AIC
model$aic## [1] 8421.217
找到最小的AIC值
which.min(c(model$aic,model2$aic,model3$aic,model4$aic,model5$aic,model6$aic))## [1] 5
所以最小的AIC是模型5,因此將模型5作為最優(yōu)的模型來(lái)建模。
## Coefficients:## Warning in sqrt(diag(x$var.coef)): 產(chǎn)生了NaNs##????????? ar1????? ar2???? ar3????? ma1???? ma2? intercept ?##?????? 1.4415? -1.3018? 0.3937? -0.9435? 0.7885??? 86.8142
評(píng)估誤差
#MAE ?mean(abs(model5$residuals))## [1] 24.5714#RMSE ?mean(sqrt(abs(model5$residuals)))## [1] 4.496127
預(yù)測(cè)未來(lái)的變化趨勢(shì)
?pred=ts(pre$pred,start = c(2016,5,1),frequency =365)
####繪制預(yù)測(cè)數(shù)據(jù) ?points(pre$pred,
?最受歡迎的見(jiàn)解
1.在python中使用lstm和pytorch進(jìn)行時(shí)間序列預(yù)測(cè)
2.python中利用長(zhǎng)短期記憶模型lstm進(jìn)行時(shí)間序列預(yù)測(cè)分析
3.Python用RNN循環(huán)神經(jīng)網(wǎng)絡(luò):LSTM長(zhǎng)期記憶、GRU門(mén)循環(huán)單元、回歸和ARIMA對(duì)COVID-19新冠疫情新增人數(shù)時(shí)間序列
4.Python TensorFlow循環(huán)神經(jīng)網(wǎng)絡(luò)RNN-LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)股票市場(chǎng)價(jià)格時(shí)間序列和MSE評(píng)估準(zhǔn)確性
5.r語(yǔ)言copulas和金融時(shí)間序列案例
6.R 語(yǔ)言用RNN循環(huán)神經(jīng)網(wǎng)絡(luò) 、LSTM長(zhǎng)短期記憶網(wǎng)絡(luò)實(shí)現(xiàn)時(shí)間序列長(zhǎng)期利率預(yù)測(cè)
7.Matlab創(chuàng)建向量自回歸(VAR)模型分析消費(fèi)者價(jià)格指數(shù) (CPI) 和失業(yè)率時(shí)間序列
8.r語(yǔ)言k-shape時(shí)間序列聚類(lèi)方法對(duì)股票價(jià)格時(shí)間序列聚類(lèi)
9.R語(yǔ)言結(jié)合新冠疫情COVID-19股票價(jià)格預(yù)測(cè):ARIMA,KNN和神經(jīng)網(wǎng)絡(luò)時(shí)間序列分析