商务统计学基础 | 第四章 时间序列模型
本书目前所涉及到的数据类型都是横截面数据(Cross-Sectional Data)。什么是横截面数据?简单来说,就是在基本相同的一个时间点上,面对不同的个体(基本上还是互相独立的个体)所采集的数据。面对横截面数据,人们常常做出的第一个假设(但不一定是完美的假设)是:不同数据之间是相互独立的。为什么可以这样假设?因为横截面数据中的不同数据来自不同个体,不同个体之间基本上是相互独立的。这就是统计学中常常假设独立性的原因。这个原因很实际但并不完美。那么与横截面数据对立的数据是什么呢?答:时间序列数据(Time Series Data)。什么是时间序列数据?一个典型的时间序列数据常常是关于某个特定个体(请注意:横截面数据是关于不同的个体),沿着时间轴长期多次的重复观测(请注意:一般而言横截面数据是在基本相同的时间点上的单次观测)。因此,时间序列的数据结构与横截面数据截然不同,所产生的数据规律也截然不同。如前所述,对横截面数据而言,不同数据之间常常假设是相互独立的,因为它们来自不同的独立个体。但是,时间序列数据就不同了。它们都来自于同一个体,但是在不同时间点上的多次观测。因此,时间序列数据天生就是大概率相关的,而该相关性被称为时间序列相关性。因此,对于时间序列数据而言,如何充分理解、把握并利用时间序列的相关性就成了核心问题。对于该核心问题的研究方法与横截面数据显然不同,因此需要一套相对独立的分析方法进行研究,而这就是本节的重要使命。为此需要首先跟大家分享一个重要的事实,那就是:时间序列数据比比皆是,而人们对于时间序列相关性的关心无处不在。为了说明这个问题,考虑以下几个案例。
案例1:GDP预测。
宏观经济指标是反应一个国家或地区经济情况的一种重要方式,与大众的就业、消费、生活水平等息息相关。如果能够对宏观经济指标进行预测,就能更好地把握国家或地区经济的现状与趋势,并因此作出科学合理的政策制定。在众多宏观经济指标中,GDP(国内生产总值)可能是最受关注的指标之一,它是一个国家或地区所有常住单位在一定时期内生产活动的最终成果。图4.4.1展示了根据《中国统计年鉴》整理得到的我国1978-2020年的年度GDP数据变化趋势,可见GDP持续上升。这就是一个典型的时间序列数据,它是关于一个特定个体(中国)的数据,而且是沿着时间轴(1978-2020年)长期多次的重复观测。对于该数据而言,不同样本之间显然是有相关性的。因为这都是关于我国GDP的数据。今年的GDP水平显然在很大程度上受去年GDP的影响,因为今年的GDP是在去年的GDP水平上按照一定增长率形成的。从数据分析的角度看,人们非常关心该数据的时间序列相关性。如果能把握该相关性,就能更好地预测来年的GDP,为相关决策提供基于统计分析的科学依据。
图4.4.1:我国1978-2020年的年度GDP数据变化趋势
案例2:股价预测。
“股市有风险,入市需谨慎”。股票市场中的风险就体现在股价的不确定性上,它每分每秒都可能会波动。投资者最希望的应该是能够预测未来的股价。如果能预知未来股价上涨,现在就应该做多;如果能预知未来下跌,现在就应该赶紧做空。图4.4.2展示了贵州茅台股票2021年每日收盘价的变化趋势,可见股价每天都在波动,且在6月至8月整体呈现下跌趋势,而8月底开始有所回升。这就是一个典型的时间序列数据,它是关于一个特定个体(贵州茅台股票)的数据,而且是沿着时间轴(2021年1月5日至2021年12月31日)长期多次重复的每日观测。每一天股市交易结束时的收盘价数据显然是有时间序列相关性的,因为当期股价是前一段时间的股价经历市场波动而形成的。从数据分析的角度看,人们很关心该数据时间序列相关性的强弱。如果能把握该相关性,就能更好地预测将来的股价,并形成投资策略,获得超额收益率。
图4.4.2:贵州茅台股票2021年每日收盘价变化趋势
案例3:气温预测。
寒来暑往,气温有规律地起伏,这对农业生产有重要的影响,因为不同的作物对气温有不同的要求。为此充满智慧的古人对气温变化规律进行了各种总结,指导农业生产的进步。例如二十四节气就是劳动人民在长期的农业生产实践中逐渐总结出的气候变化规律。现代化的农业生产也极大地依赖气温变化。为此国家气象局在全国各地建立地面气象站,实时观测气温并进行记录,密切关注气温变化规律。图4.4.3展示了北京市2018-2020年每个月的月平均气温的变化趋势。可见气温的变化具有较明显的周期性。每年气温大约在1月达到最低点,随后一路上升,大概在7月达到最高温度,然后又开始逐渐下降至次年1月,重回到气温最低点。这就是一个典型的时间序列数据,它是关于一个特定个体(北京市)的数据,而且是沿着时间轴(1995年1月1日至2019年12月31日)长期多次的重复观测。对于该数据而言,不同气温观测之间显然是有相关性的,而且表现出很强的季节性特征,夏季温度高,冬季温度低。一般情况下气温的变化具有连续性,今天的气温是昨天的气温经历波动得到的。从数据分析的角度讲,人们很关心这个数据的时间序列相关性。如果能把握该相关性,就能更好地预测将来的气温,从而指导相关的工农业生产。
图4.4.3:北京市1995-2019年日平均气温变化趋势
案例4:AHE预测。
在重症监护室中,病人可能会出现一种具有突发性和致命性的症状——急性低血压(Acute Hypotension Episodes,AHE)。AHE发生会使患者在短时间内昏厥、休克,而且可能造成器官的不可逆损伤,甚至可能导致死亡。根据相关数据库的数据统计,美国2008年12月ICU内发生过AHE的患者死亡率为37.8%,这远远高于未发生AHE的患者的死亡率(17.8%)。可见AHE会对患者的生命安全造成巨大威胁。目前ICU中的医疗设备只能测量患者当前的生命体征数据(比如心电图、血压和呼吸等),而无法直接预测可能发生的急症。如果能够根据患者的生命体征数据对未来血压进行预测,在急性低血压发生之前进行预警,就能够为医生争取更多的抢救时间,从而为挽救患者生命提供更大可能。图4.4.4展示了一项急性低血压预测研究中的平均动脉血压(Mean Arterial Pressure,MAP)示例数据。这就是一个典型的时间序列数据。因为它是关于一个特定个体(某患者)的数据,而且是沿着时间轴在一定时期内多次高频率的重复观测。对于该数据而言,不同观测之间显然是有相关性的,因为它们都来自同一位患者,而当前时刻的血压是由上一时刻的血压波动形成的。从数据分析的角度看,人们很关心这个数据的时间序列相关性。如果能把握该相关性,就能更好地预测未来的血压,在可能要出现急性低血压之前及时预警并因此开展救治。
图4.4.4:平均动脉血压示例数据
案例5:视频预测。
录像机是人类历史上一项伟大的发明,它为记录动态的影像提供了可能。录像机的基本工作原理是快速连续拍摄大量的照片,然后再连接在一起。录像机每秒拍摄多少张照片就是所谓的帧率,其单位为fps(Frames Per Second)。一般而言,当帧率达到15fps时,人眼所看到的就是基本连贯的画面了。帧率越高则视频越流畅。目前电影的标准帧率大概是24fps,电视的帧率一般是25fps,而监控摄像头的帧率一般在20-25fps之间。所以视频的本质就是关于图像的时间序列。图4.4.5展示了从一个视频中逐帧截取出的图像。该视频来自某矿山的地下交通行道的监控摄像头。监控的核心目的是保障工作人员在坐猴车进出矿山通道时符合必要的安全规范。例如:正确佩戴安全帽,不能携带过大物品,不能违规步行等。该视频每秒25帧图片,每一帧图片都是关于同一个行道的重复观测。因此视频也是一个典型的时间序列数据。更具体而言,它是关于一个特定个体(矿山行道)的数据,而且是沿着时间轴长期多次高频率的重复观测。对于该数据而言,不同帧图像的观测之间显然是有相关性的。因为下一帧图像是由上一帧变换而得到的。从数据分析的角度看,人们很关心这个数据的时间序列相关性。如果能把握该相关性,就有可能对视频下一帧要出现的画面进行预测,通过对比分析预测结果与实际观测之间的差异来判断视频中是否出现异常物体,为矿山安全生产提供自动化帮助。
图4.4.5:视频逐帧截取的图像
案例6:机器作诗。
中华文学历史悠久、源远流长,诗词歌赋,璀璨夺目。如果把诗词歌赋中的每个词看作一个观测,那么它们也构成一个时间序列数据。该数据有强烈的时间序列相关性。该相关性被前人总结为“对仗工整”。为此,清朝进士车万育曾著有《声律启蒙》一书,这是一本训练儿童或诗词初学者应对和掌握声韵格律的启蒙读物。这本书用朗朗上口的歌谣形式总结了诗词歌赋中常见的对仗方式:“云对雨,雪对风,晚照对晴空。来鸿对去燕,宿鸟对鸣虫”等。这就是古人通过长期的总结而提炼的关于诗词歌赋的时间序列相关性。如果能掌握并熟练使用该相关性,那么就有可能让机器学习该相关性来作诗。下面的三首诗就来自某深度学习课上三位同学的课堂作业。这是以“北大光华”为目标的藏头诗。如果事先没有剧透,聪明的你能看出这是机器写的诗吗?
图4.4.6:机器作诗
在充分理解时间序列数据以及时间序列相关性的重要性后,接下来探讨如何对时间序列数据做统计学分析。这里以狗熊会微信公众号(微信ID:CluBear)的日度粉丝数据为大家作一个展示。由于机缘巧合,狗熊会公众号于2013年11月11日(光棍节)上线。狗熊会的粉丝数从0开始,慢慢积累,截至2021年12月31日,粉丝总数已经达到175232。遗憾的是较早时间的粉丝数存在不准确的问题,因此无法使用,只能选择2017年1月1日至2021年12月31日的日度粉丝总数数据来作演示。该数据是对同一个个体(狗熊会公众号)沿时间轴形成的多次重复的日度观测,因此这是一个典型的时间序列数据,如图4.4.7中左图所示。从中你看到了什么?可以看到一个逐步上升的趋势。这一方面说明狗熊会的粉丝数量稳步增长,另一方面也说明该时间序列不是平稳的。而一个平稳的时间序列在数学上有着严格而不平凡的定义。直观而不严格地讲,平稳就是要求这个时间序列没有大起大落。而狗熊会公众号的粉数据就是大起的情况,因此并不平稳。时间序列数据的平稳性对于后续分析意义重大,因为不平稳的时间序列意味着数据分布在不同时间点是不稳定的,这让后续的统计学分析非常具有挑战性。请注意,这绝不意味着不平稳的时间序列数据不能分析,事实上不平稳时间序列的统计学分析是一个重要的研究前沿问题,有很多学者关注。但是作为入门的学习教材,还是先从最重要也最基础的平稳数据开始。狗熊会的粉丝数据并不平稳,怎么办呢?有办法!那就是考虑狗熊会粉丝数的日度粉丝数变化量。为了减少数据的波动性,还对日度粉丝数变化量作了一个对数变换,结果如图4.4.7右图所示。你看,这是不是平稳了很多?对于这样一个平稳的数据计算例如样本均值、样本方差这样的统计量,可能更有意义。
图4.4.7:粉丝数和对数粉丝数变化量的时间序列图
接下来以每年的365天(或366天)为横轴,以对数粉丝数变化量为纵轴,对每一年的数据单独地作时间序列图,如图4.4.8所示。聪明的你可能发现了:对数粉丝数变化量的变化似乎是有周期性的。具体而言,每一年内对数粉丝数变化量的趋势很相似,都是1月至3月在波动中逐渐上升,3月达到最高,随后在持续波动中慢慢下降,然后在8月底、9月初又上升至顶峰,之后有所下降并持续波动。这个规律是非常好理解的。因为狗熊会公众号的粉丝主体是在校大学生,尤其是统计学相关专业的大学生。每年的3月以及8月底、9月初是全国各大高校的开学季。承蒙广大老师和同学的热爱与支持,在这个时间段,很多老师同学会把狗熊会公众号推荐给更多的新同学。因此每年的这两个时间段粉丝增长量相对最多,完全符合预期。
用表示在第t日采集的对数粉丝数变化量,那么上面的分析说明了(当期数据)与(去年同期数据)有着非常相似的规律。这给时间序列带来了很强的年度季节效应。因为有此效应的存在,每年开学季(2-3月,8-9月)观测到的数据与其他时间点上观测到的数据非常不同。这说明它们服从不同的概率分布。很遗憾这并不是一个特别好的消息。因为面对不同分布(尤其是均值不同)的随机变量,冒然计算各种统计量(例如样本均值)的理论意义与实际意义似乎非常模糊。因此很希望对该数据作进一步变换,以降低甚至消除该季节性特征。请问怎么办?这里可能有很多种办法。一个特别简单而且值得尝试的办法就是作差分,而且是365期的差分,也就是用减去。具体而言,定义。对差分后得到的结果分年份再次作时间序列图,如图4.4.9所示,数据的年度季节效应似乎已经得到了极大的改善。例如每年开学季数据取值较高的现象已经基本消失,因此数据似乎更加接近白噪声。所谓白噪声就是没有时间序列相关性的数据。
图4.4.9:作365期差分后对数粉丝数变化量的年度变化规律
进行365期差分得到后,年度季节效应已得到了一定改善。接下来考虑如何进一步量化时间序列相关性。什么是时间序列相关性?就是当期的和上一期的、上上期的、甚至上上上期的都有可能具有相关性。为此,可以分别计算一下和它们之间的相关系数。这个系数在统计学上被定义为自相关系数(Autocorrelation Coefficient)。这其实就是普通的相关系数,但是基于时间序列数据计算而得。而这些时间序列数据又都是来自同一个体(狗熊会公众号),因此称该相关系数为自相关系数。给定一个滞后期k,那么k阶的自相关系数就可以看作是一个关于k的函数,被称为自相关函数(Autocorrelation Coefficient Function,ACF),具体定义如下:
。
其中是关于的样本均值,n表示总观测时长。然后对这个时间序列分别计算不同阶数的ACF值,作图如图4.4.10所示。虚线的含义是若ACF值落在虚线外则说明ACF值显著不为0。可以看到有大量的ACF取值较大而且为正,而且落在虚线以外,这说明时间序列数据中仍然存在强烈而复杂的时间序列相关性。值得注意的是,其中ACF(1)取值最大,也就是说和之间的相关性最为强烈。这提示我们也许可以考虑用作为一个X变量而作为Y变量,从而形成一个线性回归模型:。从操作层面上讲,这就是一个以为Y变量,而以为X变量的线性回归模型。但因为这里的X变量与Y变量都来自狗熊会公众号这同一个个体,因此这是一个自己与自己回归的模型,称其为自回归模型(Auto-Regression Model,AR Model)。如果这个模型充分表达了数据中的时间序列特征,我们会期待残差项为一个白噪声过程。但这是不是事实呢?这需要检验。
图4.4.10:的ACF图
对于该模型,可以与前面的线性回归模型一样,通过最小二乘法获得关于的参数估计,记为。然后形成对的估计为:。接下来对序列再计算ACF值,如图4.4.11所示。首先看到的是落在虚线外的ACF值与图4.4.10相比少了很多。这说明对作的自回归模型确实非常成功地捕捉到很大一部分关于的时间序列相关性。因此分离出来的残差的时间序列相关性得到很大的降低,所以向着白噪声的方向又前进了一大步。但是,仔细观察图4.4.11可以从中发现的ACF图并不完美,其中ACF(7)为正而且取值较大,这说明仍有7阶的自相关性没有被模型提取出来。7天正好是一周,这启示我们:是否还存在着周度的季节效应?当天是星期几,是否也会对有影响?
图4.4.11:第一个模型中的ACF值
为此可以以每周七天的星期几为横轴,对的数据分组,作分组箱线图,如图4.4.12所示。可以发现星期几对于的确有明显的影响。在每个星期内,在周一是一个较高的起点,因为这是每周的开始。然后逐渐下降,在周五或周六达到最低点。因为这是周末,教学活动相对较少。之后又开始上升,在周日再次上升到一个比较高的值。这个规律也并不意外。因为狗熊会的受众大部分是高校的老师或同学,因此他们的行为规律与教学安排基本规律保持一致,而教学安排受星期几影响很大。
图4.4.12:在每周七天的分组箱线图
既然星期几对于有明显影响,那么如何控制星期几效应呢?一个可能的办法是对再作一个7阶差分得到,然后再对作进一步的模型尝试。但遗憾的是这次尝试并不成功,星期几效应并未得到有效控制。试错的过程就不在此展示了。但是需要一提的是真实的数据分析就是这样一个多次试错的过程,从不完美,但总能改进。接下来转向另一个方法,那就是考虑将星期几也作为X变量加入到模型中。具体而言,可以将星期几处理成6个哑变量:、、、、、,分别代表是否是周一、周二、周三、周四、周五和周六。将6个哑变量加入模型中,得到新的模型为:
对于该模型仍然可以用最小二乘法估计,得到关于的参数估计,记为。计算残差再次绘制的ACF如图4.4.13所示。可见虽然ACF(7)仍然在蓝色虚线外,但取值变小了很多,这说明此时分离出来的残差已经接近白噪声了。整体而言,图4.4.13的ACF图并不完美,但已经足够令人满意,这也许已经是一个实际中可以接受的模型了。图4.4.13:第二个模型中的ACF值
接下来将该模型的参数估计结果呈现在表4.4.1中。首先可以看到的是判决系数为18.51%,这意味着Y的不确定性中有18.51%可以被X变量解释,这里的X变量只有两个,一个是上期观测,另一个是星期几(Week)。接下来对回归系数进行解读。首先的回归系数估计为0.361,p值小于0.001,这说明确实存在着显著的滞后一期效应,而且是正相关的效应。在其他因素不变时,上一期的差分对数粉丝数变化量每增加1单位,当期的差分对数粉丝数变化量就平均增加0.361单位。然后看、、…的系数估计结果。六个哑变量的p值都小于0.05,这说明六个哑变量都在不同的显著性水平下与相关,确实存在着显著的周度季节效应。只有的系数估计为正,而其他都为负。这说明在其他因素相同的情况下,以星期日为基准,星期一的比星期日高,而星期二至星期六的都比星期日低。
表4.4.1:模型参数估计结果
在给定所有参数估计的情况下,就可以根据当前数据对下一日的对数粉丝数变化量进行预测,详细过程如下。假设给定历史数据,希望预测。如前文所述,为了消除年度季节效应,构造了,其中(这里隐含的要求是)。然后根据表4.4.1中的参数估计结果对作估计如下:
然后再求得关于的预测值。接下来作一个具体展示。目前有2017年1月1日(1时刻)至2021年12月31日(T时刻)的数据,希望预测2022年1月1日(T+1时刻)的对数粉丝变化量。为此计算了的值,即。同时,2022年1月1日是星期六,因此而其余。代入公式(4.4.1)得到:再得到。而真实的,预测误差为,着实不小。聪明的你能帮忙想想如何改进吗?总结一下,本节用狗熊会粉丝日度增长数据为大家展示了一个典型的时间序列数据预测分析的基本思路,并介绍了ACF这个重要的工具以及各种常见的处理季节效应的方法。显然这样的介绍只能是入门级别的,本节无法覆盖更多更深入的时间序列模型,也无法更深入地讨论一些非常重要的理论概念(例如:平稳性)。但希望能为聪明的你开一扇窗,让你看到时间序列这个有趣的世界。
往期推荐