R語言混合時(shí)間模型預(yù)測(cè)對(duì)時(shí)間序列進(jìn)行點(diǎn)估計(jì)
原文連接:http://tecdat.cn/?p=6078
?
?
混合預(yù)測(cè) - 單模型預(yù)測(cè)的平均值 - 通常用于產(chǎn)生比任何預(yù)測(cè)模型更好的點(diǎn)估計(jì)。我展示了如何為混合預(yù)測(cè)構(gòu)建預(yù)測(cè)區(qū)間,這種預(yù)測(cè)的覆蓋范圍比最常用的預(yù)測(cè)區(qū)間更準(zhǔn)確(即80%的實(shí)際觀測(cè)結(jié)果在80%置信區(qū)間內(nèi))。
?
預(yù)測(cè)間隔
預(yù)報(bào)的問題是在預(yù)測(cè)組合中使用的預(yù)測(cè)間隔。預(yù)測(cè)間隔是與置信區(qū)間相似但不相同的概念。預(yù)測(cè)間隔是對(duì)尚未知但將在未來的某個(gè)點(diǎn)觀察到的值(或更確切地說,可能值的范圍)的估計(jì)。而置信區(qū)間是對(duì)基本上不可觀察的參數(shù)的可能值范圍的估計(jì)。預(yù)測(cè)間隔需要考慮模型中的不確定性,模型中參數(shù)的不確定估計(jì)(即那些參數(shù)的置信區(qū)間),以及與預(yù)測(cè)的特定點(diǎn)相關(guān)聯(lián)的隨機(jī)性。
混合預(yù)測(cè)
我結(jié)合auto.arima()
并ets()
,有效地進(jìn)行混合預(yù)測(cè)。為了更方便,我創(chuàng)建了一個(gè)混合預(yù)測(cè)并生成forecast
類對(duì)象的函數(shù)。
library(forecast)
?

深灰色區(qū)域是80%預(yù)測(cè)區(qū)間,淺灰色區(qū)域是95%預(yù)測(cè)區(qū)間。?
?
測(cè)試M3
結(jié)果如下:
變量準(zhǔn)確度ets_p800.75ets_p950.90auto.arima_p800.74auto.arima_p950.88hybrid_p800.83hybrid_p950.94
混合方法有接近預(yù)期的成功率,而這兩個(gè)預(yù)測(cè)區(qū)間ets()
和auto.arima()
不太成功。
以下是我在M3數(shù)據(jù)上測(cè)試的方法。我構(gòu)建了一個(gè)函數(shù)accuracy
來幫助,它利用了類預(yù)測(cè)對(duì)象返回一個(gè)名為“l(fā)ower”的矩陣和另一個(gè)名為“upper”的矩陣,每個(gè)預(yù)測(cè)區(qū)間都有一列。
#------------------安裝------------------------
library(forecast)
ly = "myfont"))
pi_accuracy <- function(fc, yobs){
# 檢查類的對(duì)象的預(yù)測(cè)間隔是否成功
In <- (yobsm
}
實(shí)際上擬合所有預(yù)測(cè)相對(duì)簡(jiǎn)單。
#============使用默認(rèn)值進(jìn)行預(yù)測(cè)===============
num_series <- length(M3) # ie 3003
results <- matrix(0, nrow = num_series, ncol = 7)
for(i in 1:num_series){
cat(i, " ") ? ? ? ?# 循環(huán)過程
series <- M3[[i]]
ccess
fc1 <- fc3$fc_ets
r
geom_smooth(se = FALSE, method = "lm") +
theme(panel.grid.minor = element_blank())

?
預(yù)測(cè)
?
變量準(zhǔn)確度ets_p800.72ets_p950.88auto.arima_p800.70auto.arima_p950.86hybrid_p800.80hybrid_p950.92
#=====用Bootstrapping算法代替預(yù)測(cè)間隔的公式=============
num_series <- length(M3)
resultsb <- matrix(0, nrow = num_series, ncol = 7)
for(i in 1:num_series){
cat(i, " ")
gather(variable, value, -h) %>%
mutate(weighted_val ighted_value) / sum(h), 2))
結(jié)論
?
根據(jù)M3數(shù)據(jù)進(jìn)行測(cè)試,通過組合
ets()
并auto.arima()
形成的預(yù)測(cè)達(dá)到期望的水平,即80%預(yù)測(cè)區(qū)間在80%的時(shí)間內(nèi)包含真值,95%的預(yù)測(cè)區(qū)間包含不到95%的時(shí)間的真值。