2

我正在尝试使用 auto.arima 函数将模型拟合到我的数据集,但我收到一条错误消息no suitable ARIMA model found,我怀疑该错误消息可能归因于我为该xreg部分传递的内容。我的数据集包含 1176 个总观察值,包括 1 个我试图预测的变量,其余是我试图作为回归量传递给 auto.arima 的虚拟变量(假期、一周中的几天等)。

library(forecast)

data <- read.csv(...)

#extract variable to be forecasted and extract regressors
forcast.var <- data[, 29]
regressors <- data[, 2:27]

#split forecast variable and regressors into train and test sets
train.r <- regressors[1:1000, ]
test.r <- regressors[1001:1176, ]

train.f <- forecast.var[1:1000]
test.f <- forecast.var[1001:1176]

#fit the data, pass 'train.r' into data.matrix and into 'xreg' since 
#documentation for this function says it must be a vector or matrix
fit <- auto.arima(train.f, stepwise = FALSE, approximation = FALSE
                  , xreg = data.matrix(train.r))

如果我尝试运行它,我会收到上述错误消息。如果我没有传递任何东西,我确实得到了一个拟合模型xreg,但拟合值或远不接近实际值。我应该提到 train.r 确实已经有列名。那么我做错了什么?我如何成功地通过回归器以希望我的模型更准确?

4

1 回答 1

0

我设法通过排除一个虚拟变量来解决这个问题。也就是说,一周中的几天,包假人为我创建了 7 个变量。但是,如果您有 7 个类别,则只需要 6 个假人。我排除了一个,然后 arima 工作正常。

于 2019-01-02T14:06:46.903 回答