开始使用免费开始使用

由已估计 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)
编辑并运行代码