2.1 ts 对象

时间序列是一组按照时间发生先后顺序进行排列,并且包含一些信息的数据点序列。在R中,这些信息可以被储存在ts对象中。

假设我们有某个变量在过去几年中每年的观测值:

年份 观测值
2012 123
2013 39
2014 78
2015 52
2016 110

我们可以采用ts()函数将数据转化为ts类型:

y <- ts(c(123,39,78,52,110), start=2012)

假如我们只有年度数据,即每年只有一个观测值,此时只需要给出起始年份(或者截止年份)。

假如一个变量的观测频率大于每年一次,我们可以通过设置frequency参数来设置频率。例如,如果我们的月度数据已经被储存在了数值型向量z中,那么我们可以用如下的方式将其转换为时间序列:

y <- ts(z, start=2003, frequency=12)

在本书中,几乎所有的数据都已被储存在ts对象中。但是,如果需要处理自己收集的数据,首先应使用ts()函数将原始数据转化为ts对象。

时间序列的频率

“频率”是季节模式重复之前的观测值个数1。在R中使用ts()函数时,频率有以下值可供选择。

数据类型 频率
年度 1
季度 4
月度 12
52

实际上,一年并不是精准的52周。由于每四年是一个闰年,平均来看每年有 365.25/7 = 52.18 周。但大多数使用ts对象的函数都需要频率为整数。

如果观测频率大于每周一次,可以采用多种方法来处理频率。例如,日观测数据可能具有周季节性(frequency=7)或者具有年度季节性(frequency=365.25)。类似地,一个每分钟观测一次的数据可能具有时季节性(frequency=60),可能是日季节性(frequency=24x60=1440),还可能是周季节性(frequency=24x60x7=10080),甚至可能具有年度周期性(frequency=24x60x365.25=525960)。在我们处理时间序列之前,确定其频率至关重要。

在第 11 章中,我们将会处理多季节性时间序列数据类型,而不必仅局限于其中某一个频率。


  1. 这与物理学中或傅立叶分析中的频率定义相反,这里的频率在那里被称为“周期”。↩︎