案例:股价时间序列预测

主要目标:在标普500指数中找出10只热门股票,预测他们的未来价格。

主要步骤:

1.导入库

2.数据分析与可视化

3.利用烛台图和移动平均线对股票进行技术分析

4.建模和股价预测

1. 导入库

案例:股价时间序列预测_第1张图片

 案例:股价时间序列预测_第2张图片

案例:股价时间序列预测_第3张图片

2. 数据分析与可视化

案例:股价时间序列预测_第4张图片

案例:股价时间序列预测_第5张图片 案例:股价时间序列预测_第6张图片

2.1 数据清洗

案例:股价时间序列预测_第7张图片

 2.2 按平均交易量计算的前十名股票代码

案例:股价时间序列预测_第8张图片

案例:股价时间序列预测_第9张图片

案例:股价时间序列预测_第10张图片

案例:股价时间序列预测_第11张图片

 2.3 收盘价可视化和五年内的最高收盘价

案例:股价时间序列预测_第12张图片

案例:股价时间序列预测_第13张图片  

 案例:股价时间序列预测_第14张图片

案例:股价时间序列预测_第15张图片

 案例:股价时间序列预测_第16张图片

案例:股价时间序列预测_第17张图片

案例:股价时间序列预测_第18张图片

主要发现:
我们找到2013-2018年期间交易量最大的前10只股票。在这10家公司中,有1家是银行,7家是科技公司,另外两家是非科技类公司,即“通用电气”和“福特汽车”。
从收盘的股票价格可视化中,了解到 "通用电气 "和 "福特汽车 "的股价正在下降,而其他科技股在五年时间内正在上升。
同时我们可以了解所有股票的五年内最高收盘价。

2.4 2013-2018年期间的股票交易量

案例:股价时间序列预测_第19张图片

案例:股价时间序列预测_第20张图片

案例:股价时间序列预测_第21张图片

案例:股价时间序列预测_第22张图片

案例:股价时间序列预测_第23张图片案例:股价时间序列预测_第24张图片

案例:股价时间序列预测_第25张图片

主要发现:
以上可视化描述了2013-2018年期间的最大、最小和平均交易量。我们可以了解到交易量的差异,例如股票 "INTC "与其他股票相比交易量的差异最大。

2.5 七只科技股对比分析

案例:股价时间序列预测_第26张图片

案例:股价时间序列预测_第27张图片 主要发现:
很明显,'FB'股票是所有7只科技股中最贵的股票之一。与其他股票相比,'AMD'是最便宜的股票之一。同时也可以看到,像'FB'和'AAPL'这样的股票也是比其他股票最容易波动的股票之一。

2.6 五年内股票的增长情况

股价增长率=(最终股价-最初股价)/  最初股价

案例:股价时间序列预测_第28张图片

案例:股价时间序列预测_第29张图片

主要发现:
我们可以观察到,在所有其他10只股票中,"Facebook "在5年内的增长是最高的。"福特汽车 "和 "通用电气 "的股票在几年内的回报率为负数。

2.7 日回报率分析

2.7.1 每日回报率假设测试 

在股市中,你会经常听到任何股票价格的每日回报率是0%,这意味着你在一天内的投资将获得零回报。因此,我们通过分析前10只交易量最大的股票来证明下面的假设,并在本节中评估它们的每日回报率分布。
H0:每日回报率为零。
HA:每日回报率不为零。
我们将以单样本t检验的方式来证明这一假设,因为我们知道群体平均值,但不知道标准差。
如果p值大于0.05,我们不能拒绝H0假设,如果小于0.05,我们必须拒绝H0假设。

案例:股价时间序列预测_第30张图片

 主要发现:
从上面的结果中,我们可以了解到'MSFT'.'INTC'和'CSCO'等股票的p值小于0.05,所以我们可以拒绝H0,接受HA,即'日回报率不为零',而对于其他股票我们不能拒绝H0。这证明了10只股票中有7只的日回报率为零,这是最普遍的情况。

2.7.2 可视化:日收益率图和柱状图

案例:股价时间序列预测_第31张图片

案例:股价时间序列预测_第32张图片

 案例:股价时间序列预测_第33张图片

案例:股价时间序列预测_第34张图片案例:股价时间序列预测_第35张图片

案例:股价时间序列预测_第36张图片

案例:股价时间序列预测_第37张图片

案例:股价时间序列预测_第38张图片

3. 利用烛台图和移动平均线对股票进行技术分析

