码迷,mamicode.com
首页 > 其他好文 > 详细

股票预测

时间:2018-03-27 12:24:49      阅读:471      评论:0      收藏:0      [点我收藏+]

标签:gpl   pre   mat   预测   时间   from   drop   show   div   

  利用ARIMA模型来进行时间序列的预测,数据集是雅虎财经的离线股票数据

  

import pandas as pd
import pandas_datareader
import datetime
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib.pylab import style
from statsmodels.tsa.arima_model import ARIMA
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

style.use(ggplot)
plt.rcParams[font.sans-serif] = [SimHei]#用来正常显示中文标签
plt.rcParams[axes.unicode_minus] = False#用来正常显示负号

stock = pd.read_csv(D:/T10yr.csv, index_col=0, parse_dates=[0])
# print(stock.head())

stock_week = stock[Close].resample(W-MON).mean()
stock_train = stock_week[2000 : 2012]
# print(stock_train)

stock_train.plot(figsize=(12, 8))
plt.legend(bbox_to_anchor=(1.25, 0.5))
plt.title(Stock Close)
sns.despine()# 删除上方和右方的边框
# plt.show()

#数据差异过大,进行一阶差分
stock_diff = stock_train.diff()
stock_diff = stock_diff.dropna()
print(stock_diff)
plt.figure()#新生成一块画布
plt.plot(stock_diff)
plt.title(一阶差分)
# plt.show()

#画图ACF确定几阶
acf = plot_acf(stock_diff, lags=20)
plt.title(ACF)
# plt.show()
#PACF
pacf = plot_pacf(stock_diff, lags=20)
plt.title(PACF)
# plt.show()

#ARIMA model
model = ARIMA(stock_train, order=(1, 1, 1), freq=W-MON)
result = model.fit()
# print(result.summary())

pred = result.predict(20110103, 20160701, dynamic=True, typ=levels)
print(pred)

plt.figure(figsize=(6, 6))
plt.plot(pred)
plt.plot(stock_week)
plt.show()

 

股票预测

标签:gpl   pre   mat   预测   时间   from   drop   show   div   

原文地址:https://www.cnblogs.com/xushu/p/8656248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!