前
言
PREF
ACE
现有时间序列教材的一些特点
一些教材比较着重于数学理论和推导
首先, 这些书的作者多为数学专业出身, 习惯于数学的严格性和精确而又漂亮的数学
结论的推导. 因此, 这些书适用于那些愿意为时间序列的数学理论研究做贡献的读者.
其次, 这些书中一元时间序列往往占绝大部分篇幅, 而且包含在各种数学假定下的定
理和结果. 这可能是因为一元时间序列的数学描述确实很漂亮, 很多结果都能够以比较简
洁的数学语言表达出来. 而多元时间序列则很不一样, 在一元情况下很漂亮的结果, 在多元
情况下就完全不同了. 在数学上, 烦琐的表达是不被人们所喜爱的, 因此, 多元时间序列很
少在数学味道很浓的教科书中展示. 本书提供了多元时间序列的一些分析视角, 通过案例
的形式给出, 供读者参考.
再次, 这些书对于真实时间序列的数据分析强调得不够. 由于其主要目的不是分析实
际数据, 因此实际数据往往很难满足这些书上的数学假定, 因此讨论实际应用并不是这些
书的重点.
还有一些教材强调应用, 但缺乏必要的数学系统性
这些书的作者大多不是数学专业出身, 他们在书中也列举了一些数学假定和结论, 但
是往往没有花篇幅去完善和系统化, 更没有用简明扼要的语言去做解释, 使得无论是数学
专业还是非数学专业背景的读者均不能很好地理解所用模型背后的机理.
本书特色
内容全面, 理论与实践相结合
本书力图用简单通俗的语言阐述基本概念和计算, 并尽量通过案例来讲述各种时间序
IV 应用时间序列分析: 基于 R 和 Python
列方法, 使得非数学专业背景的本科生、研究生、教师和技术人员较容易理解, 同时也把有
关的数学理论用简单完整的方式阐述, 以供读者快速掌握核心理论.
R 和 Python 两种软件同时使用一
本书中绝大部分数据同时利用 R 和 Python 两种软件进行了分析, 在传统时序的章节,
采用 R 软件进行案例讲解,Python 代码放在每章的后面. 在新增的深度学习章节, 相关案
例实现使用了 Python 软件,Python 软件的深度学习架构更便捷高效!
R 软件是世界上使用者最多的数据分析软件, 受到统计界的大力支持, 发展很快, 每天
都有许多新的程序包被加入, 到 2017 年初,R 的统计程序包数量已经超过一万个, 而 2009
年底还不到一千个. 新的统计方法大都以 R 程序包的形式首先展现在世人面前, 这是任何
商业软件所望尘莫及的. 本书 (除了第 10 章) 用免费、公开、透明的开源编程软件 R, 而且
提供全部代码. 希望读者能够尽快学会如何使用 R 软件解决自己的实际问题.
此外, 对于部分章 (除了第 4、6、9、11 章), 也提供了案例的 Python 软件实现, 放在每
章的最后. 本书的第 10 章讲解深度学习在时间序列中的应用, 这部分知识较新, 大多数教
材并未涉及. 考虑到 Python 软件进行深度学习建模的方便性, 我们利用该软件对第 10 章
的案例数据进行了处理. 希望通过 Python 软件的引入, 为更多的读者提供软件使用方面的
便利.
本书的实际案例所用数据和代码都可以通过扫描二维码二在机械工业出版社的网站获
取. 希望通过对这些来自不同领域的数据的分析能为读者提供一些数据分析的思路.
本书内容架构
第 1 章通过几个案例引入时间序列, 并对本书中的软件工具 R 和 Python 进行了简要
介绍.
第 2 章介绍一元时间序列的基本概念和 ARIMA 模型, 这些概念和模型对于理解后面
的内容很重要. 但是, 如果第 2 章的基本内容读者已经知道, 或者大概了解, 就不用在这一
章花太多工夫, 完全可以等到需要时再来査阅. 第 2 章的习题也主要是与熟悉基本概念有
关的.
第 3 章应用第 2 章的知识对实际数据进行分析, 得到各种拟合及预测结果. 此外, 第 3
章还介绍了 ARIMA 模型之外的其他模型及相关的拟合及预测等数据分析方法. 第 3 章的
习题提供了一些实际数据, 希望读者创造性地模仿该章的例子来做一元时间序列数据分析.
一 本书中软件生成图中的英文没有翻译为中文, 以便与代码输出保持一致.编辑注
二 本书所用数据和代码可以通过扫描二维码 获得.编辑注
前言 V
第 4 章是关于状态空间模型和 Kalman 滤波的, 涉及一些计算方法. 很多一元时间序
列的分析程序虽然没有明确说明, 但都潜在地用到了第 4 章的方法. 比如, 第 8 章会用到
多元状态空间模型. 因此, 第 4 章可以跳过去, 等到需要时再来参阅. 本书没有提供关于第
4 章内容的习题.
第 5~7 章主要介绍计量经济学中常用的单位根检验、研究长期记忆过程的 ARFIMA
模型及研究时间序列波动性的 GARCH 模型. 由于这三章主要描述有关的数学概念和模型
本身, 因此没有安排习题. 第 6 章根据情况可以跳过. 第 5 章和第 7 章内容的主要应用体现
在第 8 章中.
第 8 章主要介绍多元时间序列的基本概念和模型. 该章最后是对实际多元时间序列数
据的拟合和预测, 涉及前面各章的很多概念. 在习题中提供了许多实际数据供读者练习处
理多元时间序列数据.
第 9 章介绍了关于非线性时间序列的一些模型. 本章没有提供习题.
第 10 章用深度学习方法对具有时序特征的序列进行建模. 深度学习在金融高频时间
序列、带有时间标签的文本数据流等领域都有很好的表现. 该章介绍了 BP 神经网络、卷
积神经网络 (CNN)、循环神经网络 (RNN)、长短期记忆模型 (LSTM)、Transformer、Bert
模型等, 并提供了金融时间序列、文本序列等案例. 该章力求通过理论讲解和案例分析相
结合的方式呈现这些内容, 让读者边学边练. 本章没有习题, 建议读者将重点放在案例的分
析和实践上. 该章的内容可以根据教学实际情况选讲或自学.
第 11 章简单介绍谱分析. 第 2~10 章主要是从时间域角度分析时间序列, 主要基于时
间序列自相关函数的性质和稳定性. 谱分析则从另一个角度来研究时间序列, 这个角度我
们称之为频率域角度, 频率域分析把时间序列看成多组正弦曲线的叠加过程. 该章介绍谱
分析的基本思路, 并将时间域和频率域分析的关联性和一致性建立起来. 本章不涉及具体
数据的分析, 也没有习题. 这一章也可以仅作参考之用.
致谢
非常感谢云南财经大学谢佳春老师对本书初稿提出的很好的意见, 这些意见帮助我们
提升了本书的质量. 也非常感谢中央财经大学的王秦煜、林洛伊、段懿宸、刘岳龙同学在
本书形成过程中提供的校对和整理工作. 欢迎读者提出宝贵意见, 使得本书在再版时得以
改进. 我曾经在美国加州大学伯克利分校统计系本科时间序列课程 (STAT153) 及密歇根
大学安娜堡统计系的研究生时间序列课程 (STAT531) 上用过本书的内容.
吴喜之