开始使用免费开始使用

使用 tsCV() 进行时间序列交叉验证

tsCV() 函数用于计算时间序列的交叉验证误差。它需要您指定时间序列、预测方法以及预测步长。下面是视频中使用的示例:

> e = tsCV(oil, forecastfunction = naive, h = 1)

在这里,您将使用 tsCV() 结合 naive() 方法对 goog 数据计算并绘制最多前进 8 步的 MSE 值。练习使用的是 ggplot2 作图,您可能还不熟悉,但我们已提供足够的代码片段,您可以据此补全剩余部分。

请务必参考讲解中关于 tsCV() 的幻灯片。goog 数据已加载到您的工作区。

本练习是课程的一部分

R 中的预测

查看课程

练习说明

  • 使用 goog 数据并调用 naive() 进行预测,计算前进至多 8 步的交叉验证误差。将结果赋值给 e
  • 计算每个预测步长对应的 MSE 值,并通过指定第二个参数来移除 e 中的缺失值。我们已提供用于计算 MSE 的表达式。
  • 将得到的 MSE 值(y)与预测步长(x)作图。请回忆您对函数的理解:如果在函数参数列表中提供了 MSE = mse,那么 mse 应该是函数外部工作区中已存在的对象,而 MSE 则是您在函数内部用来引用该对象的变量名。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Compute cross-validated errors for up to 8 steps ahead
e <- tsCV(___, forecastfunction = ___, h = ___)

# Compute the MSE values and remove missing values
mse <- colMeans(e^2, na.rm = ___)

# Plot the MSE values against the forecast horizon
data.frame(h = 1:8, MSE = mse) %>%
  ggplot(aes(x = h, y = ___)) + geom_point()
编辑并运行代码