2014-12-07 104 views
0

我想用r中的hts package的最佳聯合方法來獲得單指數平滑(SES)預測方法的分層預測,我在手冊中閱讀了可用預測方法是ets,arima和rw的手冊。我想知道是否可以使用SES等其他預測方法?我試圖使用下面的代碼,但我得到一個錯誤。hts package in R

library(forecast)  
library(hts) 

mydata <- matrix(rnorm(103*2, mean = 200, sd = 20), nrow = 103, ncol = 2) 

data <- hts(mydata) 
tdata=window(data,1,70)# training data 
test=window(data,71,103)# test data 
alldata <- aggts(tdata) 

allf <- matrix(NA, nrow = 33, ncol = ncol(alldata))#all forecast 

for(i in 1:ncol(alldata)) 
    allf[,i] <- ses((alldata[,i]), h = 33)$mean# generate forecasts usign SES 

tdata.f <- combinef(allf, data$nodes, weights = NULL, keep = "gts") 
+0

該代碼適用於使用CRAN當前版本的hts(v4.4)。你使用的是什麼版本的HTS? – 2014-12-08 20:37:19

回答

1

?ets告訴你如何使用添加劑的錯誤,沒有趨勢但沒有季節性的,這是SES狀態空間形式指定一個模型。應該添加參數model="ANN"。這將傳遞到ets()

+0

謝謝Stephan,是的,我已經試過model =「ANN」,fmethod =「ets(model =」ANN「)」,但它不起作用 – Roji 2014-12-07 14:07:04

+0

@Roji你應該發佈一個工作示例代碼失敗。嘗試使用示例中'hts'包中的'infantgts'數據集,以便我們可以重現它。 – Zach 2014-12-07 15:24:54

+0

其實,我有420個系列,想用最佳組合方法得到頂級和底級的預測,所以有兩個級別可用,level0(一個系列)和level1(420)系列,我使用這些cods:mydata < - hts(mydata)#我只有兩個級別; aggts(數據) ALLF < - - 矩陣(NA與一個系列,1級與420系列 H = 12 數據=窗口(MYDATA,1,70) 測試=窗口(MYDATA,71103) ALLDATA <0級(alldata [,i]),model =「ANN」),nrow = h,ncol = ncol(alldata)) (i in 1:ncol(alldata)) allf [,i] < - forecast ,h = h)$ mean data.f < - combinef(allf,mydata $ nodes,weights = NULL,keep =「gts」) – Roji 2014-12-07 15:25:03