由已估计 MA 模型得到的简单预测
您已经用 Nile 数据估计了一个 MA 模型。下一步是用该模型做一些简单预测。与其他类型的模型一样,您可以使用 predict() 函数从已估计的 MA 模型中获得简单预测。请回忆,$pred 是预测值,$se 是该预测的标准误,它们都基于已拟合的 MA 模型。
同样地,若要对最后一个观测值之后的多个时期做预测,您可以在调用 predict() 时使用参数 n.ahead = h。预测将从观测到的时间序列末端,递归地生成从 1 到 h 步的前向预测。不过请注意,除 1 步预测外,MA 模型给出的所有预测都等于估计的均值(intercept)。
在本练习中,您将使用从 Nile 数据得到的 MA 模型,对未来尼罗河流量进行简单预测。您在上一练习中得到的 MA 模型已在您的环境中可用。
本练习是课程的一部分
R 中的时间序列分析
练习说明
- 使用
predict()预测 1971 年的尼罗河流量水平。将预测结果保存到predict_MA。 - 使用
predict_MA的$pred[1]获取 1 步预测值。 - 再次调用
predict(),生成从 1971 年到 1980 年的预测。为此,将n.ahead参数设置为10。 - 运行预写代码以绘制
Nile时间序列,以及预测值和 95% 预测区间。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Make a 1-step forecast based on MA
predict_MA <-
# Obtain the 1-step forecast using $pred[1]
# Make a 1-step through 10-step forecast based on MA
# Plot the Nile series plus the forecast and 95% prediction intervals
ts.plot(Nile, xlim = c(1871, 1980))
MA_forecasts <- predict(MA, n.ahead = 10)$pred
MA_forecast_se <- predict(MA, n.ahead = 10)$se
points(MA_forecasts, type = "l", col = 2)
points(MA_forecasts - 2*MA_forecast_se, type = "l", col = 2, lty = 2)
points(MA_forecasts + 2*MA_forecast_se, type = "l", col = 2, lty = 2)