R语言:大数据分析中的统计方法及应用(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-11 22:46:41

点击下载

作者:薛薇

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

R语言:大数据分析中的统计方法及应用

R语言:大数据分析中的统计方法及应用试读:

前言

大数据时代,数据是生产资料,计算是生产力,互联网是生产关系,而数据分析就是串联各个生产要素的基本生产方式。

目前比较有代表性的大数据定义,来自麦肯锡全球研究院(McKinsey Global Institute)、高德纳公司(Gartner)和IBM公司等先行研究机构的综合观点。从狭义角度来讲,大数据是一个具有5V特征的大规模数据集合。5V即海量的数据规模(Volume)、快速流转且动态激增的数据体系(Velocity)、多样异构的数据类型(Variety)、潜力大但密度低的数据价值(Value),以及受噪声影响的数据质量(Veracity)。而从广义角度来讲,大数据的概念还应包含大数据的理论、技术、应用和产业生态这四个基本范畴。

近年来,我国大数据事业迅猛发展,大数据人才的需求与培养也日趋紧迫。全国高校“大数据技术与应用”和“数据科学与大数据技术”专业建设不断升温。一般我们可将大数据技术概括为两大方向:一是大数据工程,二是大数据分析,并分别对应着大数据工程师和大数据分析师这两个角色。总体而言,随着大数据系统架构和基础设施的不断完善和普及,以大数据工程为核心的相关项目终究是有限的。而随着移动互联网和物联网的广泛应用,以及各方对精细化管理、个性化营销和智能化决策的渴望,大数据分析将不断深入到各行各业,大数据分析人才的需求也必将呈现出长期性、有规模的增长态势。

数据分析的理论发展和实践经验都证明,掌握大数据分析,其学习起点应是大数据的统计分析。进一步,我们认为,学习大数据的统计分析应面向市场需求、面向实际应用,所以应具有以下三个特点。

第一,要结合大数据分析的实际案例。

面对“5V俱全”的大数据体系,许多经典的统计分析方法仍然有效,是我们分析问题、解决问题的可靠手段,但需要突破那种“小样本、习题式”的传统学习模式,要精挑有针对性的大数据集合,细选有说明性的大数据案例,以这些数据和案例为引导,有条理地形成分析思路,并贯穿整个学习过程,从而真正实现由表及里、深入浅出的学习体验。

第二,要结合大数据分析的应用工具。

大数据的统计分析应进一步突破“重理论讲解,重公式推导,轻技能培养,轻工具实现”的传统学习模式,要将各个知识点言简意赅地阐述透彻,同时也要同步掌握一个有效的软件工具,进而可对相应的数据与案例进行实操破解。

第三,要结合大数据分析的目标导向。

大数据的统计分析应进一步突破“方法导向”的传统学习模式,应围绕大数据案例,确定分析目标,细化研究问题,明确分析思路,并以业务问题为出发点,形成以目标为导向的学习模式,努力培养大数据分析人才的数据敏感性,以及发现问题和运用恰当统计分析方法解决问题的能力。最终针对整个知识体系建立“问题→概念→方法→工具→结果→分析解释”一条龙式的学习模式。

本书正是结合上述三个特点而筹划推出的,具体表现在以下三个方面。

第一,选择典型的大数据分析案例。

选用三个典型的大数据案例贯穿全书,并提供数据集和分析程序的下载,主要内容为手机APP美食餐馆食客点评数据、北京市空气质量监测数据、超市顾客购买行为数据等。这些案例具有大数据分析应用的代表性,而且业务问题直观明了,数据含义通俗易懂。一方面使读者能够直接感知大数据处理规模,另一方面也可有效避免由于专业领域不同而带来的数据理解问题。

第二,选择开源的大数据分析工具R语言。

选用 R 语言作为大数据分析工具。从分析工具的方法覆盖全面性、学习难易程度、使用流行性、未来发展潜力和开源性等多方面考虑,R语言都是进行大数据统计分析的最恰当工具。

第三,设计并提出研究问题和分析思路。

本书在每章开篇,均首先围绕大数据案例提出若干分析需求的问题,同时提炼总结出这些问题的共性特征,进而提出可行的统计分析思路,建立学习途径;然后讨论方法原理,给出解决案例问题的R语言程序代码和详细的结果说明。

为确保内容的完整性和实用性,本书在大数据分析案例的选择、分析工具讲解的详略程度、以目标为导向的主流统计方法覆盖的全面性等方面,都进行了精心安排和综合设计。本书共12章。第1章在大数据基本定义的基础上,明确给出了本书的学习目标和定位。然后,对R语言的基本概念和入门知识进行了较为详尽的讲解。之后,提出了大数据的统计分析整体框架和思路,并基于大数据分析案例,对相关统计概念和内容进行了说明,旨在方便读者尽快明晰统计分析路线。数据组织是数据分析的基础,数据整理是数据分析不可或缺的必要环节。因此第 2章和第3章直入主题,讨论了R语言的数据组织、整理以及编程基础,引入三个大数据分析案例并贯穿全书。大数据的统计分析起步于数据的基本分析,包括从单个变量分布特征到两个变量相关性的基本描述等,因此第4章和第5章首先基于大数据分析案例,提出了若干个基本数据分析问题,然后逐一讲解问题、阐述解决方法并给出R代码实现。第6章和第7章,继续针对大数据分析案例中更广泛的应用问题,细致地讨论了解决应用问题的诸多统计方法,包括单个总体的均值检验方法、两个及多个总体的均值对比方法和相应的R代码设计。第8章、第9章和第11章分别涉及线性回归分析、Logistic回归分析和线性判别分析。这些分析方法均是当前大数据分析中应用极为广泛的主流核心方法,旨在探究影响因素,解决分类预测等问题。第10章的聚类分析关注数据分组,不仅普遍存在于大数据的一般统计分析中,也广泛拓展到了数据挖掘、机器学习等诸多领域。同时第12章的因子分析更是大数据特征工程中的最常用方法。

总之,作者希望为致力于大数据分析和 R 语言实践的初学者,奉献一本具有大数据统计分析应用特色、R语言代码可操作性和示范性、统计方法经典性和普适性的优秀作品。本书提供配套的全部案例数据以及各章节 R 语言程序代码,可登录华信教育资源网 www.hxedu.com.cn免费下载。本书可作为大数据相关专业、统计学专业及其他有关专业的本科生或硕士研究生数据分析的教材,也可作为从事大数据分析实际工作人员的参考用书。

本书写作过程中,杨志峰和陈笑语同学对北京市空气质量监测案例数据进行了整理并利用 R 完成了初步分析。林家嗣和王琪等同学收集整理了超市顾客购买行为案例数据和美食餐馆食客点评案例数据,完成了部分 R 代码的初步编写和调试工作。这里对他们为本书做出的贡献,一并表示诚挚的感谢!本成果受到中国人民大学2018年度“中央高校建设世界一流大学(学科)和特色发展引导专项资金”支持。书中不妥和错误之处,诚望读者不吝指正。薛薇于中国人民大学应用统计科学研究中心中国人民大学统计学院第1章R语言与统计分析概述1.1 写在前面的话1.1.1 大数据的广义概念

当前,大数据技术正以全面、快速、渗透式的发展态势席卷整个世界。其发展势头迅猛,发展潜力巨大,发展前景辉煌。如果说,大数据时代数据是生产资料,计算是生产力,互联网是生产关系,那么大数据分析就是串联各个要素的最重要的生产方式。

比较有代表性和权威性的大数据定义是来自麦肯锡全球研究院 McKinsey Global Institute、高德纳公司 Gartner 和 IBM 公司等先行研究机构和企业的综合观点。认为大数据首先是一个大规模的数据集合或信息资源。同时,这个数据集合具有典型的 5V 特征,即海量的数据规模(Volume)、快速流转且动态激增的数据体系(Velocity)、多样异构的数据类型(Variety)和潜力大但密度低的数据价值(Value),以及噪声影响的数据质量(Veracity)。

事实上,大数据还有更为宽泛的广义概念,即大数据是围绕大数据集的一个包括大数据理论、技术、应用和生态四个方面的组合架构概念,如图1-1所示。图1-1 大数据的广义概念示意图

1.大数据理论

目前,大数据理论层面主要是从计算机科学、统计学、数学以及实践等方面汲取营养,旨在最终构建数据科学理论基础,建立数据空间的科学认知体系。这个数据空间是独立且关联于自然世界和人类社会之外的新维度。

2.大数据技术

大数据技术是推动大数据发展最活跃的因素。其关键技术可分为大数据采集技术,大数据集成与预处理技术,大数据存储技术(包括云计算技术、数据库与数据仓库技术、分布式数据处理技术、数据湖技术等),大数据分析技术(包括统计分析、数据挖掘、机器学习以及深度学习和增强学习等),大数据可视化技术,大数据平台技术,以及大数据隐私与安全技术等。

3.大数据应用

大数据应用在我国呈现出大力推进和积极拓展的局面。多领域应用场景的有效开发成为带动大数据发展的重要引擎。大数据应用一般可分为个人、企业与行业、政府以及时空综合应用等若干方面。其中,个人大数据应用的典型代表,如根据医疗健康大数据建立个人数据中心,指导个人就医、运动和饮食等;企业与行业大数据应用的典型案例,如商业银行通过征信和交易大数据系统,对各种贷款业务进行风险控制等;政府大数据应用的典型场景,如管理部门利用公共大数据系统,进行交通管理、旅游规划和环境保护等;时空综合大数据是指,在一定区域的时序化基础地理信息之上,与其他专题大数据构成一体化数据资源。其典型案例有智慧城市时空大数据应用、百度公司时空大数据城市计算等。

4.大数据生态

大数据生态是指大数据事业与其相关环境所形成的相互作用、相互影响的共生系统。主要包括大数据市场需求、政策法规、人才培养、产业配套与行业协调、区域协同与国际合作等要素。1.1.2 目标定位

本书聚焦于大数据分析技术中的统计分析,将大数据集定位在各种事物的客观动态记录上,并从以下三个方面确定定位。

1.明确目标

初学者首先应结合自己的知识基础、专业方向、兴趣能力以及职业发展规划,搞清楚自己将向大数据的哪个技术方向努力。

一般可将大数据技术涉及的各个方面归纳为两大技术方向:大数据工程和大数据分析,其对应着大数据工程师和大数据分析师的角色。大数据工程主要涉及物联网、云计算、分布式存储和计算、大数据平台等基础硬件、软件的架构设计和设施搭建;大数据分析主要涉及数据采集管理、数据可视化、数据分析与建模、机器学习、数据安全、数据应用服务等相关的模型、算法、工具的探讨和研究。

总体而言,随着大数据物理基础和系统架构的不断成熟和持续普及,以大数据工程为核心的项目通常是有限的,而随着精细化管理和智能化技术的蓬勃发展,大数据分析则会进入各行各业,形成长期且持续的需求,从而使更多的大数据研究项目进入这个领域。本书正是为有志从事大数据分析的初学者准备的。

2.明确途径

初学者学习大数据分析,可以从统计方法、数据挖掘、机器学习、深度学习这个途径循序渐进,逐步提升。大数据的统计分析是一个出发点,也是后续分析的基础。本书正是为起步于统计方法的大数据分析初学者准备的。

3.明确工具

大数据的统计分析需要功能强大、灵活易用的实现工具。作为面向统计分析的计算机语言,R无疑是一个最好的选择。R的前身是1976年美国贝尔实验室开发的S语言。20世纪90年代R语言正式问世,因两名主要研发者Ross和Robert 名字首字母均为R而得名。目前,R已发展成为具有共享性,可运行于Windows、Linux、Mac OS X操作系统之上,支持交互式数据探索、可视化和分析实践,支撑统计理论研究和大数据统计分析的强大平台。本书正是为聚焦大数据分析中的统计方法及其R实现的初学者准备的。1.1.3 初识R

数据分析,一方面需要深厚的统计专业知识,另一方面也离不开有效的软件工具。目前,包括 R 在内的数据分析工具繁多,功能上各有侧重,操作上有简有繁,数据处理效率有高有低。可从不同角度对这些工具进行粗略分类。

第一种角度:商业软件和共享软件。

商业软件的字面含义是指可作为商品进行交易的计算机软件。通常商业软件的所有权属于相应的软件公司,软件公司负责整个软件的研发、升级和服务等,能够有效确保软件功能的完备性,软件开发的规范性,以及可推广性等。数据分析软件中常见的商业软件包括IBM SPSS Statistics,IBM SPSS Modeler,SAS,Matlab 等。商业软件的销售价格一般较高,囊括的分析方法都是经典的和成熟的。

共享软件属于非商业软件,其最大特点之一是共享性,使用者可以到相应的网站上免费下载和使用。与商业软件相比,共享软件一般没有专门特定的软件公司主导研发,通常由爱好者们自由研发并上传到网上。共享软件具有较大的随意性,除囊括众多的经典分析方法外,还拥有大量前沿的新模型、新算法,且更新速度快。R 正是数据分析软件中最常见的一款非商业的共享软件。

第二种角度:“傻瓜”软件和“非傻瓜”软件。

所谓“傻瓜”软件是指操作简单、易学易用的软件。使用者只需通过窗口、菜单、对话框等的操作即可自如应用这些软件,无须具有计算机编程知识。为利于推广使用,商业数据分析软件,如IBM SPSS Statistics,IBM SPSS Modeler,SAS,Matlab等一般都支持窗口、菜单、对话框等“傻瓜”式操作。“傻瓜”式的使用模式虽便于操作,但无法最大限度地满足用户个性化的分析需要。“非傻瓜”软件的优势则更多体现于此。“非傻瓜”软件对使用者的计算机水平有较高要求,尤其对计算机编程能力和技巧要求较高。但使用者一旦掌握了它,通过编写程序,不仅能够实现常见的数据分析目标,还能自行对现有的模型、算法进行改进、扩充,从而充分满足不同个性化分析的需求。R 正是这样一款“非傻瓜”的统计分析软件。

共享性使得 R 博大精深,但也会令初学者眼花缭乱,常常因无从下手而感觉软件体系杂乱无章。根据由浅入深的数据分析需求,依据统计分析的基本框架,分阶段、分步骤地学习 R,是一种快速有效掌握R的基本策略。本书后续章节将对统计分析的基本框架做详细说明。1.2 R语言入门1.2.1 R中的基本概念

利用 R 语言进行统计分析的核心内容,是在 R 的工作空间中创建和管理 R 对象,调用已被加载的 R 包中的系统函数或编写用户自定义函数,以逐步完成数据的管理和分析。这里涉及几个基本概念:包、函数、工作空间、对象。掌握这些基本概念的含义,对快速入门R将有很好的帮助。

1.包(Packages)

R 语言是一种面向统计分析的共享性和开源性软件平台,是一种面向统计分析的计算机高级语言。具体讲,R是一个关于包的集合。包是关于函数、数据集、编译器等的集合。

包是R的核心,可划分为基础包(Base)和共享包(Contrib)两大类。(1)基础包

基础包,顾名思义,为 R 的基本核心系统,是默认下载和安装的包,由 R 核心研发团队(Development Core Team,简称 R Core)维护和管理。基础包支持各类基本统计分析和基本绘图等功能,并包含一些共享数据集供用户使用。(2)共享包

共享包是由 R 的全球性研究型社区和第三方提供的各种包的集合。迄今为止,共享包中的“小包”已多达 12000 多个,涵盖了各类现代统计和数据挖掘方法,涉及地理数据分析、蛋白质质谱处理、心理学测试分析等众多应用领域。使用者可根据自身的研究目的,有选择地自行指定下载、安装和加载。

2.函数

R 函数是存在于 R 包中的实现某个计算或某种分析的程序段,每个函数都有一个函数名。可通过函数调用的方式,直接调用已有函数解决分析中的各类计算问题。函数名是函数调用的唯一标识。可通过以下两种格式实现函数调用。

格式一:函数名(形式参数列表)

函数名后括号中附带形式参数的函数调用,称为有形式参数的函数调用。函数调用时,用户须在函数名后的括号中,依顺序给出一个或多个参数值,各参数值间以英文逗号隔开。R将这些参数值“喂给”函数,并根据参数值进行计算。

格式二:函数名()

函数名后括号中无任何内容的函数调用,称为无形式参数的函数调用。这类函数无须用户指定参数值,不必“喂给”函数任何具体值即可进行既定的计算。

3.工作空间(Workspace)

工作空间,简单讲就是 R 的运行环境,也称工作内存。R 的所有计算都是基于工作内存的,即需要将外存中的 R 包、数据等,首先加载到工作内存中,然后才能够进行后续的计算。基于这种工作机制,R 成功启动后会首先自动将基础包加载到工作空间中,旨在提供最基本的程序运行环境。

说明:

① R 的基础包由很多“小包”组成。R 启动后仅自动将其中的部分“小包”加载到工作内存,还有些“小包”需用户根据分析需要适时选择性地手工加载。

② 用户只能调用已加载到工作空间的R包中的函数和数据集等。

4.R对象

R 对象是存在于工作空间中的基本单元。分析的数据及相关分析结果等均将以 R 对象的形式组织。每个 R 对象都有一个对象名,是对象访问的唯一标识。直接给出对象名,即可访问R对象,查看其中存储的数据或分析结果或将新值赋值给R对象。

总之,R 的工作空间中加载了哪些包,包中包含了哪些函数,如何利用这些函数创建和管理R对象并进行数据分析,是R语言学习的主要线索。1.2.2 R的下载安装

可从R的网站www.r-project.org上免费下载并安装R软件。网站的主页如图1-2所示。图1-2 R的网站主页

R 网站主页列出了与 R 有关的各类信息,包括 R 社区的主要成员情况、R 的相关帮助文档等。R 的基础包、相关文档和大多数共享包以 CRAN(Comprehensive R Archive Network,http://CRAN.R-project.org)的形式集成在一起。同时,为确保不同地区R用户的下载速度,在全球众多国家均设置了镜像链接地址。镜像可视为一种全球范围的缓存,每个镜像地址对应一个镜像站点(Mirror Sites),它们有各自独立的域名和服务器,存放的 R 系统是主站点的备份,内容与主站点完全相同。用户下载 R 时,须首先单击 CRAN 链接,选择一个镜像链接地址。国内的R用户可以选择R在中国的镜像站点。

R支持在Windows、Linux、Mac OS X操作系统上运行,用户可根据不同情况选择不同的链接。如选择Download R for Windows,表示下载运行于Windows操作系统下的R,显示窗口如图1-3所示。图1-3 R Windows 版下载窗口

单击 base 基础包,下载可执行文件,文件名如 R-3.4.3-win.exe 等。R 的版本不同,可执行文件名也会有所差别。成功下载R之后,即可按照一般软件的安装方式进行安装。1.2.3 R程序的运行

1.了解R的窗口

成功启动R之后,显示的工作窗口如图1-4所示。图1-4 R的工作窗口

图1-4中,名为“RGui(64-bit)”的窗口为R的主窗口,用于管理R的运行环境。可通过窗口菜单和工具栏完成以下工作。

①【文件】菜单:新建、打开、打印和保存R程序文件,管理R的工作空间。

②【编辑】菜单:编写R程序,清理R控制台窗口。

③【查看】菜单:指定在主窗口中是否显示状态栏,是否显示工具。

④【其他】菜单:终止当前或所有运算,显示或删除工作空间中的 R 对象,显示当前已加载的包名称列表等。

⑤ 【程序包】菜单:加载已下载的包。在线条件下,指定镜像地址,下载安装共享包,对已下载安装包进行更新等。

⑥【窗口】菜单:指定R主窗口所包含的其他窗口(如控制台窗口、程序编辑窗口、图形窗口等)的排列形式等。如左右排列(【水平铺】)或是上下排列(【垂直铺】)等。

⑦【帮助】菜单:以各种方式浏览R的帮助文档等。

图 1-4 中,名为“R Console”的窗口为 R 的控制台窗口,R 的操作以及计算结果等均将默认显示在该窗口中。需要说明的是:

① 控制台窗口中的“>”为 R 的提示符,意味着当前已成功启动 R,且处于就绪状态,等待用户输入。用户应在提示符后书写R程序语句。

② R的程序语句严格区分英文大小写。

③ 可利用键盘的上下箭头键,在R的控制台窗口中回溯显示以往已输入的程序语句。

2.了解R的工作环境

了解 R 的工作环境,应主要了解:第一,当前工作空间已加载了基础包中的哪些“小包”?第二,已加载包中有哪些可被调用的函数?第三,如何获得帮助文档?(1)当前工作空间中已加载了基础包中的哪些“小包”

选择 R 主窗口菜单:【其他】→【列出查找路径】,或在控制台窗口的提示符“>”后调用函数search(),即以无形式参数的方式调用名为search的函数。于是,已加载包的名称列表将显示在R的控制台窗口中。

默认加载的包和主要功能如下:

· base包,是基本的R函数包;

· datasets包,是基本的R数据集包;

· grDevices包,是基本图形设备管理函数包;

· graphics包,是基本绘图函数包;

· stats包,是各类统计函数包;

· utils包,是R管理工具函数包;

· methods包,是关于R对象的方法和类定义函数包等。(2)已加载包中有哪些可被调用的函数

可在控制台窗口提示符“>”后调用函数:library(help="包名称"),查看已加载包中的函数列表和说明。

例如:library(help="stats"),即以有形式参数(这里的形式参数为 help="stats")的方式调用名为 library 的函数。于是,R 将自动显示 stats 包的版本号、作者,以及所包含的函数名、函数功能、测试数据集等。(3)如何获得R的帮助文档

对于R的初学者,学会使用R的帮助文档是必要的。在控制台窗口提示符“>”后调用以下主要函数。

① help.start():该函数以浏览器的形式打开R的帮助手册,如图1-5所示。图1-5 R的帮助手册

图1-5以链接的形式显示了R的相关资源和整套帮助手册。用户只须单击相关链接即可浏览相应内容。

② help(函数名):用于查看指定函数的帮助文档。

例如:help(boxplot)将显示 boxplot 函数的帮助文档。R 的函数帮助文档通常包括函数的功能说明(参见 Description 部分)、函数的调用形式(参见 Usage 部分)、形式参数的含义(参见 Arguments 部分)、形式参数的具体取值(参见 Value 部分)、调用示例(参见 Examples部分)等主要内容。

③ help.search("字符串"):查看包含指定字符串的帮助文档。

例如:help.search("box")。

3.运行R程序

R有两种程序运行方式:第一,命令行运行方式;第二,脚本运行方式。(1)命令行运行方式

命令行运行方式,是指在R控制台窗口的提示符“>”后,输入一条R程序语句并按回车键,得到运行结果,适用于较为简单、步骤较少的数据处理和分析。图 1-6 所示即为命令行运行方式。

图1-6 R的命令行运行方式示例

若控制台窗口的内容较多需要清除,可选择菜单【编辑】→【清空控制台】。

需要说明的是:如果一行程序语句没有输入完整就按回车键,R 会在下一行显示提示符“+”,并等待用户继续输入。按Esc键可终止继续输入。(2)脚本运行方式

脚本运行方式是指,首先编写 R 程序,然后一次性提交并运行该程序,适用于较为复杂、步骤较多的数据处理和分析,具体步骤如下。

第一步,新建或打开R程序。

新建或打开R程序的菜单为【文件】→【新建程序脚本】或【打开程序脚本】。R程序的文件扩展名为.R。图 1-7 所示的是通过名为“R 编辑器”的程序窗口编写 R 程序的示例。图1-7 R的脚本运行方式示例

图1-7中,R主窗口被划分为上、下两部分。上部分为R的程序编辑器窗口,正在编辑名为“L1_1.R”的程序。下部分为R的控制台窗口。

第二步,执行R程序。

可采用两种方式执行R程序:第一,逐行交互方式;第二,批处理方式。

逐行交互方式执行:选择菜单【编辑】→【运行当前行或所选代码】,或单击工具栏上的按钮,将运行光标所在行或已选行的程序,且运行结果显示在控制台窗口中。

批处理方式执行的主要步骤如下。

① 指定R程序所在的目录为R的当前工作目录。

当前工作目录是 R 默认读取文件、数据和保存各种结果的目录。若不特别指定,R 将自动到默认的当前工作目录寻找要运行的程序和数据等。

调用函数 getwd(),获得当前工作目录名。在 R 的控制台窗口中依次输入以下 R 语句,观察执行结果。

通常,用户自己编写的 R 程序不一定存放在默认的当前工作目录中,须指定某个特定目录作为R的当前工作目录。

选择菜单【文件】→【改变工作目录】,并指定目录,也可调用函数setwd("路径名")。

例如:在R的控制台窗口中依次输入以下R语句,观察执行结果。

② 执行当前工作目录中的指定R程序。调用函数source("R程序名")。

例如:在R的控制台窗口中依次输入以下R语句,观察执行结果。

R 程序的执行结果默认输出到控制台窗口中。当处理的数据量较大,计算结果较多时,往往希望将计算结果输出到控制台窗口的同时,再将其保存到一个指定的文本文件中。

为此,需在程序的第一行调用sink函数。函数的基本书写格式:

其中,结果文件一般为文本文件,默认位于当前工作目录下;参数 append 取 TRUE,表示若当前工作目录下有与结果文件同名的文件,则本程序的计算结果将追加到原文件内容的后面;取 FALSE,表示将本程序的计算结果覆盖原文件的内容。参数 split 取 TRUE,表示在计算结果输出到指定文件的同时,还输出到控制台窗口中;取 FALSE,表示计算结果仅输出到指定文件中。

如果后续输出结果不再需要保存到文件,只须在相应行上书写sink()即可。

例如:在R的控制台窗口中依次输入以下R语句,观察执行结果。1.2.4 R使用的其他方面

这里提示读者进一步关注两方面的内容:第一,如何拓展使用 R 包和函数;第二,R 的环境文件。

1.如何拓展使用R包和函数

关注如下问题:第一,当前下载安装了哪些 R 包;第二,如何加载尚未加载的 R 包并调用其中的函数;第三,如何使用R的共享包。(1)当前下载安装了哪些R包

选择窗口菜单【程序包】→【加载程序包】,将弹出一个名为“select one”的窗口,显示所有已下载安装的R包名称,其中包括已加载的包和尚未加载的包。(2)如何加载尚未加载的R包并调用其中的函数

基础包中有一些“小包”不会自动加载到 R 的工作空间中,已下载安装的共享包也不会自动加载。若要加载,应在上述名为“select one”的窗口中选择包名,或调用函数library("包名称"),指定将相应包加载到R的工作空间中。

包成功加载后便可按前述方式浏览包中可调用的函数,以有形式参数或无形式参数方式调用函数。

说明:

· R运行期间,所有包只须加载一次即可。退出并重新启动R后须再次加载。

· 对于不再有用的包,可卸载出R的工作空间。调用函数detach("package:包名称")。(3)如何使用R的共享包

共享包的使用原则:“先下载安装,再加载,后使用”,即首先下载安装共享包,然后将其加载到 R 的工作空间中,最后按照前述步骤浏览包中的函数,并以有形式参数或无形式参数的方式调用函数。

R启动后若计算机处于在线状态,下载安装加载共享包的步骤分以下两步:

第一步,指定镜像地址。选择菜单【程序包】→【设定CRAN镜像】。

第二步,下载安装。选择菜单【程序包】→【安装程序包】,或调用函数 install.packages ("包名称"),下载安装指定的包。

共享包下载安装完毕,还须将它们加载到R的工作空间中才可调用其中的函数。

说明:R的某些共享包之间存在依赖(Depend)关系。例如,A包中的某些函数具有较强的独立性和通用性。在研发 B 包时,为提高开发效率,B 包会直接调用 A 包中的这些通用函数。对此,称B包依赖于A包。若B包依赖于A包,则下载安装加载B包时还应下载安装加载A包。调用函数library(help="包名称")或installed.packages(),可了解包之间的依赖关系。包在加载时也会有相关提示信息。

可选择菜单或调用函数实现其他与R包下载安装相关的功能:

· 如果包已事先下载到本地计算机硬盘上,可选择菜单【程序包】→【Install package(s) from local files】,指定压缩文件后完成包的安装操作。

· 调用函数 old.packages(),显示已下载安装且当前有新版本的包的目录、版本、网络镜像监测点等信息。

· 如果已下载的包有了更新版本,选择菜单【程序包】→【更新程序包】,或调用函数update.packages("包名称"),进行在线更新。

· 调用函数new.packages(),显示尚未安装的新包名称列表。

· 调用函数RSiteSearch("检索词"),检索与检索词有关的R包信息和帮助页面。

说明:共享包通常可利用 Rtools 离线开发,并通过 ftp 上传至 CRAN(http://CRAN.R-project.org),也可借助R-Forge(http://R-Forge.R-project.org)开发平台以工程(Projects)形式研发 R 包和相关软件产品。R-Forge 提供统一的对 R 包及相关软件产品的日常检查、出错跟踪、备份等服务。下载 R-Forge 上的 R 包时,一般须指定下载地址(http://R-Forge.R-project.org)。此外,R 包下载安装后均会自动被 R CMD check 检查以确保在不同系统平台上正确运行。

2.R的环境文件

若要以文件形式保存 R 工作空间中的对象和控制台窗口中的语句等,就应创建 R 的环境文件。选择菜单【文件】→【保存工作空间】和【文件】→【保存历史】,将会在当前工作目录下,依次创建两个名为“.Rdata”和“.Rhistory”的环境文件,分别存储 R 对象和 R程序语句等。

再次启动 R 后,选择菜单【文件】→【加载工作空间】和【文件】→【加载历史】,即可将上次保存的环境文件中的内容,再次加载到工作空间。环境文件便于继续以往尚未完成的R工作。1.3 Rstudio简介

Rstudio 是 Rstudio 公司推出的一款 R 语言程序集成开发工具,可有效提高 R 语言程序开发的便利性。Rstudio 提供了良好的 R 语言代码编辑环境,R 程序调试环境,图形可视化环境以及方便的R工作空间和工作目录管理。

可登录 https://www.rstudio.com/免费下载 Rstudio。安装成功启动后的窗口如图 1-8 所示。图1-8 Rstudio界面

Rstudio窗口默认包括以下4个区域。

· 左上区域为R的程序代码区域。在该区域书写、调试和运行R程序。

· 左下区域为R的控制台窗口。R程序的运行结果默认输出到该区域。

· 右上区域为R的工作空间管理区域。主要显示工作空间中已加载的R包、R对象,以及上次工作的历史记录等。

· 右下区域为 R 的工作目录管理、图形显示、帮助等区域。其中,选择 Files 选项卡显示当前工作目录中的文件列表;选择 Plots 选项卡显示图形;选择 Packages 选项卡显示已安装的R包;选择Help选项卡显示帮助;等等。

Rstudio的操作使用非常易学。可选择菜单Tools→Global options对Rstudio环境进行必要的设置,窗口如图1-9所示。图1-9 Rstudio设置窗口

可选择 General 选项卡,设置 Rstudio 基于的 R 版本、默认的工作目录、默认的文本编码规则等。可选择 Packages选项卡,设置在Rstudio中下载R包时默认的 CRAN镜像地址等。1.4 从大数据分析案例看统计分析的基本框架

长期的理论和实践都毋庸置疑地验证了经典统计分析基本框架的完备性和通用性。对于大数据分析而言,沿用统计分析的基本框架(见图1-10)仍为一种稳健而有效的方案。

图 1-10 所示的分析框架涵盖了众多统计学的基本概念和理论体系,本书开篇直入主题,希望读者尽早厘清各种概念和方法,明确其在统计分析整体框架中的位置,便于后续主动把握数据分析的方向。这里以北京市 2016 年空气质量监测数据的分析为案例,说明基本框架中的相关概念。图1-10 统计分析的基本框架1.4.1 数据集

涉及的统计概念:

变量、变量值;

数值型变量、类别型变量、顺序型变量;

观测、总体、样本

统计分析的对象是数据集合,简称数据集。数据是一种普遍认知的大众化称谓,在统计上也有专有名词与其对应。统计学认为,数据集是由变量及多个变量值组成的集合。

变量通常用于描述研究对象的某种属性,变量值为某种属性的具体取值。

例如,对于北京市空气质量监测数据的分析案例,研究对象是空气质量。称空气质量等级(AQI,Air Quality Index)、PM2.5 浓度(PM2.5)、一氧化碳浓度(CO)、二氧化硫浓度(SO)、二氧化氮2浓度(NO)、臭氧浓度(O)、监测时间(Date)、监测点名称23(SiteName)、监测点类型(SiteTypes)等属性作为变量(用括号中的英文字母指代相应变量,也称为变量名)。

每个变量都有某些具体取值,称这些取值为对应变量的变量值。例如,PM2.5 浓度有45 微克/立方米、80 微克/立方米等众多变量值;监测点类型有城区环境评价点、郊区环境评价点、对照点及区域点、交通污染监控点等多个类别的变量值;分组后的 AQI 有一级优、二级良、三级轻度污染、四级中度污染、五级重度污染、六级严重污染多个水平的变量值。

根据变量值可将变量进一步划分为数值型变量、类别型变量、顺序型变量,其中后两类变量也统称为分类型变量。

本例中的数值型变量有 PM2.5、CO、SO、NO、O等。数值223型变量的变量值为连续或非连续的数字,各数值间的差具有可比性,且算术运算有意义。

本例中的分类型变量有 SiteTypes、SiteName 等。分类型变量的变量值为字符或数字标签。如对于监测点类型变量(SiteTypes),用1代表城区环境评价点,用2代表郊区环境评价点,用3代表对照点及区域点等。

本例中的顺序型变量有分组后的 AQI 等。顺序型变量的变量值也为字符或数值标签。如对于空气质量等级变量(分组后的AQI),用1代表一级优,用2代表二级良,用3代表三级轻度污染等。不同于类别型变量,顺序型变量的变量值间具有高低、大小、强弱等顺序关系。如AQI3(三级轻度污染)的污染物浓度高于2(二级良),高于1(一级优),等等,但各数值间的差不具有可比性,且算术运算没有意义。

数据集的数据一般以二维表的形式组织。一行为研究对象中的某个个体,统计上称为一个观测。如一个空气监测点某一天的平均监测结果。一列为一个变量,如 AQI、PM2.5 或 SO等。若数据集包含了21000条监测数据,则对应的二维表为1000行9列,如表1-1所示。表1-1 北京市空气质量监测数据示意

表1-1中的NA表示数据缺失。

利用 R 进行统计分析的首要任务,就是关注 R 以怎样的方式实现上述二维表数据的组织。

可从两个视角审视表 1-1 的数据。第一,数据是一份关于总体的数据;第二,数据是一份从总体中随机抽取的、具有总体代表性的样本数据。总体是包含研究元素全体的集合。样本是从总体中抽取的部分元素的集合。构成样本的元素数目称为样本量。

这里,将表1-1中的数据看作来自北京市2016年各区域空气质量监测总体数据的一个随机样本。统计上,往往依据样本数据对其来自的总体特征进行估计。对此,后续再做详细说明。1.4.2 分析目标和数据预处理

基于已有数据界定研究问题,确定分析目标,是数据分析的重中之重,它将直接影响后续数据分析的有关步骤和具体策略。

以北京市空气质量监测数据分析为例,对北京市空气质量监测的随机样本,界定的研究问题可以有:

· 分析供暖季各污染物浓度有怎样的分布特征。

· 是否存在PM2.5浓度“爆表”的情况?哪些监测点在哪些天出现了“爆表”?

· 估计2016年供暖季北京市PM2.5浓度的总体平均值。

· 对比不同类型监测点各污染物浓度总体平均值的差异。

……

为服务于分析目标,对原始数据的预处理是极为重要的。通常,数据预处理包括多个数据集的合并、派生新变量、数值型变量的分组或变换、类别型变量的重编码等。

例如,对于从官网下载的北京市空气质量监测数据,数据组织的特点:第一,将每天的监测数据组织成一个独立的数据文件,对于一年的数据应对应有365个数据文件;第二,每个数据文件中的列为监测点(如东四、天坛)等,行为某天某个时点的污染物浓度(如PM2.5、SO)等。例如,2016年3月22日各时点的部分监测数据如2表1-2所示。表1-2 北京市空气质量监测数据原始格式

为实现前述的研究目标,首先需要将各天的数据合并起来,组织成一个大的数据文件。进一步,为便于后续分析,还须将数据整理成表 1-1 的形式。对于本案例,数据预处理的主要工作将集中于此。

R 语言极为灵活,如何利用 R 的编程或现有函数,实现类似的数据预处理功能,是后续学习的一个重点。1.4.3 数据的基本分析

数据的基本分析是数据分析的入手点,涵盖内容较为宽泛,通常包括描述统计和数据的可视化等方面。对某个特定问题,因为要达成的分析目标不同,涉及的具体步骤也会有所差异。

1.描述统计

描述统计的主要目的有两个:第一,揭示单个变量的分布特点;第二,刻画两个或多个变量的相关性特征。

展示不同类型变量分布特征的工具是不同的。例如,对于数值型变量,可直接计算均值方差(或标准差)、偏态系数、峰度系数等描述统计量,它们是准确刻画数值型变量分布特点的重要指标。

刻画不同类型的两个或多个变量相关性特征的工具是不同的。例如,对于两个数值型变量的相关性,通常采用简单相关系数来度量。

对于表 1-1 所示的北京市空气质量监测数据,一方面,对 PM2.5、CO 等计算均值等描述统计量,以展示样本数据中各个变量的分布特点;另一方面,可计算 PM2.5 和 CO 的简单相关系数,度量两者相关性的强弱。

涉及的统计概念:统计量、参数

如果视数据集为一个随机样本,由此计算得到的均值、方差(或标准差)、偏态系数、峰度系数等,统称为统计量。统计量用于刻画样本的统计特征,通常以英文字母记。例如,变量 X 的均值记为,2方差(或标准差)记为S (或 S)等。如果视数据集为一个总体,由此计算得到的均值、方差(或标准差)、偏态系数、峰度系数等,统称为参数。参数用于刻画总体的统计特征,通常以希腊字母记。2如 X 的均值记为μ,方差(或标准差)记为σ (或σ)等。统计上通常将数据默认为随机样本,所以计算结果默认为统计量。

利用R能够方便地计算出各种描述统计量。

2.数据的可视化

图形是展示数据分布特征的最直观的方式。对于数值型变量,可绘制传统的直方图、折线图、箱线图、散点图等;对于分类型变量,可绘制传统的条形图、饼图等。

R 的图形制作功能强大,包括的图形种类繁多,不仅有上述传统的统计图形,还有其他更具特色的图形,如小提琴图、克利夫兰点图(见图1-11)、相关系数图(见图1-12)、马赛克图等。

R在变量分布特征和变量相关性的图形展示方面表现突出,这也是后续学习的重点之一。图1-11 PM2.5浓度的克利夫兰点图图1-12 各污染物浓度的相关系数图1.4.4 总体特征的推断

若分析的数据为随机样本,统计往往需要进一步依据样本数据,对其来自的总体特征进行推断。换言之,即基于样本统计量估计总体参数。

涉及的统计概念:单个总体参数的推断、多个总体参数的对比

单个总体参数的推断,是指利用一个随机样本,对它来自的这个总体的参数进行推断。

例如,对于表 1-1 所示的北京市空气质量监测数据,抽取供暖季的 PM2.5 样本数据,计算PM2.5的样本均值,然后估计供暖季北京市PM2.5的总体平均值μ。

多个总体参数的对比,指利用两个或多个随机样本,对它们来自的多个总体的参数有怎样的差异进行推断。

例如,对于表 1-1 所示的北京市空气质量监测数据,分别抽取供暖季的两个样本:一是西直门北区域的 PM2.5 样本数据(来自西直门北区域 PM2.5 的总体),二是定陵区域的PM2.5 样本数据(来自定陵区域 PM2.5 的总体),分别计算两个 PM2.5 的样本均值、,然后推断供暖季PM2.5两个总体的总体均值 μ和μ是否有显著12性差异等。1.4.5 推断多个变量间的总体相关性

分析事物之间的相互影响关系,是大数据分析中的普遍应用要求。

以北京市空气质量监测数据分析为例,可能涉及希望分析 PM2.5 浓度受哪些因素的影响,不同因素的影响程度有怎样的数量上的差异等问题。一方面,图 1-12 直观可见,PM2.5浓度与CO和NO2有着极为密切的关系。另外还须对CO和NO对PM2.5浓度的影响效应2做进一步的精确量化。

从统计角度解决这些问题,本质就是一个探索多个变量之间的总体相关性的过程,即以样本为研究对象,分析样本中各个变量之间的相关性,并推广到对变量总体间相关性的推断中。将涉及数据建模、模型评价和应用等诸多方面的问题。其中,数据建模涉及面非常广,包括从线性模型到非线性模型,从一元分析到多元统计,从满足分布假设的传统统计建模到以随机化为基础的现代统计建模乃至数据挖掘等众多方面。模型评价和应用涉及对所选模型合理性的检验,包括模型是否真实地揭示了变量总体间的相关性,模型是否在未来有较为理想的预测效果等。后续章节将对相关内容做详尽阐述。1.4.6 数据的聚类

无论数据集是样本数据还是总体数据,都需要对数据的内在结构进行剖析。

以北京市空气质量监测数据分析为例,可能涉及研究哪些监测点区域各污染物水平大致相同,哪些监测点区域的主要污染物类型相同及不同,等等。

从统计角度解决这些问题,本质就是通过聚类分析发现数据中的“自然”分组。聚类分析也涉及数据建模、模型评价和应用等方面。实现聚类的途径和角度不尽相同,可将其视为不同的聚类建模。聚类所得分组的合理性研究,可视为对聚类建模的评价。对未来新数据所属组别的预测,可视为聚类建模的应用。后续章节将对相关内容做详尽阐述。1.5 本章涉及的R函数

本章涉及的R函数列表如表1-3所示。表1-3 本章涉及的R函数列表第2章R的数据组织2.1 R的数据对象

数据分析的首要任务是数据组织。数据对象是 R 存储管理数据的基本方式。每个数据对象都有一个对象名,它是创建、访问和管理对象的唯一标识。对象名通常由若干区分大小写的英文字母组成。2.1.1 R对象的类型划分

R 数据对象可有两种不同角度的类型划分:第一种,从存储角度划分类型;第二种,从结构角度划分类型。

1.从存储角度划分R对象

数据对象是 R 组织数据的基本方式。由于不同类型的数据在计算机中所需的存储字节不同,可将 R 数据对象划分为数值型、字符型、逻辑型等主要存储类型。了解 R 数据对象的存储类型,能够保证数据处理的一致性,有效避免后续 R程序编写过程中的某些语法错误。(1)数值型

数值型(Numeric)是计算机存储诸如人口数、空气中 PM2.5 浓度等数值型数据的类型总称。数值型可进一步细分为整数型和实数型。整数型(Integer)是整数的存储形式。根据整数位数的长短,通常需要2字节或4字节的存储空间。实数型用来存储包含小数位的数值型数据。根据实数取值范围的大小和小数位精度的高低,通常需要4字节或8字节存储。对占用8 字节空间的实数,称为双精度型(Double)数。R 中的数值型数据均默认为双精度型数,其常量(指不变的量)的具体形式如123.5、1.235E2、1.235E-2等。其中,1.235E2表示2-21.235×10,1.235E-2表示1.235×10,均为科学计数法形式。(2)字符型

字符型(Character)是计算机存储诸如姓名、籍贯等字符形式数据的类型。字符型常量的具体形式如"ZhangSan"、"BeiJing"等,是由英文双引号括起来的一个字符序列,简称字符串。字符串的长度决定了存储所需占用的字节数。(3)逻辑型

逻辑型(Logical)是计算机存储诸如是否已婚、是否通过某个考试等是非判断形式数据的类型。逻辑型数据只有真(是)、假(否)两个常量取值,具体形式为大写的英文单词 TRUE和FALSE。它们之间的关系:TRUE等于!FALSE,FALSE等于!TRUE。其中符号!表示取反操作。逻辑型数据只需1字节存储。

2.从数据组织结构角度划分R对象

数据对象是 R 组织数据的基本方式。由于数据分析实践中有不同的数据组织结构,所以 R 数据对象可划分为向量、矩阵、数组、数据框、列表等多种结构类型。了解 R 数据对象的结构类型,是根据数据实际情况,选择恰当数据组织方式的基础。(1)向量(Vector)

向量是 R 数据组织的基本单位。从统计角度看,一个向量对应一个变量,存储着多个具有相同存储类型的变量值。若无明确说明,向量均为列向量。

需要注意的是:因子(Factor)是一种特殊的向量,将在2.2.1节详细讨论。(2)矩阵(Matrix)

矩阵是一个二维表格形式,用于组织多个具有相同存储类型的变量。矩阵的列通常为变量,行为观测。(3)数组(Array)

数组是多张二维表的集合,一般用于组织统计中的面板数据等。(4)数据框(Data Frame)

数据框也是一张二维表格,与矩阵有类似之处,但用于组织存储类型不尽相同的多个变量。其中,数据框的列通常为变量,行为观测。(5)列表(List)

多个向量、矩阵、数组、数据框、列表的集合即列表。多用于相关统计分析结果的“打包”集成。

不同结构类型的R对象可表示成如图2-1所示的直观样式。图2-1 不同组织结构的R对象2.1.2 创建和管理R对象

数据分析的首要任务是数据的组织管理,且 R 的对象是用于数据组织的,所以应首先创建R对象,然后才能对其进行相关的管理等。

1.创建R对象

创建R对象是通过赋值语句实现的。基本书写格式:

式中,“<-”称为 R 的赋值操作符,功能是将其右侧的计算结果赋值到左侧对象所在的内存单元中,也称给 R 对象赋值。一方面,赋值操作符右侧的具体书写形式会因 R 对象存储类型和组织结构类型的不同而不同;另一方面,赋值操作符右侧不同的书写形式也决定了其左侧对象的类型。每个对象都有一个对象名。

2.访问R对象

访问数据对象,即浏览R对象的具体取值(也称对象值)。基本书写格式:

于是,指定R对象的对象值将按行顺序显示在R的控制台窗口中。

3.查看R对象的结构

查看R对象的结构,即查看R对象的存储类型以及与结构相关的信息。基本书写格式:

于是,指定对象的相关结果信息将显示在R的控制台窗口中。

4.管理R对象

管理 R 对象即浏览当前工作空间中包含哪些对象,可删除不再有用的对象等。基本书写格式:

于是,当前工作空间中的对象名列表将显示在R的控制台窗口中。

对象名列表中包含多个对象名,各个对象之间应用英文逗号分隔。

删除当前工作空间中的指定对象。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载