基于R语言的数据抓取与可视化分析
Data Capture and Visualization Analysis Based on R Language
DOI: 10.12677/PM.2023.136163, PDF, HTML, XML, 下载: 208  浏览: 388 
作者: 刘栩同, 刘 宇, 徐宇航, 吴林轩, 孙德山:辽宁师范大学数学学院,辽宁 大连
关键词: R语言数据抓取可视化R Language Data Capture Visualization
摘要: 在大数据的背景下,对数据进行分析和处理变得越来越关键,而数据可视化技术由于可以将数据中隐藏的特征和隐藏的信息直接展现出来而备受重视。R语言的资料可视化,以图像为基础,以清楚而高效的方式传递和交流资讯,可以协助使用者快速辨识出图案,让决策人可以以视觉的方式来理解各个层面的详细资讯。通过对一系列个股的实例研究,完成了K线图的绘制和正态性的测试,从而为股市的研究奠定了一定的理论基础。
Abstract: Along with the arrival of the big data age, it is especially important to analyze and deal with the data. Because of its ability to show the features of the data and the underlying information, it has been widely concerned in the past years. The visual representation of R-language is based on graphic method, which makes it easier for the user to recognize the model more rapidly and make the decision-makers know the level of detail. Based on the case of a set of shares, this article has carried out the fundamental analysis of K-figure and normal test, which can be used to analyze the stock market.
文章引用:刘栩同, 刘宇, 徐宇航, 吴林轩, 孙德山. 基于R语言的数据抓取与可视化分析[J]. 理论数学, 2023, 13(6): 1601-1609. https://doi.org/10.12677/PM.2023.136163

1. 引言

在大数据的背景下,数据可视化在人们的日常工作和生活中发挥着重要作用。因此,如何更好地对这些数据作出合理地处理,是当前许多数据工作者所关心的问题。与常规的资料处理方式相比,可视化方式更为直接和高效。伴随着互联网技术的发展,互联网上产生了大量的互联网数据,包含了大量的用户行为、交易等信息,蕴含了极大的经济价值。当前常用的可视化技术包括Excel、QT、窗体、PowerBI、谷歌分析等,它们是可视化的核心技术。但是,目前使用的各种可视化软件都有不同程度的缺陷,比如不能对Excel中的数据表进行直接的修改,必须通过其他的软件来完成;表单仅能将资料录入表单,不能进行互动分析;还有浏览BI存在的问题,例如无法直接处理这些数据;谷歌的这份报告只能给出几个可视化的例子。

在当今大数据环境下,R语言提供了一种非常完善的数据分析与可视化工具。它能将文本、图像、视频等多种形式的数据以结构化的形式呈现出来,同时还能将复杂的数据进行可视化。

在金融领域中,许多应用都需要挖掘海量数据,对这些数据进行可视化分析就显得尤为重要。本文以财务数据为例,探讨了R语言在财务数据可视化分析中的应用。

2. R语言简介

R是一种具有数据处理、统计学、可视性、文法简洁、图形绘制功能强大、适用面广泛、数据库庞大、数据处理、图形绘制便捷等特点的统计学编程语言;拥有最好的视觉资料才是关键。其不足之处在于,其表现比较糟糕,并且难以在大段文字中工作。R是一种很好的阅读资料的工具,可以阅读EXCEL、CSS、SEC、WEB、Web、Web等多种资料,也可以阅读网站、网站、网站等资料,并且可以使用R来进行资料的处理 [1] 。

R是一个集数据处理,计算,绘图于一体的综合软件系统 [2] 。该系统的主要功能有:数据存储与处理系统;阵列操作工具(在矢量和矩阵操作中具有特别强大的功能);完善的统计分析工具,出色的统计绘图功能;程序语言简单,功能强大,可以控制数据的输入输出,可以实现分支,循环,用户可以定制功能。

R是一种统计程序语言,它能进行数据分析,统计分析,可视化,语法简单,有很强的绘图能力,应用范围很广,数据库很丰富,数据分析和绘图都很方便;最重要的是要有最佳的可视化数据。它的缺点是,它的性能相对较差,而且很难处理大的文本。R具有很强的读数据功能,它能读到各种数据,如EXCEL,CSS,SEC,WEB等,也能读到网页等,还能用R对数据进行整理。

3. 基于R语言的数据抓取算法的实现

R为用户提供了一系列访问数据文件和数据库的方式 [3] ,包括文件类型、数据流类型和数据库类型。在对这些信息进行处理前,首先要对这些信息进行提取,并将这些信息提取到存储空间中。

首先获取Tushare网页文件。打开Tushare网页,我们可以看到它的界面非常友好,用户界面,数据提取器,分析报告,股票信息都在这里显示。再获取股票信息。使用爬虫抓取Tushare网页的数据,把数据保存到本地文件。接下来对其进行分析。

4. 基于R语言的数据可视化分析

数据的可视化分析是对海量数据进行分析挖掘的重要手段 [4] ,而R语言在数据挖掘中的应用广泛,具有良好的可视化效果。分析结果如下:

对提取的数据进行分析,主要代码如代码一。

代码一 爬取股票数据代码

接着将得到的data1、sh、stockname为变量的数据保存,保存代码如代码二。

代码二 数据保存代码

在对data1中的数据进行预处理,找出缺失值和空白值,调用is.na()函数,is.na()作用于对象后,若相应的数值为缺失值则返回TURE,若为FALSE,通过求和函数sum()可计算出缺失值总数。这段编码类似于3号编码。

代码三 找到缺失值代码

代码运行效果图,如图1所示,并得到a_sum的值为0。

Figure 1. The result display of a

图1. a的结果展示图

调用chartSeries函数绘制K线图,绘制代码如代码四。

代码四 绘制K线图代码

