ARIMA预测股票走势

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

将预测对象随时间推移而形成的数 据序列视为一个随机序列,用一定 的数学模型来近似描述这个序列。 这个模型一旦被识别后就可以从时 间序列的过去值及现在值来预测未 来值。现代统计方法、计量经济模 型在某种程度上已经能够帮助企业 对未来进行预测。
选择模型-ARIMA模型
ARIMA(p,d,q) 称为差分自回归移动平均模型,根据原序列是否平稳以及回归中所含部分的不同。
ACF和PACF检验
acf=plot_acf(stock_diff,lags=20) #lags代表阶数 plt.title('ACF') fig = plt.gcf() plt.savefig('10.png') pacf=plot_pacf(stock_diff,lags=20) plt.title('PACF') fig = plt.gcf()
数据获取
pandas_datareader是一个远程获取金融数据的Python工具


fix_yahoo_finance导入,调用相应函数,以获取数据。
代码: aapl = pdr.get_data_yahoo("AAPL", start="2016-01-01", end="2018-07-31") aapl
DOLOR SIT
高阶差分
DOLOR SIT
自相关系数ACF、偏自相关系数PACF
自相关系数ACF、偏自相关系数PACF
对于AR(p)模型,PACF会在lag=p 时截尾,即是PACF图中的值落入宽带 区域中。
对于MA(q)模型,ACF会在lag=q时 截尾,同理ACF图中的值落入宽带区 域中。
预测股票走势
获取数据——获取一定时间 段的苹果公司的股票信息数 据。
选择模型——ARIMA模型, 全称为自回归积分滑动平均 模型
确定参数ARIMA(p,d,q),进 行训练。
验证模百度文库。
ARIMA模型——自回归积分滑动平均模型
20世纪70年代初提出的一种时间 序列预测方法。ARIMA模型是指 在将非平稳时间序列转化为平稳时 间序列过程中,将因变量仅对它的 滞后值以及随机误差项的现值和滞 后值进行回归所建立的模型。
差分处理
目的使数据平缓,满足平稳性的要求
stock_diff=stock_train.diff().dropna() #diff()是差分函数,pd.dropna()删除缺失值函数 plt.figure() plt.plot(stock_diff) font_loc='' stock_train plt.title('一阶差分') fig = plt.gcf()
THANK YOU
ARIMA模型训练
model=ARIMA(stock_train,order=(1,1,1),freq='W-TUE') #训练模型 order(p,d,q)
result=model.fit() #建立result模型 #用result模型来预测走势,注意预测的起始时间要在训练时间的范围内,结
数据绘图
将收盘价作为评判标准,resample指按周统计平均数据(可以指定哪天为基准 日,此处是周二为基准
stock_week=aapl['Close'].resample('W-TUE').mean() #mean()求均值 #选取2016-2018的数据,缺失值处理函数dropna stock_train=stock_week['2016':'2018'].dropna() # 绘制收盘价曲线 stock_train.plot(figsize=(12,8)) # 创建一个 12 * 8 的图 plt.title('收盘价') fig = plt.gcf() # gcf表示Get Current Figure,获得图表,plt.gca()获得子图
对平稳时间序列分别求得其自相关系数ACF和偏自相关系数PACF,通过 对自相关图和偏自相关图的分析,得到最佳的阶层 p和阶数 q ;
得到的d、q、p,得到ARIMA模型。然后开始对得到的模型进行模型检 验。以证实所得模型确实与所观察到的数据特征相符。若不相符,重新
回到第3步。
一阶差分
函数y=f(x),y只对x在非负整数值上有定义,一阶 差分是指当自变量从x到x+1时,函数的y的改变量y
移动平均过程 (MA(q))
自回归过程(AR(p))
自回归移动平均过程 (ARMA(p,q))
自回归积分滑动平均 过程
(ARIMA(p,d,q))
AR是自回归,p为自回归项;MA为移动平均,q为移动平均项数,d为时间序列变为 平稳时间序列时所做的差分次数。
ARIMA模型预测步骤
获取数据
数据绘图,观察是否为平稳时间序列。若非平稳,d阶差分运算,若平稳 直接ARMA(p,q)模型
束时间没有要求 pred=result.predict('20160816','20180731',dynamic=True,typ='levels') #预
测模型的参数
plt.figure(figsize=(6,6)) plt.xticks(rotation=45) #带有字符串的刻度 plt.plot(pred) #折线图 plt.plot(stock_train) fig = plt.gcf()
相关文档
最新文档