您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > R软件及其在金融定量分析中的应用-CH04.
R软件及其在金融定量分析中的应用主编:许启发、蒋翠侠制作:侯奇华、王侠英2014年10月编写第4章金融数据整理与预处理第一节金融数据库第二节金融数据格式第三节金融数据的导入第四节金融数据的预处理第一节金融数据库金融数据与金融数据库金融数据,是金融定量分析的基础或原材料,只有及时、精确、全面、结构合理并且兼容性高的数据库才能够有效地实现金融定量分析,提高金融定量分析的准确性与可靠性。金融数据库用户自己收集专门收集的金融数据多元化第一节金融数据库国外金融数据库概况Bloomberg•全球最大/数据品种及咨询全面,数据质量高Datastream•范围广,形式多样/数据来源包括本地政府CRSP•史上最大最全面股票数据库之一Compustat•搜集了全世界活跃与不活跃公司的市场信息以及各种金融统计数据的数据库第一节金融数据库国内金融数据库概况万得(Wind)锐思(RESSET)国泰安(CSMAR)巨潮恒生聚源财汇第一节金融数据库金融数据库数据主要内容本节将以国泰安数据库为例详细说明金融数据库中的内容。国泰安数据库的内容包括股票、上市公司、基金、债券、衍生市场、经济研究、行业研究、货币市场、海外研究、板块研究、市场咨询、专题研究、科技金融研究等系列。选取上市公司、股票、债券、基金四个部分进行重点阐述。第一节金融数据库金融数据库数据主要内容上市公司财务报表数据库将报表分为四类即:资产负债表文件、利润表文件、采用间接法的现金流量表文件以及采用直接法的现金流量表文件。股票个股回报率、市场回报率和综合市场回报率债券债券的基本信息、交易数据以及上证债券指数的交易数据等基金第一节金融数据库金融数据库数据主要内容基金•开放式基金招募说明书、上市公告书、扩募说明书、定期报告(年度报告、中期报告、季度报告、投资组合公告、基金资产净值公告)、临时报告和法律、行政法规以及中国证监会规定应予披露的其他信息资料。•封闭式基金招募说明书、上市公告书、扩募说明书、定期报告(年度报告、中期报告、投资组合公告、基金资产净值公告)、临时报告和法律、行政法规以及中国证监会规定应予披露的其他信息资料。第二节金融数据格式XLS、XLSX格式xls格式就是MicrosoftExcel2003工作表。xls文件可以使用MicrosoftExcel打开。通过使用Excel的“另存为”功能,可以将xls格式的表格转换为xml格式、html格式、txt格式以及csv格式等。xls格式及其转换格式都可以使用R软件对应的包或函数来读取。xlsx格式是MicrosoftOfficeEXCEL2007工作表的扩展名。大部分的R数据导入都可以用xlsx格式来完成。第二节金融数据格式CSV格式纯文本,使用某个字符集,比如ASCII、Unicode、EBCDIC或GB2312。由记录组成(典型的是每行一条记录)。每条记录被分隔符分隔为字段(典型的分隔符有逗号、分号或制表符;有时分隔符也包括可选的空格)。每条记录都有同样的字段序列。用R来读取csv格式的数据非常方便,可以使用read.table函数来读取。第二节金融数据格式TXT格式txt是微软在操作系统上附带的一种文本格式,是最常见的一种文件格式,早在DOS时代应用就很多,主要存文本信息,即文字信息,大多数的软件都可以查看txt格式的信息。用R来读取txt格式的数据同样也可以使用read.table函数来读取。如果使用Rstudio,可以在菜单栏Tools中选择“importdataset”,也可以简单地实现txt文件读取。第二节金融数据格式XML格式XML,即可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。XML不仅可以提供标准的数据内容,而且可以提供更加复杂的数据结构。XML包提供了读取和载入XML格式文件的大部分功能,要读取一般形式的XML格式文件上的信息,只需要加载XML包,输入readKeyValueDB()即可实现读取。第二节金融数据格式HTML格式HTML,即超文本标记语言,标准通用标记语言下的一个应用。是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种标记语言。HTML被用来结构化信息—例如标题、段落和列表等,也可用来在一定程度上描述文档的外观和语义。HTML可以直接运行,所以我们可以在不联网的情况下直接读取HTML格式的数据。第二节金融数据格式从其他统计软件导入由R的核心团队编写的foreign包提供了其他统计软件系统数据导入的工具,以及导出等功能,帮助处理其他软件的数据。若要读取SPSS软件中名为“Data.sav”的数据,R代码演示如下:library(foreign)(z-read.spss('Data.sav'))$x[1]2344$y[1]1531第二节金融数据格式关系型数据库R在处理数据的时候会存在以下问题:R可以较好处理的数据类型是有限的。R目前很难进行数据的同时处理。R支持永久性数据,可以把一个数据对象和一个任务的整个工作表保存,并用于随后的任务中,然而存储的数据是针对R的,不太容易被其他系统操作。第二节金融数据格式关系型数据库数据库管理系统,其优点有:具有读取大数据,并集中快速选取部分数据的功能;具有强大的汇总和交叉列表统计功能;以比长方形格子模型的电子表格和R数据库更加严格的方式保存数据;运用关系型数据库的优点就能够轻松解决R读取数据过程中的上述问题,所以我们也要学会R与关系型数据库的连接,通常可以用RODBC包来实现这一功能。第二节金融数据格式DBF格式read.dbf和write.dbf函数在所有R平台中都能读写基础DBF文件。用户使用RODBC包中的odbcConnectDbase函数,可以通过Microsoft’sdBaseODBC驱动实现更多读取DBF文件的功能。第三节金融数据的导入从控制台输入数据在R中演示向量的输入用R来输入向量有许多种方法,可以用函数c(),scan()或者使用符号“:”,其代码分别如下:使用c()函数:(x-c(11,12,13,14,15))[1]1112131415当要结束输入时可以按回车键,即可以结束输入。当然也可以使用如下代码:(x-11:15)使用scan()函数:x-scan()1:112:123:134:145:156:Read5itemsx[1]1112131415第三节金融数据的导入从控制台输入数据在R中演示数组的输入数组与向量本质的区别在于数组是多维的,向量是一维的。可以用array()函数来生成数组,其代码如下:x-1:12a-array(data=x,dim=c(3,4))print(a)[,1][,2][,3][,4][1,]14710[2,]25811[3,]36912第三节金融数据的导入从控制台输入数据在R中演示数据框的输入R代码演示如下:time-c('2014-2-24','2014-2-25','2014-2-26','2014-2-27','2014-2-28')AAPL.Volume-c(10318200,8284000,9864900,10781500,13284600)AAPL.Adjusted-c(527.55,522.06,517.35,527.67,526.24)AAPL-data.frame(time,AAPL.Volume,AAPL.Adjusted)print(AAPL)timeAAPL.VolumeAAPL.Adjusted12014-2-2410318200527.5522014-2-258284000522.0632014-2-269864900517.3542014-2-2710781500527.6752014-2-2813284600526.24第三节金融数据的导入从控制台输入数据在R中演示列表的输入R代码演示如下:time-c('2014-2-24','2014-2-25','2014-2-26','2014-2-27','2014-2-28')AAPL.Volume-c(10318200,8284000,9864900,10781500,13284600)AAPL.Adjusted-c(527.55,522.06,517.35,527.67,526.24)mylist-list(time=time,volume=AAPL.Volume,adjusted=AAPL.Adjusted)print(mylist)$time[1]2014-2-242014-2-252014-2-262014-2-272014-2-28$volume[1]10318200828400098649001078150013284600$adjusted[1]527.55522.06517.35527.67526.24第三节金融数据的导入上市公司财务报表信息读取在R中演示运用剪切板这种方法是将所需读取的EXCEL表格数据打开,选中所需的数据区域,复制区域内的内容,然后使用read.delim函数R代码演示如下:data-read.delim('clipboard')print(data)第三节金融数据的导入上市公司财务报表信息读取在R中演示转换格式可以将EXCEL的文件通过其文件菜单中的“另存为”功能,将其另存为txt格式然后再读取转换后的txt文件。R代码演示如下:data-read.table('BalanceSheet.txt')或者另存为csv格式的文件,再读取转换后的csv文件。R代码演示如下:data-read.csv('BalanceSheet.csv')第三节金融数据的导入上市公司财务报表信息读取在R中演示使用xlsx包正常运行xlsx包后输入读取的语句即可完成读取。R代码演示如下:library(xlsx)data-read.xlsx('BalanceSheet.xlsx',1)第一个逗号后也可以填入要读取的表名来替代顺序数。data-read.xlsx('BalanceSheet','sheet1')第三节金融数据的导入股票数据的读取在R中演示可以通过getSymbols函数下载数据。例如下载苹果公司2014-01-01~2014-01-31的数据。R代码演示如下:getSymbols('AAPL',from='2014-01-01',to='2014-07-31')[1]AAPLhead(AAPL)也可以用代码来代替公司简称,以工商银行的股票为例。R代码演示如下:PAYH-getSymbols('600036.ss',from='2014-01-01',to='2014-07-31',auto.assign=FALSE)tail(PAYH)第四节金融数据的预处理时间序列数据预处理在R中演示数据合并以苹果(AAPL)和谷歌(GOOG)为例进行说明,样本区间为:2014-03-01~2014-05-31,R代码演示如下:library(timeSeries)#加载时间序列包library(tseries)#加载时间序列包library(RODBC)#加载数据连接包library(quantmod)#加载金融数量建模包#1.processtimeseriesdata#(1)readandmergedatastock.names-c('AAPL','GOOG')getSymbols(stock.names,from='2014-03-01',to='2014-05-31')#同时获得两支股票第四节金融数据的预处理时间序列数据预处理数据合并[1]AAPLGOOGstart(AAPL)[1]2014-03-03end(AAPL)[1]2014
本文标题:R软件及其在金融定量分析中的应用-CH04.
链接地址:https://www.777doc.com/doc-2856438 .html