时间序列在现代生活中无处不在,它也是数据分析的重要对象。本书介绍时间序列分析的实用技巧,展示如何结合机器学习方法和传统的统计方法来分析各类时间序列数据,并提供Python示例和R示例。本书共有17章,首先概览时间序列分析的历史,然后介绍数据的获取、清洗、模拟和存储,接着关注可用于时间序列分析的建模技术,最后探讨时间序列分析在几个常见领域中的应用。
本书适合与时间序列打交道的数据分析师、数据工程师、数据科学家及其他相关从业人员阅读。
天气、股票、心跳都会产生时间序列数据,物联网、数字化医疗和智慧城市的兴起更是产生了大量的时间序列数据。随着数据的规模快速增长,应用机器学习和统计方法进行时间序列分析的做法越来越普遍,也越来越重要。
本书从实战角度介绍时间序列分析中的创新技术和实际用例,帮助你结合使用传统的统计方法和先进的机器学习技术来解决时间序列分析中的常见问题。由于Python和R都是时间序列分析常用的语言,因此本书兼顾这两种语言并对时间序列进行系统的阐释,可以让数据分析师、数据工程师和其他与数据打交道的读者快速上手。
* 发现并整理时间序列数据
* 针对时间序列进行探索性数据分析
* 模拟时间序列
* 存储时间序列
* 为时间序列生成并选择特征
* 测量误差
* 使用机器学习和深度学习分析时间序列
* 评估模型的精度和性能
【作者简介】
艾琳·尼尔森(Aileen Nielsen)是软件工程师和数据分析师。她毕业于耶鲁大学和普林斯顿大学,从事过多个领域的时间序列研究工作,包括医疗行业、物理学研究和金融行业等。她目前专注于研发用于预测的神经网络。
【译者简介】
王祎,拥有6年软件开发、数据与人工智能领域方面的工作经验,现任ThoughtWorks机器学习工程师。为金融、汽车、药企等客户提供过专业服务,在利用时间序列进行预测、数据分析、数据可视化等方面拥有丰富的经验。
冯英睿,在数据与人工智能领域有14年工作经验,现任ThoughtWorks数据科学家。为银行、电信、汽车和制造业等客户提供过专业服务,在利用时间序列进行预测、故障诊断、异常检测和预测性维护等方面拥有丰富的经验。
前言 xi
第 1章 时间序列:概述和简史 1
1.1 时间序列在历史上的各种应用 1
1.1.1 医学中的时间序列问题 2
1.1.2 气象预测 5
1.1.3 经济增长预测 5
1.1.4 天文学 7
1.2 时间序列分析的兴起 7
1.3 统计时间序列分析的起源 8
1.4 时间序列分析在机器学习领域的起源 9
1.5 更多资源 10
第 2章 时间序列的发现与整理 11
2.1 时间序列数据何处寻 11
2.1.1 准备好的数据集 12
2.1.2 “找到的时间序列” 16
2.2 将表集合改造成时间序列数据集合 17
2.2.1 示例:组装时间序列数据集合 18
2.2.2 构造“找到的时间序列” 23
2.3 时间戳问题 25
2.3.1 谁的时间戳 25
2.3.2 推测时间戳以理解数据 26
2.3.3 什么是有意义的时间尺度 27
2.4 清理数据 28
2.4.1 处理数据缺失 28
2.4.2 上采样和下采样 38
2.4.3 数据平滑 40
2.4.4 季节性数据 44
2.4.5 时区 47
2.4.6 预防前瞻 50
2.5 更多资源 51
第3 章 针对时间序列的探索性数据分析 53
3.1 常用方法 53
3.1.1 折线图 54
3.1.2 直方图 56
3.1.3 散点图 57
3.2 探索时间序列数据的方法 59
3.2.1 理解平稳性 60
3.2.2 应用窗口函数 64
3.2.3 理解和识别自相关性 67
3.2.4 伪相关性 76
3.3 一些有用的可视化方式 78
3.3.1 一维可视化 78
3.3.2 二维可视化 79
3.3.3 三维可视化 86
3.4 更多资源 89
第4 章 模拟时间序列 90
4.1 模拟时间序列有何特别之处 91
4.2 代码模拟 91
4.2.1 自己动手 92
4.2.2 构建一个自行运转的模拟世界 97
4.2.3 物理模拟 102
4.3 写在最后 107
4.3.1 统计模拟 108
4.3.2 深度学习模拟 108
4.4 更多资源 108
第5 章 存储时间序列 109
5.1 定义需求 110
5.2 数据库解决方案 113
5.2.1 SQL与NoSQL 113
5.2.2 流行的时间序列数据库 116
5.3 文件解决方案 119
5.3.1 NumPy 119
5.3.2 Pandas 120
5.3.3 R 语言中的标准格式 120
5.3.4 Xarray 120
5.4 更多资源 121
第6 章 时间序列的统计模型 123
6.1 为什么不使用线性回归 123
6.2 时间序列的统计方法 125
6.2.1 自回归模型 125
6.2.2 移动平均模型 136
6.2.3 差分自回归移动平均模型 140
6.2.4 向量自回归模型 149
6.2.5 多样的统计模型 152
6.3 时间序列统计模型的优缺点 153
6.4 更多资源 154
第7 章 时间序列的状态空间模型 155
7.1 状态空间模型的优缺点 156
7.2 卡尔曼滤波器 157
7.2.1 概述 157
7.2.2 为卡尔曼滤波器编码 159
7.3 隐马尔可夫模型 163
7.3.1 模型的工作原理 163
7.3.2 如何拟合模型 165
7.3.3 通过编码实现拟合 167
7.4 贝叶斯结构时间序列 171
7.5 更多资源 176
第8 章 时间序列的特征生成与选择 178
8.1 入门示例 179
8.2 生成特征时需要考虑什么 180
8.2.1 时间序列的性质 180
8.2.2 领域知识 181
8.2.3 外部考虑因素 181
8.3 何处寻找特征灵感 181
8.3.1 开源时间序列特征生成库 182
8.3.2 特定领域的特征示例 185
8.4 生成特征后如何进行选择 188
8.5 结语 190
8.6 更多资源 191
第9 章 针对时间序列的机器学习 193
9.1 时间序列分类 194
9.1.1 生成并选择特征 194
9.1.2 决策树方法 197
9.2 聚类 203
9.2.1 由数据生成特征 204
9.2.2 具有时间感知能力的距离度量指标 210
9.2.3 聚类代码 213
9.3 更多资源 215
第 10 章 针对时间序列的深度学习 217
10.1 深度学习概念 219
10.2 通过编程实现神经网络 220
10.3 构建训练流程 224
10.3.1 检查数据集 224
10.3.2 训练流程的步骤 227
10.4 前馈网络 240
10.4.1 一个简单示例 241
10.4.2 运用注意力机制使前馈网络更具时间意识 243
10.5 卷积神经网络 245
10.5.1 一个简单的卷积模型 246
10.5.2 其他可用的卷积模型 248
10.6 循环神经网络 250
10.6.1 继续研究用电量示例 252
10.6.2 创新:自编码器 253
10.7 组合架构 254
10.8 结语 258
10.9 更多资源 258
第 11 章 测量误差 260
11.1 基础知识:如何检验预测结果 261
11.2 预测结果何时才算足够好 263
11.3 通过模拟估计模型中的不确定性 265
11.4 预测多步 268
11.4.1 直接拟合感兴趣的范围 268
11.4.2 针对较远时间步的递归方法 268
11.4.3 对时间序列应用多任务学习 268
11.5 模型验证陷阱 269
11.6 更多资源 269
第 12 章 拟合及使用时间序列模型时的性能考量 271
12.1 使用为一般用例构建的工具 272
12.1.1 用于横截面数据的模型不在样本间“共享”数据 272
12.1.2 没有预先计算的模型造成数据测量与预测间的非必要延迟 273
12.2 数据存储格式的优缺点 274
12.2.1 以二进制格式存储数据 274
12.2.2 以能够在数据上“滑动”的方式预处理 275
12.3 为适应性能考量而修改分析 275
12.3.1 使用所有数据不一定更好 275
12.3.2 复杂的模型并不总是表现得更好 276
12.3.3 简要介绍可用的高性能工具 276
12.4 更多资源 277
第 13 章 医疗保健应用 278
13.1 流感预测 278
13.1.1 案例研究:发生在大都市的流感疫情 278
13.1.2 流感预测领域的最新技术 291
13.2 血糖水平预测 292
13.2.1 探索和清洗数据 293
13.2.2 生成特征 297
13.2.3 拟合模型 303
13.3 更多资源 307
第 14 章 金融应用 308
14.1 获取并探索金融数据 308
14.2 金融数据预处理与深度学习 314
14.2.1 由原始数据生成新指标 314
14.2.2 转换数据并避免前瞻 315
14.2.3 为神经网络格式化数据 317
14.3 构建并训练循环神经网络 319
14.4 更多资源 325
第 15 章 政务应用 326
15.1 获取政府数据 327
15.2 探索时间序列大数据 328
15.2.1 在遍历数据时进行上采样并聚合 331
15.2.2 对数据排序 331
15.3 时间序列数据的在线统计分析 335
15.3.1 剩余问题 343
15.3.2 后续改进 344
15.4 更多资源 344
第 16 章 时间序列工具包 345
16.1 规模化预测 345
16.1.1 谷歌内部的工业级预测框架 346
16.1.2 Facebook的Prophet开源工具包 347
16.2 异常检测 351
16.3 其他时间序列工具包 353
16.4 更多资源 354
第 17 章 关于预测的预测 355
17.1 预测即服务 355
17.2 深度学习提高了概率 356
17.3 重要性正由统计方法向机器学习方法转移 356
17.4 更深入地结合统计方法和机器学习方法 357
17.5 涉及日常生活的更多预测 357