3.6 R中的预测包

本书所用forecast包中的函数,都会在加载fpp2包时自动加载。本节附录简要概述fpp2包的一些特性,请参阅个人功能的帮助文件,以了解更多信息,并查看它们使用的一些示例。

输出预测对象的函数:

包括 meanf()naive()snaive()rwf() 等很多的函数,都对应以 forecast 类对象的形式输出(例如,一个 forecast类的对象),这就允许其他的函数(如autoplot())可以在一系列的预测模型中被一致的使用。

forecast类对象包括预测方法、所用数据、所得到的预测点、预测区间、残差和拟合值等信息。有很多函数,例如autoplot()summary()print() 都可以处理这些对象。

下面的列表显示了所有能生成 forecast 对象的函数:

  • meanf()
  • naive(), snaive()
  • rwf()
  • croston()
  • stlf()
  • ses()
  • holt(), hw()
  • splinef()
  • thetaf()
  • forecast()

forecast() 函数

到目前为止,我们已经使用了一些可以生成forecast对象的函数。但更常见的做法是,选择一个适合给定数据的模型,从而用forecast() 函数生成预测值,这将在本书的后半部分进行介绍。

forecast() 函数的输入有多种方式,但通常是以时间序列或时间序列模型作为主要参数,从而进行预测。

预测结果总是以forecast类对象的形式进行返回。但如果第一个参数属于ts类,则返回自动ETS算法的预测值,该算法将在第??章中讨论。

下面是一个简单的例子,将forecast() 函数应用于 ausbeer 数据:

forecast(ausbeer)
#>         Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
#> 2010 Q3          404.6 385.9 423.3 376.0 433.3
#> 2010 Q4          480.4 457.5 503.3 445.4 515.4
#> 2011 Q1          417.0 396.5 437.6 385.6 448.4
#> 2011 Q2          383.1 363.5 402.7 353.1 413.1
#> 2011 Q3          403.0 380.1 425.9 368.0 438.0
#> 2011 Q4          478.5 450.2 506.8 435.2 521.8
#> 2012 Q1          415.4 389.7 441.1 376.1 454.7
#> 2012 Q2          381.6 356.8 406.3 343.7 419.5

其实通过调包,就算你不知道使用什么样的模型,依然可以很好的解决问题。但到了本书的结尾,你应该不需要再在“黑箱”里使用 forecast()。相反,你可以选择适当的数据模型,然后用forecast()函数生成预测。