拓端tecdat|R語言ARIMA集成模型預測時間序列分析


本文我們使用4個時間序列模型對每周的溫度序列建模。第一個是通過auto.arima獲得的,然后兩個是SARIMA模型,最后一個是Buys-Ballot方法。

我們使用以下數據


k=620
n=nrow(elec)
futu=(k+1):n
y=electricite$Load[1:k]
plot(y,type="l")


我們開始對溫度序列進行建模(溫度序列對電力負荷的影響很大)

y=Temp
plot(y,type="l")

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

時間序列是自相關的,在52階

acf(y,lag=120)

 

 

model1=auto.arima(Y)
acf(residuals(model1),120)
我們將這個模型保存在工作空間中,然后查看其預測。讓我們在這里嘗試一下SARIMA​

arima(Y,order = c(0,0,0),
seasonal = list(order = c(1,0,0)))
然后讓我們嘗試使用季節性單位根

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)

對模型進行預測

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個模型的結果

lines( MODEL$y1,col="
lines( MODEL$y2,col="green")
lines( MODEL$y3,col="orange")
lines( MODEL$y4,col="blue")

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

我們使用前200個值。

然后,我們在這200個值上擬合4個模型

然后我們進行預測

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+
為了創建預測的線性組合,我們使用

a=rep(1/4,4)
y_pr = as.matrix(DOS[,1:4]) %*% a

因此,我們可視化這4個預測,它們的線性組合(帶有等權重)及其觀察值

為了找到權重的“最佳”值,最小化誤差平方和,我們使用以下代碼

function(a) sum( DONN[,1:4 %*% a-DONN[,5 )^2

我們得到最優權重


optim(par=c(0,0,0),erreur2)$par
然后,我們需要確保兩種算法的收斂性:SARIMA參數的估計算法和權重參數的研究算法。

if(inherits(TRY, "try-error") arima(y,order = c(4,0,0)
seasonal = list(order = c(1,0,0)),method="CSS")
然后,我們查看權重隨時間的變化。

獲得下圖,其中粉紅色的是Buys-Ballot,粉紅色的是SARIMA模型,綠色是季節性單位根,

barplot(va,legend = rownames(counts)

我們發現權重最大的模型是Buys Ballot模型。

可以更改損失函數,例如,我們使用90%的分位數,


tau=.9
function(e) (tau-(e<=0))*e


在函數中,我們使用

 

這次,權重最大的兩個模型是SARIMA和Buys-Ballot。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM