【问题标题】:Forecasting with ARIMA and xreg in R在 R 中使用 ARIMA 和 xreg 进行预测
【发布时间】:2017-06-26 06:05:25
【问题描述】:

我在 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)

在这一行我收到以下错误:

优化错误(init[mask], armaCSS, method = optim.method, hessian = FALSE, : 由 optim 提供的非有限值

我推测我的predictor_matrix 格式不正确,但我找不到错误。

任何帮助将不胜感激,

【问题讨论】:

    标签: r forecasting


    【解决方案1】:

    您已经指出“数据集是... 12 行”。您的预测矩阵有 13 列(11 个月 [虚拟变量?] 和 2 个其他变量)。因此,您必须在列之间具有线性相关性,并且优化过程会失败。

    您需要(理想情况下)更多数据来支持预测变量的数量和/或一组更稀疏的预测变量。

    【讨论】:

    • 这确实是问题所在,我使用的是更大数据集的示例。每个添加的预测器需要多少个数据集是否有经验法则?
    • 经验法则因领域而异,但在经济学中,考虑到变量合理性的强大预拟合理论,您的目标可能至少是预测变量数量的 4 倍。在其他领域,您应该有更多的数据,例如8 倍而不是 4 倍,例如一开始变量的重要性可能很微弱的心理学。
    猜你喜欢
    • 2021-10-18
    • 2019-03-19
    • 1970-01-01
    • 2019-05-06
    • 2018-09-08
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    相关资源
    最近更新 更多