This is the code I'm using to forecast ARIMA model:

plot(forecast(fit_past_data, xreg=mat_All_data), ylim=c(0,2000), xlim=c(0,365), xaxt='n')

par(new=T)

lines(fitted(fit_past_data),col="red", ylim=c(0,2000), xlim=c(0,365), xaxt='n')

par(new=T)

plot.ts(All_data,col="black", ylim=c(0,2000), xlim=c(0,365), xaxt='n')

所以,基本上我把我的样本分成'训练'(past_data,8个月的数据)和'测试'(all_data,10个月的数据) . 当我运行代码时,我得到三行:一行用于过去数据的预测,一行用于过去数据的拟合值,最后一行用于所有数据 . 在这种情况下,通过将其与实际值(比较黑线和蓝线)进行比较,我可以看到我的预测有多准确 .

我想将此过程应用于简单线性回归模型 . 但是,如果我使用函数 predict() 而不是 forecast() 我没有得到相同的情节 .

ARIMA预测(红线=拟合值,蓝线=预测,黑线=实际数据)

ARIMA graph

简单线性回归预测

Simple Linear Regression Graph