当前位置:  开发笔记 > 编程语言 > 正文

使用auto.Arima()和xreg进行ARIMA预测

如何解决《使用auto.Arima()和xreg进行ARIMA预测》经验,为你挑选了1个好方法。

我正在从事预测商店销售的项目以学习预测。到目前为止,我已经成功地使用了简单的auto.Arima()函数进行预测。但是为了使这些预测更加准确,我可以使用协变量。我定义了假日等协变量,借助这篇文章的帮助,使用xreg运算符会影响商店的销售:如何在R中的auto.arima()中设置xreg参数?

但是我的代码在以下行失败:

ARIMAfit <-auto.arima(saledata,xreg =协变量)

并给出错误提示:

model.frame.default(formula = x〜xreg,drop.unused.levels = TRUE)中的错误:变量长度不同(为'xreg'找到)另外:警告消息:在!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天。我知道如何使用简单的auto.Arima()和n.ahead进行预测,但不知道使用xreg时如何进行预测。



1> Raad..:

几点。第一,您可以将整个矩阵转换为ts对象,然后隔离变量。其次,如果您在Arima模型中使用协变量,则在预测样本外时需要提供协变量。这可能意味着在生成您感兴趣的变量的预测之前,先预测每个协变量。在下面的示例中,为简单起见,我将数据分为两个样本。

dta = read.csv("xdata.csv")[1:96,]
dta <- ts(dta, start = 1)

# to illustrate out of sample forecasting with covariates lets split the data
train <- window(dta, end = 90)
test <- window(dta, start = 91)

# fit model
covariates <- c("DayOfWeek", "Customers", "Open", "Promo", "SchoolHoliday")
fit <- auto.arima(train[,"Sales"], xreg = train[, covariates])

# forecast
fcast <- forecast(fit, xreg = test[, covariates])

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有