代码结果如图2所示

Figure 2. The graph without Bollinger bands

图2. 不加布林线的图

图2的K线图表示股票日收盘价和成交量变化趋势,从图中可以看出收盘价最高出现在2020年年底和2021年4月份左右,收盘价最低出现在2022年年底。对股票数据进行典型图形绘制,主要增加了布林线(BBands)指标和趋向指标(ADX)等及技术分析指标,为什么要增加布林线指标和平均趋向指标呢?首先,根据其原理,一般来说股价一般是围绕如均线、成本线等价值中枢在一定的范围内波动,布林线指标在这一基础上认为股价信道的宽窄会随着股价的变化而变化,自动加以调整,具有变异性。因此,接着增加布林线技术分析指标。代码操作如代码五所示。

代码五 增加布林线的K线图代码

代码结果展示如下图3

Figure 3. The graph with Bollinger bands

图3. 加布林线的图

图3可以看出,从2021年6月份开始,上轨,中轨和下轨线同时下行,显示出了股市的弱势特征,在此阶段出现了下行的走势,股票价格持续下滑。可能是受到了外在的影响。在2021的六月,上、中、下三个阶段将同时启动。利用R方法求出,并据此进行的分析。此时需要装载一个安装包来进行性能分析,然后装载一个程序包,并在对数据报酬率的计算中,需要呼叫 periodReturn函数来对每个时间段内的报酬率分类进行估计。此实现代码在代码六中被展示。

代码六 计算收益代码

计算的结果如图4所示。

Figure 4. Calculation result graph

图4. 计算结果图

接着画出股票的收益率K线图,代码如代码七所示。

代码七 绘制股票收益K线图代码

结果如下图5所示。

Figure 5. Earnings K-line chart

图5. 收益K线图

绘制密度函数图之前需下载fBasics软件包,在R中编写代码载入相关程缉包,获取密度函数,查看数据的取值范围,根据这一范围,绘制密度函数即可。代码如代码八所示。

代码八 绘制密度函数代码

所得到的图表显示在图6中。

Figure 6. Stock return density map

图6. 股票收益密度图

基于以上分析,我们得出了新浪股价的概率曲线偏离了正态分布,因而还需要对其进行正态性测试以进行进一步的验证。基本统计量和正规检验编码见代码九。

代码九 绘制股票收益K线图代码

图7图8所示。

Figure 7. Basic statistics graph

图7. 基本统计量图

图7中的计算结果来看,调整后的新浪收益率数据中,均值等于0.000303,非常接近于0,表示新浪股票收益率有显著向0集中的趋势;方差等0.000704,接近于0,表示这段时期内新浪股票收益率的离散程度比较小,也可说是不分散的;偏度为0.000468,明显不等于0,说明新浪股票收益率分布具有非对称性;峰度(Kurtosis)等于2.221864,明显小于3,说明了新浪股票收益率存在明显的高峰厚尾现象。这与之前绘制的密度函数相吻合,但仍需进一步进行正态性检验,正态性检验如图8所示。

Figure 8. JB normality test chart

图8. JB正态检验图

由于利用R计算JB统计量十分便捷,故本文主要运用JB检验。调用normalTest()函数,方法设置改为JB即可。根据图8的JB值为191.1385,且P = 2.2e−16 < 0.05,表明在5%的显著性水平下应拒绝原假设,说明新浪股票收益率不服从正态分布。由于股市成交量是股票买卖双方完成交易的数量,这也是技术分析中经常使用的重要指标。应用R计算某时间段股票总成交量是十分简便的,只需输入函数命令getSymbols,并分别调用chartSeries()、summary()和sum()三个函数便可得到股票成交量K线图和成交量数据汇总结果,如图9

Figure 9. K-line diagram and volume data summary chart

图9. K线图和成交量数据汇总图

5. 小结

R语言在数据采集与可视化方面的优势,在证券市场上得到了广泛的运用。因为资讯的品质与资讯的表现有著密切的关系,因此,透过资料的解析,将其呈现出来,有助于使用者了解资料中的资讯,进而发掘资料的价值。资料视觉化的实质就是视觉交谈。资料可视化是利用资料处理与绘图技术,以清楚而又高效的方式,来表达资料所呈现出来的资料。资料与视觉资料是相互补充的。资料是资料的依据,而资料的可视化则使资料更具弹性。利用可视化技术,可以使公司更好更高效地获取有用的信息。

比如,在一个电商网站上,一般都会把建议放在首页,商品详情页以及商品页面上。当使用者浏览到这个网页,他们会被这个网页上所陈列的商品所吸引,并且想要看到这个网页上与商品有关的资讯。在这种情况下,我们就可以利用R语言中的一个脚本抓取功能来抓取这个数据。

参考文献

[1] 杨晓伟, 杨鸿鲜, 刘相国, 刘倩倩. 基于R语言的金融数据分析——以新浪股票数据为例[J]. 贵阳学院学报(自然科学版), 2020, 15(1): 43-49+62.
https://doi.org/10.16856/j.cnki.52-1142/n.2020.01.012
[2] 孟诗琼, 孟诗瑶, 尹志. 基于R语言的汽车消费数据挖掘及可视化方法[J]. 宁波工程学院学报, 2015, 27(4): 17-23.
[3] 庄旭东, 王志坚. 基于R语言爬虫技术的网页信息抓取方法研究——以抓取二手房数据为例[J]. 科技风, 2019(6): 54+56.
https://doi.org/10.19392/j.cnki.1671-7341.201906047
[4] 李天赐. 基于R语言的财务数据可视化方法应用研究[D]: [硕士学位论文]. 哈尔滨: 黑龙江大学, 2019.
https://doi.org/10.27123/d.cnki.ghlju.2019.001156