2.1 ts
对象
时间序列是一组按照时间发生先后顺序进行排列,并且包含一些信息的数据点序列。在R中,这些信息可以被储存在ts
对象中。
假设我们有某个变量在过去几年中每年的观测值:
年份 | 观测值 |
---|---|
2012 | 123 |
2013 | 39 |
2014 | 78 |
2015 | 52 |
2016 | 110 |
我们可以采用ts()
函数将数据转化为ts
类型:
<- ts(c(123,39,78,52,110), start=2012) y
假如我们只有年度数据,即每年只有一个观测值,此时只需要给出起始年份(或者截止年份)。
假如一个变量的观测频率大于每年一次,我们可以通过设置frequency
参数来设置频率。例如,如果我们的月度数据已经被储存在了数值型向量z
中,那么我们可以用如下的方式将其转换为时间序列:
<- ts(z, start=2003, frequency=12) y
在本书中,几乎所有的数据都已被储存在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 章中,我们将会处理多季节性时间序列数据类型,而不必仅局限于其中某一个频率。
这与物理学中或傅立叶分析中的频率定义相反,这里的频率在那里被称为“周期”。↩︎