时间序列数据分析与Facebook Prophet应用

时间序列数据分析是指对随时间变化的数据集进行研究,以从中提取有价值的信息。例如,随着时间的推移,汽油价格、降雨量和股票价格等数据都属于时间序列数据。这种数据在商业案例中非常有用,比如预测一段时间内的销售量、网站访问者数量或用户数量。这些预测有助于优化组织的各个方面。时间序列分析中的数据点通常具有内在联系或一些不可见的结构,如趋势或季节性变化。在这些情况下,需要进行详细研究。观察到的数据可以用于多种目的,并可以根据需求进行建模。

时间序列数据的应用

什么是Facebook Prophet

可以使用以下命令安装Prophet:

pip install prophet

获取股市数据

以下是完整的代码链接,可以在博客末尾找到。

import numpy as np # 线性代数 import pandas as pd # 数据处理,CSV文件I/O(例如pd.read_csv) from prophet import Prophet # 导入一些重要的库,还有更多的库需要导入 import warnings warnings.filterwarnings('ignore') # 隐藏警告 import datetime as dt import pandas as pd pd.core.common.is_list_like = pd.api.types.is_list_like import pandas_datareader.data as web import numpy as np import matplotlib.pyplot as plt import seaborn as sns import matplotlib.dates as mdates # 现在所有重要的库都已导入 # 使用Yahoo Finance获取股票数据 start = dt.datetime(2010, 1, 1) end = dt.datetime(2016, 1, 1) df = web.DataReader("FB", 'yahoo', start, end) # 收集数据 # 以美元计价的价格

数据看起来像这样,可以通过查看了解更多关于这些股票术语的信息。对这里的日期和调整后的收盘价感兴趣。因为,日期将作为时间序列数据的索引,而调整后的收盘价将是时间序列数据。在数据中,股票价值被提及为收盘价和调整后的收盘价。收盘价是原始价格,即股票市场关闭前最后一笔交易的现金价值。调整后的收盘价考虑了可能影响股票价格的任何因素。

现在,让将日期作为一列。

df.reset_index(inplace=True) data=df[["Date","Adj Close"]] data=data.rename(columns={"Date": "ds", "Adj Close": "y"}) # 现在它适用于FB Prophet

现在,数据可以用于FB Prophet。现在数据的长度为911。将数据分为训练和测试部分。

df_train=data[0:500] df_test=data[500:911]

创建Prophet模型,并使用训练数据训练模型。

m = Prophet() m.fit(df_train)

现在,让做一些预测。

future = m.make_future_dataframe(periods=411) forecast = m.predict(future) forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()

生成的就是这样的数据框,包含时间索引和其他值。“ds”表示日期数据,“yhat”表示预测的时间序列数据。“yhat_lower”和“yhat_upper”表示值可能的下限和上限。

让绘制数据。

fig1 = m.plot(forecast)

图表看起来是这样的。有2014年6月之前的数据,之后的数据是由Prophet模型生成的。让绘制其他组件。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485