gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:01:52 29 4
gpt4 key购买 nike

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

但我的代码在行失败:

ARIMAfit <- auto.arima(saledata, xreg=covariates)

并给出错误说:

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 时如何进行。

最佳答案

几点。一,您可以将整个矩阵转换为 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])

关于r - 使用 auto.Arima() 和 xreg 进行 ARIMA 预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34249477/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com