最先进的Prophet时间序列模型预测石油股票
一、时间序列是什么?
时间序列预测模型是能够根据先前观察到的值预测 未来值的模型。时间序列预测广泛用于非平稳数据。非平稳数据被称为数据,其统计特性(例如均值和标准差)不随时间恒定,而是这些指标随时间变化。
这些非平稳输入数据(用作这些模型的输入)通常称为时间序列。时间序列的一些示例包括随时间变化的温度值、随时间变化的股票价格、随时间变化的房屋价格等。因此,输入是一个信号(时间序列),由按时间顺序进行的观察定义。
本文使用的模型Prophet是Facebook开发的,传统上,大多数机器学习模型使用一些观察(样本/示例)作为输入特征,但数据中没有时间 维度。
二、预测模型
Prophet模型是可以捕捉时间序列数据中季节性的模型,能够捕捉每日、每周和每年的季节性以及假期 影响。
模型数学方程式为:
y(t) = g(t) + s(t) + h(t) + e(t)
- 1
其中:
- g(t) 代表趋势。Prophet 使用分段线性模型进行趋势预测。
- s(t) 表示周期性变化(每周、每月、每年)。
- h(t) 代表假期的影响(比如:假期影响企业)。
- e(t) 是误差项。
Prophet 模型拟合过程通常非常快(即使对于数千次观察),并且不需要任何数据预处理。它还处理缺失数据和异常值。
三、环境搭建
请看这篇文章:prophet安装详细过程
四、历史数据获取
本文来分析原油 ,数据为2022年一月一号到二月28号:原油数据
导入模块:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
- 1
- 2
- 3
读取数据:
data = pd.read_csv(r"C:\Users\hp\Desktop\spyder\you.csv")
data.head(5)
- 1
- 2
打印一些统计数据,例如上述特征(列)的平均值、中位数、最小值、最大值和标准差值
data.describe()
- 1
如下:
可见今年三个月平均价格是:86.895500,最高价格是95.800003
选出指标:
#仅选择重要特征,即日期和价格
data = data[["Date","Close"]] # 选择日期和价格
# 重命名特征:模型拟合需要这些名称
data = data.rename(columns = {"Date":"ds","Close":"y"}) #重命名数据集的列
data.head(5)
- 1
- 2
- 3
- 4
- 5
五、建立预测模型
我们不会将数据拆分为训练集和测试集,而是使用所有数据来拟合模型,然后让模型预测未来值:
from fbprophet import Prophet
m = Prophet(daily_seasonality = True) # the Prophet 模型
m.fit(data) # 使用所有数据拟合模型
- 1
- 2
- 3
如下:
六、绘制绘制预测未来10天
为什么只预测10天?因为太远了不靠谱,容易受各种外界影响:
future = m.make_future_dataframe(periods=10) #我们需要指定未来的天数
prediction = m.predict(future)
m.plot(prediction)
plt.title("Prediction of the yuanyou Stock Price using the Prophet")
plt.xlabel("Date")
plt.ylabel("Close Stock Price")
plt.show()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
该模型使用所有数据进行训练(黑点)并预测了未来10天。这预测结果似乎有点离大浦,希望不是真的!
七、绘制趋势、每周、季节性、每年和每日分量
如果您想查看预测组件,即趋势、每周、季节性、每年和每日组件:
m.plot_components(prediction)
plt.show()
- 1
- 2
分别如下:
还是这样的结果更加合理,因为只预测了10天,所以看一下天和周就行了,从第一张图看出:油在未来几天还在涨价。从第二张图可以看出,在星期五就会降价。
八、免责声明
虽然本数学模型似乎已经是最先进的股票预测模型,但是我无法保证你使用它能盈利赚钱,本次练习仅为个人练习使用,本博主技术不佳,还请指教。欢迎你与我一起qq群交流:428335755,非学习勿扰。
文章来源: chuanchuan.blog.csdn.net,作者:川川菜鸟,版权归原作者所有,如需转载,请联系作者。
原文链接:chuanchuan.blog.csdn.net/article/details/123183757
- 点赞
- 收藏
- 关注作者
评论(0)