数据集是美国股市预测的每日新闻数据,来源kaggle,数据获取地址:Daily News for Stock Market Prediction

上图是数据分析的基本步骤,下面将按照分析步骤,对美国股市约8年的道琼斯工业平均指数的历史数据做数据分析,此分析中将第5步(数据可视化)穿插在第4步(构建模型)。
1.提出问题
专家判断法
当过去的条件不能适用于未来时,专家判断法是通常推荐的一种预测模型。常常需要根据一个专家的判断或一个专家小组的一致意见进行定性预测(建议5-20名专家)。每年专家小组都在Merrill Lynch集会,预测下一年的道琼斯30种工业股票平均价格指数的水平和主要利率。预测时,专家们单独考虑他们认为将会影响股票市场和利率的信息,然后,将他们的结论汇总,以便用于预测。可见,没有任何可以利用的公司模型,也没有两个专家会用同样的方法考虑相同的问题。即使没有可利用的定性模型公式,在许多情况下,专家判断法也可以提供合适的预测。
事实上,股市里的变化是非常复杂的,由于股票价格的变化也具有不确定的特点,因此,任何技术指标发出的买卖信号也是不确定的,也仅是一种概率判断。而且道琼斯工业平均指数(后面都简称DJIA)是由30种有代表性的大工商业公司的股票组成,所选用的股票经常予以调整,用具有活力的更有代表性的公司股票替代那些失去代表性的公司股票。我们知道仅仅通过定量的数据分析难以对DJIA进行预测。基于DJIA是一种代表性强,应用范围广,作用突出的股价指数,是目前世界上影响最大、最有权威性的一种股票价格指数,对DJIA的历史数据进行分析,以探索其中的规律特点是很有意义的。通过对比不同时期的DJIA,可以观察到美国股市的发展变化。
通过逻辑树分析方法对道琼斯工业平均指数的分析问题进行拆分,后续的分析按下列脑图的思路展开分析。

2.理解数据
此数据集中包括三个CSV文件:
DJIA_table.csv:
是道琼斯工业平均指数(DJIA)股票数据:7个字段,1990行。包含Date(日期),Open(开盘价),High(最高价),Low(最低价),Close(收盘价),Volume(成交量)和Adj Close(已调整收盘价)。(范围:2008-08-08至2016-07-01)
Adj Close(已调整收盘价)是一个更复杂的分析,它使用收盘价作为起点,但它考虑了股息,股票拆分和新股票发行等因素来确定价值。 调整后的收盘价代表了股票价值的更准确反映。后续做分析主要用已调整收盘价。
Combined_News_DJIA.csv:
是新闻数据:27个字段,1990行。包含Date(日期),Label(标签)和Top1-Top25(当日的头25条新闻)。(范围:2008-08-08至2016-07-01)
Label(标签)是用来判断DJIA 的已调整收盘价的涨跌情况的:
当DJIA Adj Close值上升或保持不变时,为“1”;
当DJIA Adj Close值下降时,为“0”。
此表中的日期跟DJIA_table.csv表对应一致,所以只包括每个工作日的新闻数据。
RedditNews.csv:
2个字段,73609行。包含Date(日期),News(新闻),所有新闻都根据它们的热度从上到下排名,每个日期有25行。(范围:2008-06-08至2016-07-01)
此表中的日期范围更大,不仅比Combined_News_DJIA.csv表多了前面两个月,还包括节假日的新闻数据。发现特别的股票数据时,在Combined_News_DJIA.csv表中找不到相关新闻时,可以再查看RedditNews.csv表中当天之前的包括节假日的新闻来研究。
3.数据清洗
先将后缀为.csv的三个文件保存为后缀为.xlsx的文件,用Excel对数据预处理及数据分析。
1)选择子集
数据集的列都不是很多,保留全部数据列。
2)列重命名
数据集的列名为英文,全部转换为对应中文,按前面数据理解步骤里备注的中文进行重命名。
3)删除重复值
DJIA_table.xlsx表和Combined_News_DJIA.xlsx表都是日期列为唯一标识,“选中全部数据——数据——删除重复值——取消全选——勾选日期列”,显示未发现重复值,“确定”。RedditNews.xlsx表的特点就是每个日期有25行,对应不同的新闻数据,不做重复值删除。
4)缺失值处理
对于DJIA_table.xlsx表和Combined_News_DJIA.xlsx表,选中日期列,右下角显示“计数:1990”,再选中其他列,同样显示的1990行,所以没有缺失值。
RedditNews.xlsx表的两列都是73609行,也没有缺失值。
5)一致化处理
同一列的数据类型都统一,日期格式也统一,无须分列或其他一致化处理。
6)数据排序
对三个表:“选中日期列——开始——排序和筛选——升序——扩展选定区域——排序”,统一按时间从2008的最早日期开始升序排序。
7)异常值处理
表中没有异常值,即使有突变特别大的数据,也是按正确方式记录和计算出来的DJIA,后面的分析过中,对相应的特别数据,通过单独查找新闻和网页搜索历史信息来分析原因。
数据清理后的数据集前几行部分数据如下:



