簡體   English   中英

預測錯誤。Arima 與 xreg

[英]Error with forecast.Arima with xreg

我正在嘗試使用預測庫中的 arima() 和 forecast.Arima() 函數擬合具有 ARMA 錯誤的回歸模型。 (即最接近我可以使用 arima() 函數擬合的 ARMAX 模型的東西)

我的代碼:


library(forecast)
data <-read.csv(filename,stringsAsFactors=FALSE)
data.ts<-ts(data$result,frequency=24,start=c(1,1),end=c(7,24))
input.ts<-ts(data$input,frequency=24,start=c(1,1),end=c(7,24))
data.fit <- arima(window(data.ts,start=c(1,1),end=c(5,24)), 
                  order=c(2,0,3), seasonal =list(order = c(1, 0, 1), period = 24),      
                  xreg=window(input.ts,start=c(1,1),end=c(5,24)))
data.forecast <-forecast.Arima(data.fit,
                               xreg=window(input.ts,start=c(6,1),end=c(7,24)))

但是,在 predict.Arima() 函數中包含 xreg 因子時出現以下錯誤:

Error in if (ncol(xreg) != ncol(object$call$xreg)) 
stop("Number of regressors does not match fitted model") : 
argument is of length zero

我不明白為什么我會收到這個錯誤。 我已經在 predict.Arima() 函數中包含了 xreg 的未來值,並且輸入時間序列在 arima() 函數中完全相同,只是在不同的窗口中。

xreg 的類型應該是什么? 我嘗試將 xreg 時間序列對象強制轉換為數據框和數字向量,但沒有成功。

我遇到了同樣的問題。 我認為這是因為實際上有兩個不同的 arima 函數:basic stats 包中的 arima 和預測包中的 Arima。 您要做的是首先使用 Arima 函數擬合您的模型。 它對我有用。

我在運行帶有 arima 函數的 AR1 后出現錯誤的模型時遇到相同的錯誤:

arima(y, xreg=cbind(x1, x2, x3, x4), order=c(1,0,0))

我使用 auto.arima 函數解決了這個問題。 為了始終獲得具有 AR1 錯誤的模型,我使用以下代碼調整參數:

auto.arima(y, xreg=cbind(x1, x2, x3, x4), max.p = 1, max.q = 0, max.P = 0, max.Q = 0, max.order = 0, max.d = 0, max.D = 0, start.p = 1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM