我正在研究商店的銷售預測以瞭解預測。現在我已經成功地使用了簡單的auto.Arima()函數進行預測。但是爲了使這些預測更加準確我可以利用協變量。我已經定義了協變量,例如節假日,促銷,這會影響使用xreg運算符在本文的幫助下銷售商店: 如何在R中的auto.arima()中設置xreg參數?ARIMA使用auto.Arima()和xreg進行預測
但我的代碼無法在行:
ARIMAfit < - auto.arima(saledata,XREG =協)
,並給出錯誤說:
錯誤model.frame.default(公式= x〜xreg,drop.unused.levels = TRUE):可變長度不同(發現'xreg')另外:警告消息:In!is.na(x)&!is.na(rowSums(xreg)):較長的物體長度不是物體長度較短的倍數
下面是鏈接到我的數據集:https://drive.google.com/file/d/0B-KJYBgmb044blZGSWhHNEoxaHM/view?usp=sharing
這是我的代碼:
data = read.csv("xdata.csv")[1:96,]
View(data)
saledata <- ts(data[1:96,4],start=1)
View(saledata)
saledata[saledata == 0] <- 1
View(saledata)
covariates = cbind(DayOfWeek=model.matrix(~as.factor(data$DayOfWeek)),
Customers=data$Customers,
Open=data$Open,
Promo=data$Promo,
SchoolHoliday=data$SchoolHoliday)
View(head(covariates))
# Remove intercept
covariates <- covariates[,-1]
View(covariates)
require(forecast)
ARIMAfit <- auto.arima(saledata, xreg=covariates)//HERE IS ERROR LINE
summary(ARIMAfit)
還告訴我,我怎樣才能爲接下來的48個days.I知道如何使用簡單的auto.Arima(預測預測)和n.ahead,但不知道如何使用xreg時如何去做。
斐伊川NBATrends我不明白,你已經writen說明了樣本外預測與協讓分裂data.What窗函數做和什麼目的= 90,並開始= 91此處指定窗口中第二個代碼函數 –
就像我說的,當你在你的arima模型中有協變量時,爲了預測樣本外,你將需要提供它們的值。在上面的例子中,我只是將數據分成兩部分來進行說明。我用來擬合模型的第一個樣本,第二個樣本使用了預測的協變量。 窗口函數可用於數據的子集。 – Raad
沒問題,所以將1到90的數據用於訓練模型,91到96(6天)的數據將用於這6天的協變量的預測。對?? –