4.构建模型&可视化
1)描述统计分析
对DJIA_table.xlsx表中的已调整收盘价做描述统计分析,“数据——数据分析——描述统计——确定”,然后选择区域,设置参数,得到如下数据:

平均已调整收盘价是13463.03,标准差为3144.007。中位数是13025.58跟平均数比较接近。
因为是8年的数据,波动比较大,需要再做更细致的分析以探索股票数据。
已调整收盘价的折线图如下:

做数据透视表,统计每年的平均已调整收盘价,并图形展示:


通过上面的已调整收盘价的折线图,可以看出先是一段下降然后再是上升趋势,后段又,有的地方起伏波动很大。再结合年平均已调整收盘价的折线图,一起看整体趋势是增长趋势,添加线性趋势线(图中的虚线),数据值环绕趋势线上、下波动,此时间数列有趋势成分和循环成分。
给DJIA_table.xlsx表增加一列“高低价差”,即当天最高价与最低价之差,看整体高低价差的描述统计结果:

全部数据的高低价差的差异也很大,范围从27.48047到1089.42,但观察到平均数,中位数和众数都比较接近,大部分情况下,高低价差的值差异不会过大。
对DJIA_table.xlsx表中的成交量做描述统计分析,结果如下:

发现成交量的最大最小值相差很大,再看下成交量的折线图:

折线图可看出,成交量一直上下波动,整体有随着时间推移略下降的趋势,但看到在大概1500多行的数据处,有一天的成交量相对而言特别高,到DJIA_table.xlsx表中查找,发现是2014/10/6的成交量为655450000,高于附近很多。
查看Combined_News_DJIA.xlsx表和RedditNews.xlsx表中2014/10/6当天以及前面几天的新闻数据,再通过上网搜索,分析原因,简单总结可能的原因如下。
2014/10/6为周一。在上周五股市大涨后投资者趋于谨慎,纽约股市三大股指6日下跌。主要股指当天开盘走高,延续上周五的涨势。因为利好的美国9月份非农就业报告令投资者感到乐观,道琼斯工业平均指数上周五的单日涨幅为7个月来最大。主要股指随后震荡下跌,最终以下跌报收。
2)移动平均
“数据——数据分析——移动平均——确定”,然后选择区域(已调整收盘价),设置参数,分别设置“间隔”为5,10,20,30,得到“5日均价,10日均价,20日均价,30日均价”四列数据。以“5日均价”这列为例,前面4行显示的是“#N/A”,因为从第5行开始,才有足够的5个数据算出平均数,将那些“#N/A”清除变成空白。另外三列移动平均同理,也同样处理。
新增这四列的部分数据如下:

将5日均价,10日均价,20日均价,30日均价的数据在一张折线里显示如下:

从移动平均的4条折线图可以看出,30日均值更平滑,4条移动平均线整体走向趋势一致,也跟原始的已调整收盘价形状接近。
3)涨跌情况
对Combined_News_DJIA.xlsx表中的日期和标签列,做数据透视表,统计每年的涨和跌的天数,结果如下:

