2016-02-25 164 views
0

我正在嘗試使用以下代碼預測在餐館點餐的人的時間(「TiTo」)。 TiTo是一個人從他們走進大門到他們拿到食物時所需的總時間。 TimeTT是顧客與服務員交談的時間。我相信TimeTT是TiTo的一個預測因子,我想用它作爲TiTo預測的協變量。我已經閱讀了一些關於ARIMA的知識,並且據我瞭解,您可以在xreg參數中將預測變量添加到模型中。我正在考慮將xreg參數設置爲迴歸模型的自變量,如lm(TiTo〜TimeTT)。這是考慮xreg參數的正確方法嗎?下面的錯誤信息是什麼意思?我是否需要將TimeTT轉換爲時間序列以在xreg參數中使用它?我是新來的預測,所以所有的幫助非常感謝。使用xreg預測ARIMA

預測嘗試:

OV<-zoo(SampleData$TiTo, order.by=SampleData$DateTime) 

eData <- ts(OV, frequency = 24) 

Train <-eData[1:15000] 

Test <- eData[15001:20809] 

Arima.fit <- auto.arima(Train) 

Acast<-forecast(Arima.fit, h=5808, xreg = SampleData$TimeTT) 

錯誤:(!NcoI位(XREG)=的NcoI(對象$調用$ XREG))

錯誤,如果停止(「迴歸量數不匹配擬合模型「): 參數是長度的零

數據:

dput(Train[1:5]) 
c(1152L, 1680L, 1680L, 968L, 1680L) 

dput(SampleData[1,]$TimeTT) 
structure(1156L, .Label = c("0.000000", "0.125000", "0.142857", 
"96.750000", "97.800000", "99.000000", "99.600000", "NULL"), class = "factor") 
+0

發佈您的數據示例。 – kristang

+0

謝謝你回到我身邊kristang。我發佈了一些示例數據。我沒有發佈TimeTT的所有數據,只是一個示例。我可以直接從蝙蝠身上看到,我之前錯誤地將我的數據框子集化了,但是xreg應該是數據框? xreg是否需要與您的訓練數據具有相同長度的時間序列?還有,我是否使用xreg正確的自動arima後面的conept,那就是說我可以預測一個時間序列(「TiTo」)並使用xreg將預測變量添加到預測中? – modLmakur

回答

1

您需要在估算模型本身時定義xreg,並且這些也需要提前預測。因此,這將是這個樣子:

Arima.fit <- auto.arima(Train, xreg = SampleData$TimeTT) 
forecast(Arima.fit, h = 508, xreg = NewData$TimeTT) 

這裏是羅布海德門使用Arimaxreg一個例子(這裏是link的例子,但瞭解更多關於在ARIMA模型中使用的同期協去here),這類似於auto.arima

n <- 2000 
m <- 200 
y <- ts(rnorm(n) + (1:n)%%100/30, f=m) 

library(forecast) 
fit <- Arima(y, order=c(2,0,1), xreg=fourier(y, K=4)) 
plot(forecast(fit, h=2*m, xreg=fourierf(y, K=4, h=2*m))) 

希望這會有所幫助。