← 返回目录

Chapter 06: 时间数据

Time Series - 具有时间戳的数据序列

时间序列分析趋势与季节性缺失值处理数据讲故事
⏰

时间,数据分析的第四维度

时间序列(Time Series)是按时间顺序排列的数据点序列。与鸢尾花数据不同,时间序列数据的先后顺序不能随意打乱——时间的箭头只向前。

从股票价格到气温变化,从销售数据到失业率,时间序列无处不在。本章将带你掌握时间序列数据的分析方法,包括趋势识别、季节性分解、缺失值处理,以及如何用数据讲述动人的故事。

🎯本章学习目标

1
理解时间序列特性
时间戳、顺序性、归一化与收益率计算
2
掌握缺失值处理
向前填充、向后填充、线性插值的选择
3
发现趋势与季节性
同比、环比分析,箱型图聚合
4
时间序列分解
拆解趋势、季节、循环和随机成分
✦
6.1

时间序列数据

股票价格、收益率与归一化

时间序列是某一特征在不同时间点上顺序观察得到的序列。时间戳(timestamp)可以精确到年份、月份、日期,甚至是小时、分、秒。本节以2020年度9支股票的每日收盘价数据为例,介绍时间序列数据的基本概念。

💰原始价格

✓ 直观展示股价水平
✓ 容易理解涨跌幅度
✗ 不同股票难以对比

📊归一化价格

✓ 统一起点便于对比
✓ 清晰展示相对涨跌
✓ 投资组合分析必备

📈收益率

✓ 金融分析标准指标
✓ 对数收益率可加性
✓ 便于统计建模
✦
6.2

处理时间序列缺失值

向前、向后、线性插值方法对比

时间序列数据在分析建模之前,需要注意缺失值处理。由于时间序列数据是顺序观察的,在处理缺失值时有其特殊性。除了均值、众数、中位数等一般方法,还可以采用向前填充(ffill)、向后填充(bfill)和线性插值等时间序列专用方法。

💡
方法选择建议:
• 无趋势数据:向前填充或向后填充,假设值短期不变
• 有趋势数据:线性插值,根据前后值估计中间值
• 季节性数据:先进行季节调整,再插值填充
• 重要数据:可采用更复杂的方法(样条插值、ARIMA预测)
✦
6.3

从时间数据中发现趋势

失业率数据的多维度分析

本节利用美国失业率数据介绍如何从时间数据中发现趋势。数据从1950年开始到2021年,每月一个数据点。通过同比(Year-over-Year)、环比(Month-over-Month)以及箱型图聚合,我们可以从不同角度观察失业率的变化规律。

📅同比与环比

  • •同比:与历史同期比较,消除季节性影响
  • •环比:与上一时期比较,发现短期变化
  • •应用:经济指标分析、零售销售分析

📦箱型图聚合

•年度聚合:观察长期趋势和波动
•月份聚合:发现季节性模式
•离群值:识别异常时期(如2008、2020)
✦
6.4

时间序列分解

拆解趋势、季节、循环和随机成分

时间序列通常包含多个成分:趋势项T(t)表征长期变化方向,季节项S(t)表征固定周期的重复模式,循环项C(t)表征长周期波动,随机项I(t)表征不规则成分。根据成分的组合方式,可以分为加法模型和乘法模型。

🔍 季节调整的重要性

为什么要季节调整?

  • • 消除季节性干扰,更清晰地观察趋势
  • • 便于比较不同时期的数据
  • • 提高预测模型的准确性
  • • 发现真实的经济或业务变化

实现工具

• Python:statsmodels.tsa.seasonal_decompose()
• R:decompose(), stl()
• 进阶:X11, X13-ARIMA-SEATS
• 参考《统计至简》第17章了解更多
✦
6.5

时间数据讲故事

用Gapminder数据探索世界发展

本节采用Plotly提供的世界国家地区人口、预期寿命、人均GDP数据,展示如何用数据讲述动人的故事。通过交互式可视化,我们可以观察不同国家在经济发展与健康水平上的演变轨迹,发现发展模式的多样性。

5.1 全球人口分析

5.2 经济发展与健康水平关系

📖 Gapminder与Hans Rosling

数据讲故事的艺术

• Hans Rosling教授通过动态气泡图讲述全球发展故事
• 将复杂的多维数据转化为直观的可视化
• 打破人们对世界发展的刻板印象
• TED演讲"你对世界的认知可能是错的"

可视化设计要点

• 多维度:X轴、Y轴、大小、颜色、动画
• 交互性:让观众主动探索数据
• 叙事性:引导观众发现关键洞察
• 工具:Plotly, D3.js, Observable
✦

🎯本章核心要点

📚理论知识

  • •时间序列的顺序性:数据点不能随意打乱
  • •三种收益率:PnL、简单收益率、对数收益率
  • •四大成分:趋势T、季节S、循环C、随机I
  • •加法vs乘法:根据季节性波动特征选择

🛠️实践技能

  • •归一化处理:消除量纲差异,便于对比
  • •缺失值插值:ffill、bfill、线性插值
  • •趋势发现:同比、环比、箱型图聚合
  • •序列分解:seasonal_decompose()函数
🚀 进阶学习路径
• 统计建模:ARIMA、指数平滑、状态空间模型
• 机器学习:RNN、LSTM、Transformer用于时间序列预测
• 频域分析:傅里叶变换、功率谱密度
• 因果推断:Granger因果检验、向量自回归VAR
• 参考书籍:《统计至简》第17章(KDE)、第23章(马氏距离)