每年涨和跌的天数的柱形图如下:

“1”表示DJIA 已调整收盘价上升或保持不变(简称“涨”),“0”表示下降(简称“跌”)。可以看出每年上涨和下跌的天数比较均衡。
在DJIA_table.xlsx表中增加一列“涨跌幅”,计算过程以及用百分号表示后的部分结果如下:

下图是涨跌幅的整体波动情况:

通过VLOOKUP函数对涨跌幅进行分组:

然后通过数据透视表统计涨跌幅分组情况如下:

将数据复制到一个空白区域,调整行顺序后,通过柱形图可以更直观地看到涨跌幅分组情况:

通过上面的数据透视表和柱形图,发现大部分情况下都是在-3%~3%的涨跌范围内,即分组标签为小涨和小跌的那两类,占96.73%(44.42%+52.31%)。涨跌幅度在3%~5%范围内的少数,涨跌幅度大于5%的极少数。通过对“涨跌幅”进行筛选,看是否有特别大或特别小的数据,发现有两个涨跌幅超过10%的数据(飙升),是2008/10/13的涨11.0803%和2008/10/28的涨10.8779%。

查看Combined_News_DJIA.xlsx表和RedditNews.xlsx表中2008/10/13和2008/10/28当天以及前面几天的新闻数据,再通过上网搜索,分析原因,简单总结如下。
2008/10/13:受全球政府相继推出金融系统救援计划消息激励,美股周一大幅飙升。道琼斯工业平均指数上涨了936.42点,报收9387.61点,涨幅为11.08%。道指当天百分比涨幅在历史排列第五。结束了连续八个交易日下跌的势头。
2008/10/28:美国股市周二飙升,道琼工业指数狂升近11%,升穿9,000点水平,并和标普500指数录得历来第二大点数升幅。美国财政部助理部长内森27日说,财政部与9家主要银行26日签订协议,政府定于本周陆续支付1250亿美元购买这些银行的股份。这一行动标志着布什政府将首次分发国会10月3日批准的7000亿美元金融救援蛋糕。
4)季度分析
对DJIA_table.xlsx表,做数据透视表,统计每年每季度的平均已调整收盘价,展开2008年的季度数据如下:

将每年的数据展开,复制到另一张表,做调整,统计成下表形式:

将每年的季度数据做折线图,8年8条折线图统计在一起如下:

通过上面的图可看出,没有随着季节有规则的、重复的运动,可判断此时间数列没有明显的季节成分。
将按季度展开的表后添加一列“季度涨跌幅”,统计以及计算后的部分数据如下:

季度平均值和季度涨跌幅的图形展示如下:


可以看出,季度平均值跟前面原始数值、年度平均值的走势一样,有增长的趋势;季度涨跌幅大部分都是正的涨,少量负的跌,波动的范围不是很大。
5)总结
分析约8年的道琼斯工业平均指数发现,这个时间数列含趋势成分和循环成分,没有明显的季节成分,当然还含有不规则成分。不规则成分是由那些影响时间数列的短期的、不可预期的和不重复出现的因素引起的。因为这种成分说明时间数列中的随机变动,所以它是无法预测的,因此我们不能预测它对时间数列的影响。
已调整收盘价的涨跌幅度大部分在-3%~3%的范围内,约占96.73%。个别涨跌幅度特别大的日期,前面分析中都有单独通过数据集中的历史新闻,以及查更多资料进行简单分析。整体的涨跌天数比较均衡,DJIA的整体趋势是循环波动缓慢上涨。
但股市里就算是一个股票的变化都非常复杂,而DJIA是由30种有代表性的大工商业公司的股票组成,所选用的股票还经常予以调整,仅仅通过定量的数据角度难以进行预测,过去的条件也不能完全适用于未来,主要还是要通过专家判断法提供合适的预测。但历史数据很有研究的价值,探索其中的规律特点,还是可以观察到美国股市的发展变化。
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容, 联系QQ15101117,本站将立刻清除。