案例:股价时间序列预测_第39张图片

 3.1 画出用来可视化OHLC价格的烛台图

案例:股价时间序列预测_第40张图片

案例:股价时间序列预测_第41张图片

案例:股价时间序列预测_第42张图片案例:股价时间序列预测_第43张图片

案例:股价时间序列预测_第44张图片

案例:股价时间序列预测_第45张图片

 3.2 画出Facebook和Apple的移动平均线图

案例:股价时间序列预测_第46张图片

 'FB'的移动平均线案例:股价时间序列预测_第47张图片

 分析:
从以上 "FB "的股票图表中,我们可以观察到,2016年11月14日是10天移动平均线首次下行,和50天移动平均线相比显示出下降的趋势。2017年1月4日,10天移动平均线开始移动到200天移动平均线之上,显示出 "FB "股票的上升趋势。在5年的时间里,除了2016年12月左右,FB显示出上升趋势。下降的原因是在2016年12月 "剑桥分析数据丑闻 "的报道使FB陷入困境导致股价下降。

 'AAPL'的移动平均线

案例:股价时间序列预测_第48张图片

分析:
与FB相比,苹果的股价显示出更多的不规则波动,在2015-16年期间有一次大跌。在2015年8月7日左右,苹果股价的10天移动平均线低于200天移动平均线,这表明苹果的股价有下降的趋势。而恰恰在2016年8月15日之后,10天移动平均线越过200天移动平均线,显示出此后的上升趋势。

通过比较股票 "FB "和 "AAPL",我们可以得出结论,"FB "比 "AAPL "表现更好。FB比AAPL表现出更稳定的增长以及更少的波动,这证明了FB股票的优势。我的建议是看好 "FB",因为它有巨大的增长前景。

4. 建模和股价预测

案例:股价时间序列预测_第49张图片

4.1 使用 Auto-ARIMA 模型预测

案例:股价时间序列预测_第50张图片

案例:股价时间序列预测_第51张图片 案例:股价时间序列预测_第52张图片

4.2 绘制自相关和偏自相关图

案例:股价时间序列预测_第53张图片

案例:股价时间序列预测_第54张图片

案例:股价时间序列预测_第55张图片

 自相关的解释 - 自相关的缓慢下降表明时间序列不是平稳的,我们可以通过Dicky-fuller检验来证明时间序列的平稳性。
偏自相关的解释--对于这两只股票,PACF表明,由于它比其他滞后的时间序列重要,所以只能捕捉到时间序列的依赖性。

4.3 Dicky-Fuller检验(平稳性检验) 

H0 - Beta = 1 (时间序列是非平稳的)
HA - Beta < 1 (时间序列是平稳的)

案例:股价时间序列预测_第56张图片

两只股票的时间序列都不是平稳的,因为P值远远大于0.05,因此我们不能拒绝H0假设。

4.4 找出差分化的阶数

案例:股价时间序列预测_第57张图片

APPLE的差分化阶数为1
Facebook的差分化阶数为1

4.5 使用Auto-ARIMA训练预测模型

案例:股价时间序列预测_第58张图片

案例:股价时间序列预测_第59张图片 4.6 绘制诊断图

案例:股价时间序列预测_第60张图片

案例:股价时间序列预测_第61张图片 案例:股价时间序列预测_第62张图片

模型解释:

1) 标准化残差(Standardized residual)。它是股票价格预测和实际价格的误差项。

2)加密度估计的直方图(Histogram plus estimated density)。直方图显示误差的正态分布,KDE和N(0,1)分别表示平均值为0和分布的方差为1。

3)正态Q-Q图(Normal Q-Q)。正态Q-Q图显示分布的正态性,因为样本量大多与理论量一致。在这种一致性中的任何偏差都显示分布是倾斜的,或者通俗来讲,误差不是正的就是负的。

4)相关图(Correlogram)。它简单地表明了时间序列的偏自相关,并显示了哪个阶段的时间序列对预测实际的时间序列是重要的。

 4.7 对测试数据进行预测并计算RMSE

案例:股价时间序列预测_第63张图片

结语


1. 以上我们进行了详细的时间序列分析,以便在所有的股票中观察并找出最好的股票。

2. 我们将股票价格可视化,并证明了股票每日回报的假设。

3. 最后,我们建立和使用了 Auto-ARIMA模型来预测时间序列的未来价值。

4. 我们发现没有哪个时间序列是非平稳的,它们的差分阶数是1。

你可能感兴趣的:(python)