拓端tecdat|R語(yǔ)言ARIMA集成模型預(yù)測(cè)時(shí)間序列分析
原文鏈接:http://tecdat.cn/?p=18493
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
?
本文我們使用4個(gè)時(shí)間序列模型對(duì)每周的溫度序列建模。第一個(gè)是通過(guò)auto.arima獲得的,然后兩個(gè)是SARIMA模型,最后一個(gè)是Buys-Ballot方法。
我們使用以下數(shù)據(jù)
k=620
n=nrow(elec)
futu=(k+1):n
y=electricite$Load[1:k]
plot(y,type="l")
?

我們開(kāi)始對(duì)溫度序列進(jìn)行建模(溫度序列對(duì)電力負(fù)荷的影響很大)
y=Temp
plot(y,type="l")
?

abline(lm(y[ :k]~y[( :k)-52]),col="red")
?

?
時(shí)間序列是自相關(guān)的,在52階
acf(y,lag=120)
?

?
model1=auto.arima(Y)
acf(residuals(model1),120)
我們將這個(gè)模型保存在工作空間中,然后查看其預(yù)測(cè)。讓我們?cè)谶@里嘗試一下SARIMA
arima(Y,order = c(0,0,0),
seasonal = list(order = c(1,0,0)))
然后讓我們嘗試使用季節(jié)性單位根
Z=diff(Y,52)
arima(Z,order = c(0,0,1),
seasonal = list(order = c(0,0,1)))
然后,我們可以嘗試Buys-Ballot模型
lm(Temp~0+as.factor(NumWeek),
?

對(duì)模型進(jìn)行預(yù)測(cè)
plot(y,type="l",xlim=c(0,n )
abline(v=k,col="red")
lines(pre4,col="blue")
?

plot(y,type="l",xlim=c(0,n))
abline(v=k,col="red")
?

?
plot(y,type="l",xlim=c(0,n))
?

?
plot(y,type="l",xlim=c(0,n))
abline(v=k,col="red")
?

最后比較4個(gè)模型的結(jié)果
lines( MODEL$y1,col="
lines( MODEL$y2,col="green")
lines( MODEL$y3,col="orange")
lines( MODEL$y4,col="blue")
?

然后,我們可以嘗試加權(quán)平均值來(lái)優(yōu)化模型,而不是找出四個(gè)中的哪一個(gè)模型是“最優(yōu)”,y ^ T = ∑iωiy ^ t(i)其中ω=(ωi),ω1+ ... +ωk= 1。然后,我們想要找到“最佳”權(quán)重。我們將在第一個(gè)m值上校準(zhǔn)我們的四個(gè)模型,然后比較下111個(gè)值(和真實(shí)值)的預(yù)測(cè)組合,

?
我們使用前200個(gè)值。
然后,我們?cè)谶@200個(gè)值上擬合4個(gè)模型
然后我們進(jìn)行預(yù)測(cè)
y1=predict(model1,n.ahead = 111)$pred,
y2=predict(model2,n.ahead = 111)$pred,
y3=predict(model3,n.ahead = 111)$pred,
y4=predict(model4,n.ahead = 111)$pred+
為了創(chuàng)建預(yù)測(cè)的線(xiàn)性組合,我們使用
a=rep(1/4,4)
y_pr = as.matrix(DOS[,1:4]) %*% a
因此,我們可視化這4個(gè)預(yù)測(cè),它們的線(xiàn)性組合(帶有等權(quán)重)及其觀(guān)察值
為了找到權(quán)重的“最佳”值,最小化誤差平方和,我們使用以下代碼
function(a) sum( DONN[,1:4 ?%*% a-DONN[,5 )^2
我們得到最優(yōu)權(quán)重
optim(par=c(0,0,0),erreur2)$par
然后,我們需要確保兩種算法的收斂性:SARIMA參數(shù)的估計(jì)算法和權(quán)重參數(shù)的研究算法。
if(inherits(TRY, "try-error") ? arima(y,order = c(4,0,0)
seasonal = list(order = c(1,0,0)),method="CSS")
然后,我們查看權(quán)重隨時(shí)間的變化。
獲得下圖,其中粉紅色的是Buys-Ballot,粉紅色的是SARIMA模型,綠色是季節(jié)性單位根,
barplot(va,legend = rownames(counts)
?

我們發(fā)現(xiàn)權(quán)重最大的模型是Buys Ballot模型。
可以更改損失函數(shù),例如,我們使用90%的分位數(shù),
tau=.9
function(e) (tau-(e<=0))*e
在函數(shù)中,我們使用
?

?
這次,權(quán)重最大的兩個(gè)模型是SARIMA和Buys-Ballot。

最受歡迎的見(jiàn)解
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í)間序列聚類(lèi)方法對(duì)股票價(jià)格時(shí)間序列聚類(lèi)
9.python3用arima模型進(jìn)行時(shí)間序列預(yù)測(cè)
?