原标题:教程 | Prophet:教你如何用加法模型探索时间序列数据
选自towardsdatascience
作者:William Koehrsen
参与:Jane W、蒋思源
作为探索时间序列的第一步,Python 中的加法模型是必经之路。本文使用Facebook 开发的预测工具Prophet和金融数据集探索如何对时序数据进行建模与分析。加法模型可以快速构建与部署,并解释和预测不确定性,是我们进一步采用LSTM等深度模型进行建模的基础。
时间序列是我们日常生活中最常见的数据类型之一。金融产品价格、天气、家庭能源使用量、甚至体重都具有变化规律。几乎每个数据科学家都会在日常工作中遇到时间序列,学习如何对时间序列进行建模是一项重要的数据科学技能。用于分析和预测周期性数据时,一种强大而简单的方法是加法模型(additive model)。这个想法很简单:将时间序列表示为每日、每周、每季度和每年度等不同时间维度的组合模式,并加以整体趋势。你的能源使用量可能会在夏天上升,在冬天下降,但是随着你家庭能源使用效率的提高,能源使用量总体呈下降趋势。加法模型可以向我们展示数据的模式/趋势,并根据这些观察结果进行预测。
下图显示了一个时间序列的加法模型,它分解为整体趋势、年度趋势和每周趋势。
加法模型分解的例子
本文将介绍使用由 Facebook 开发的 Python Prophet 预测软件包 创建金融时间序列数据的加法模型。同时,我们也将介绍如何使用 Pandas 进行数据操作,以及使用 Quandl 库访问金融数据。本文中已经包含了主要代码,完整的代码请详见 GitHub 上 Jupyter Notebook 中的全面分析。本文将从头开始介绍时间序列建模的每个步骤。
完整代码:https://github.com/WillKoehrsen/Data-Analysis/tree/master/additive_models
免责声明:金融数据过去的表现并不能作为未来表现的指标,你不能使用这里的方法来致富!这里选择使用股票数据的原因是因为它表现出某种每日波动频率。如果你真的想变得富有,只要学习数据科学就够了!
获得金融数据
通常,一个数据科学的项目有大约 80%的时间花在获取和清洗数据上。本项目中,Quandl 库可以将这个工作量减少到 5%左右。Quandl 可以在命令行中通过 pip 命令安装:
pip install quandl
Quandl 是免费的,你可以每天提出 50 个访问请求而无需注册。如果注册一个免费的帐户,你会得到一个 API 密钥,允许无限制次数的请求。
首先,引入所需的库并获取数据。Quandl 中的数据几乎是无限的,但我想集中比较同行业中的两家公司,即特斯拉和通用汽车。特斯拉是一个引人注目的公司,不仅因为它是 111 年以来美国第一个成功的汽车创业公司,它也是 2017 年美国最值钱的汽车公司。它的竞争者是通用汽车,通用汽车最近已经通过制造一些非常酷的全电动车来展现拥抱未来汽车的迹象。
我们可以通过一句简单的 quandl 命令来获得两家公司的每日股票市值:
# quandl for financial data
import quandl
# pandas for data manipulation
import pandas as pd
quandl.ApiConfig.api_key = 'getyourownkey!'
# Retrieve TSLA data from Quandl
tesla = quandl.get('WIKI/TSLA')
# Retrieve the GM data from Quandl
gm = quandl.get('WIKI/GM')
gm.head(5)
GM(通用汽车)数据快照
Quandly 自动将数据放入 Pandas 数据框(DataFrame)中,DataFrame 是数据科