在 R 中使用 ARIMA 和 xreg 进行预测
Forecasting with ARIMA and xreg in R
我在 R 中的第一个预测实现中遇到了问题。我想要实现的是用 2 个外生变量 X1 和 X2 预测变量 Y。 3 个数据集分别表示为 12 行的单列。
从另一个 Stackpost 我采用了类似的方法:
DataSample <- data.frame(Y=Y[,1],Month=rep(1:12,1),
X1=X1[,1],X2=X2[,1])
predictor_matrix <- cbind(Month=model.matrix(~as.factor(DataSample$Month)),
X1=DataSample$X1,
X2=DataSample$X2)
# Remove intercept
predictor_matrix <- predictor_matrix[,-1]
# Rename columns
colnames(predictor_matrix) <- c("January","February","March","April","May","June","July","August","September","October","November","X1","X2")
# Variable to be modeled
var <- ts(DataSample$Y, frequency=12)
#Find ARIMA
modArima <- auto.arima(var, xreg = predictor_matrix)
在这一行我得到以下错误:
Error in optim(init[mask], armaCSS, method = optim.method, hessian =
FALSE, : non-finite value supplied by optim
我认为我的 predictor_matrix
格式不正确,但我找不到错误。
如有任何帮助,我们将不胜感激,
您已经指出 "datasets are ... 12 rows"。您的预测矩阵有 13 列(11 个月 [虚拟变量?] 和 2 个其他变量)。因此,列之间必然存在线性相关性,并且优化过程失败。
您需要(理想情况下)更多数据来支持预测变量的数量 and/or 一组更稀疏的预测变量。
我在 R 中的第一个预测实现中遇到了问题。我想要实现的是用 2 个外生变量 X1 和 X2 预测变量 Y。 3 个数据集分别表示为 12 行的单列。
从另一个 Stackpost 我采用了类似的方法:
DataSample <- data.frame(Y=Y[,1],Month=rep(1:12,1),
X1=X1[,1],X2=X2[,1])
predictor_matrix <- cbind(Month=model.matrix(~as.factor(DataSample$Month)),
X1=DataSample$X1,
X2=DataSample$X2)
# Remove intercept
predictor_matrix <- predictor_matrix[,-1]
# Rename columns
colnames(predictor_matrix) <- c("January","February","March","April","May","June","July","August","September","October","November","X1","X2")
# Variable to be modeled
var <- ts(DataSample$Y, frequency=12)
#Find ARIMA
modArima <- auto.arima(var, xreg = predictor_matrix)
在这一行我得到以下错误:
Error in optim(init[mask], armaCSS, method = optim.method, hessian = FALSE, : non-finite value supplied by optim
我认为我的 predictor_matrix
格式不正确,但我找不到错误。
如有任何帮助,我们将不胜感激,
您已经指出 "datasets are ... 12 rows"。您的预测矩阵有 13 列(11 个月 [虚拟变量?] 和 2 个其他变量)。因此,列之间必然存在线性相关性,并且优化过程失败。
您需要(理想情况下)更多数据来支持预测变量的数量 and/or 一组更稀疏的预测变量。