Прогнозирование с ARIMA и xreg в R

У меня возникли проблемы с моей первой реализацией прогнозирования в R. Чего я хотел бы добиться, так это предсказать переменную Y с 2 экзогенными переменными X1 и X2. Каждый из трех наборов данных представлен в виде одного столбца с 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)

В этой строке я получаю следующую ошибку:

Ошибка в optim(init[mask], armaCSS, method = optim.method, hessian = FALSE,: неконечное значение, предоставленное optim

Я предполагаю, что мой predictor_matrix не в правильном формате, но я не могу найти ошибку.

Любая помощь будет оценена,

1 ответ

Решение

Вы указали "наборы данных... 12 строк". Ваша матрица предикторов имеет 13 столбцов (11 месяцев [фиктивных переменных?] И 2 другие переменные). Следовательно, у вас обязательно есть линейная зависимость между столбцами, и процедура оптимизации завершится неудачно.

Вам нужно (в идеале намного) больше данных для поддержки числа переменных-предикторов и / или более редкого набора предикторов.

Другие вопросы по тегам