贵州茅台(600519)股价预测——金融时序模型(ARIMA)

浏览: 2968

作者:我叫丶钱小钱     Python爱好者社区专栏作者

简书专栏:https://www.jianshu.com/u/7e54016a5a06


最近无论同事也好,朋友也好,都提到一只股票"贵州茅台",所以就拿来试水,接下来会介绍下简单介绍下该模型概念,以及python如何使用该模型。

基本概念

ARIMA模型的全称叫做自回归移动平均模型,全称是(ARIMA, Autoregressive Integrated Moving Average Model)。也记作ARIMA(p,d,q),是统计模型(statistic model)中最常见的一种用来进行时间序列预测的模型。

建模步骤

  1. 获取被观测系统时间序列数据;

  2. 对数据绘图,观测是否为平稳时间序列;对于非平稳时间序列要先进行d阶差分运算,化为平稳时间序列;

  3. 经过第二步处理,已经得到平稳时间序列。要对平稳时间序列分别求得其自相关系数ACF偏自相关系数PACF,通过对自相关图和偏自相关图的分析,得到最佳的阶层 p 和阶数 q

  4. 由以上得到的d、q、p,得到ARIMA模型。然后开始对得到的模型进行模型检验。


实战解析

原理大概清楚,实践却还是会有诸多问题。下面就通过Python语言贴出主要实现代码。

先上最终结果图,红色虚线为预测部分,实线为当前股价,预测趋势向上

# 文中使用到这些基础库: 
import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.arima_model import ARIMA
from statsmodels.graphics.tsaplots import plot_acf,plot_pacf

# 获得贵州茅台数据 
df_source = ts.get_hist_data('600519')

# 对收盘价进行排序
ser_close = df_source['close'].sort_index()

# 收盘曲线
ser_close.plot(kind='line', c='r', label='Close')

# 20日均线
ser_close.rolling(window=20).mean().plot(kind='line', c='b', ls='--', alpha=.8, label='M_20')

# 趋势不平稳,对数据进行一阶差分
df_close['diff1'] = df_close['close'].diff(1)
# 二阶差分
df_close['diff2'] = df_close['diff1'].diff(1)

# 日频数据太多,对数据做降频处理
df_close_resample = df_close.resample('W-MON').mean()

# AM与MA定阶,落在置信区间的前一个点位为模型阶数
acf_dif = plot_acf(train_dif1, lags=20)
pacf_dif = plot_pacf(train_dif1, lags=20)

# 把得到的参数放进模型中训练
model = ARIMA(stk_train_set['close'], order=(1, 1, 1), freq='W-MON')
arima_result = model.fit()


# 得到预测结果
pred_vals = arima_result.predict(startdate,enddate,dynamic=True, typ='levels')

ARIMA pre result

Python爱好者社区历史文章大合集

Python爱好者社区历史文章列表(每周append更新一次)

福利:文末扫码立刻关注公众号,“Python爱好者社区”,开始学习Python课程:

关注后在公众号内回复课程即可获取

小编的Python入门免费视频课程!!!

【最新免费微课】小编的Python快速上手matplotlib可视化库!!!

崔老师爬虫实战案例免费学习视频。

陈老师数据分析报告制作免费学习视频。

玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。


推荐 0
本文由 Python爱好者社区 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册