当使用auto.arima函数时,如果需要在时间序列模型中加入外部变量(即回归变量),可以使用参数xreg。但有时在使用xreg参数时会出现一些问题。以下是一个包含代码示例的解决方法:
# 导入所需的包
library(forecast)
# 创建时间序列数据
ts_data <- ts(data, frequency = 12)
# 创建外部变量(回归变量)数据
xreg_data <- data.frame(regressor)
# 将时间序列数据和外部变量数据合并
combined_data <- cbind(ts_data, xreg_data)
# 将合并后的数据拆分为训练集和测试集
train_data <- window(combined_data, end = c(year, month))
test_data <- window(combined_data, start = c(year, month))
# 使用auto.arima函数拟合时间序列模型,并指定xreg参数
model <- auto.arima(train_data[,1], xreg = train_data[,2:ncol(train_data)], seasonal = TRUE)
# 预测未来的时间序列值,并使用xreg参数传递测试集的外部变量数据
forecast <- forecast(model, xreg = test_data[,2:ncol(test_data)])
# 打印预测结果
print(forecast)
在这个例子中,我们首先将时间序列数据和外部变量数据合并为一个数据框。然后,我们将合并后的数据拆分为训练集和测试集。接下来,在使用auto.arima函数时,我们将训练集的时间序列数据作为第一个参数,并使用xreg参数传递训练集的外部变量数据。最后,我们使用forecast函数对测试集进行预测,并使用xreg参数传递测试集的外部变量数据。