R auto.arima错误

时间:2013-09-05 15:18:35

标签: r

我是R新手并且使用auto.arima函数与xreg。我在网上找到了一个代码并试图复制我的数据。但是,我收到以下错误消息:

Error in optim(init[mask], armaCSS, method = optim.method, hessian = FALSE,  : 
  non-finite value supplied by optim

Error in if (diffs == 1 & constant) { : argument is of length zero
In addition: Warning message:
In auto.arima(salesTS, xreg = xreg1) : Unable to calculate AIC offset

我的代码如下:

data <- read.csv("C:/Users/s.karkala.rao/Documents/Projects/ad-hoc/Hitesh/forARIMAX.csv", header=TRUE, stringsAsFactors=TRUE)
subdata <- subset(data, data$NG.code == "101451")
subdata <- subdata[, -1]
salesTS <- ts(subdata$Sales.Qty, frequency=7)
xreg1 <- subdata[,-1]
xreg1 <- xreg1[, -10]
xreg1 <- as.matrix(xreg1)
model <- auto.arima(salesTS, xreg=xreg1)

我已经阅读了类似查询的一些答案,但无法找出我的代码的解决方案。请帮忙。

1 个答案:

答案 0 :(得分:5)

此错误的一个可能原因是您的回归量不是线性独立的。回归程序通常需要回归量的线性独立性(a.k.a.回归矩阵的满级)。

违反此假设的例子:

  1. 在模型中包含变量X和常量多个aX。
  2. 在模型中包含一列全零。这是(1)的特例,其中a = 0。
  3. 如果您不想手动检查独立性,可以使用“Matrix”包中的rankMatrix功能。如果您的回归量是线性独立的,那么您的矩阵将具有“满级”,意味着等级等于列数。

    也就是说,rankMatrix(xreg)的结果应该等于ncol(xreg)