@Rstat
2017-07-09T11:00:09.000000Z
字数 18377
阅读 3410
多元统计分析及R语言建模
【目的要求】要求学生了解多元分析的基本内容及应用领域,并掌握一些基本概念。对统计分析软件有一个基本认识。
【教学内容】多元分析基本内容,以及本课程的主要安排。相关的补充知识和将要涉及的计算软件程序。
在现实生活中,受多种指标共同作用和影响的现象大量存在。当变量较多时,变量之间不可避免地存在着相关性,分开处理不仅会丢失很多信息,往往也不容易取得好的研究结论。多元统计分析就是研究多个随机变量之间相互依赖关系以及内在统计规律的一门学科。
在统计学的基本内容中,只考虑了一个因素或几个因素对一个观测指标(变量)影响大小的问题,称为一元统计分析或单因素分析。若考虑一个因素或几个因素对两个或两个以上观测指标(变量)的影响大小,或者多个观测指标(变量)间的相互关系问题,即为多元统计分析。多元统计分析是一个研究客观事物中多个指标(变量)间相互依赖的统计规律的数理统计学分支。
在经济生活中,受多种指标(随机变量)共同作用和影响的现象大量存在。有两种方法可同时对多个随机变量的观测数据进行有效地分析和研究。一种做法是把多个随机变量分开分析,每次处理一个去逐次分析研究。但当变量较多时,变量之间不可避免地存在着相关性,而且分开处理不仅会丢失很多信息,往往也不容易取得好的研究结论。另一种做法是同时进行分析研究,即用多元统计分析方法来解决,通过对多个随机变量观测数据的分析,来研究变量之间的相互关系以及揭示变量的内在规律。所以说,多元统计分析就是研究多个随机变量之间相互依赖关系以及内在统计规律的一门学科。
多元统计分析是运用数理统计方法来研究解决多指标问题的理论和方法。构成多元统计分析模型的数学方法并不新颖,如与多元有关的基本概率分布(多元正态分布就源自19世纪30年代),主成分分析最初由K.Pearson于1901年提出,再由Hotelling(1933)推广的一种统计方法。由于当随机变量较多时,多元分析的计算工作量极端繁冗,没有计算机根本无法完成。因此,直到有了计算机之后,多元分析技术才进入实用阶段并迅速发展。近20年来,随着计算机应用技术的发展和科研生产的迫切需要,多元统计分析技术被广泛地应用于经济、管理、地质、气象、水文、医学、工业、农业和教育学等许多领域,已经成为解决实际问题的有效方法。
本书从实用角度出发,给出了实际工作者在处理多元系统时经常需要解决的问题和方法。在采用多元统计分析技术进行数据处理、建立宏观或微观系统模型时,可以解决以下几个方面的问题:
(1)变量之间相依性分析:分析多个或多组变量之间的相依关系,是一切科学研究尤其是经济管理研究的主要内容,简单相关分析、偏相关分析、复相关分析和典型相关分析提供了进行这类研究的必要方法。
(2)构造预测模型,进行预报控制:在自然和社会科学领域的科研与生产中,探索多元系统运行的客观规律及其与外部环境的关系,进行预测预报,以实现对系统的最优控制,是应用多元统计分析技术的主要目的。在多元统计分析中,用于预报控制的模型有两大类。一类是预测预报模型,通常采用多元线性回归或逐步回归分析、非线性回归、判别分析等建模技术。另一类是描述性模型,通常采用综合评价的分析技术。
(3)进行数值分类,构造分类模式:在多元系统的分析中,往往需要将系统性质相似的事物或现象归为一类,以便找出它们之间的联系和内在规律性。过去许多研究多是按单因素进行定性处理,以致处理结果反映不出系统的总特征。进行数值分类,构造分类模式一般采用聚类分析和判别分析技术。
(4)简化系统结构,探讨系统内核:可采用主成分分析、因子分析、对应分析等方法,在众多因素中找出各个变量最佳的子集合,从子集合所包含的信息描述多元的系统结果及各个因子对系统的影响。抓住主要矛盾,把握主要矛盾的主要方面,舍弃次要因素,以简化系统的结构,认识系统的内核。
如何选择适当的方法来解决实际问题,需要对问题进行综合考虑。对一个问题可以综合运用多种统计方法进行分析。例如一个预报模型的建立,可先根据有关经济学、管理学原理,确定理论模型和设计方案;根据观察或试验结果,收集相应资料;对资料进行初步提炼;然后应用统计分析方法(如相关分析、逐步回归分析、主成分分析等)研究各个变量之间的相关性,选择最佳的变量子集合;在此基础上构造预报模型,最后对模型进行诊断和优化处理,并应用于经济管理的生产实际中。
多元统计分析包括的主要内容有:多元数据图示法、多元线性相关与回归分析、聚类分析、判别分析、主成分分析、因子分析、对应分析、典型相关分析等。
1. 多元数据的数学表示
多元数据是指具有多个变量的数据,如果将每个变量看作一个随机向量元素的话,多个变量形成的数据集将是一个随机矩阵,所以多元数据的基本表现形式将是一个矩阵。对这些数据矩阵的数学表示是我们的首要任务。也就是说,多元数据的基本运算将是矩阵运算,而R语言是一个优秀的矩阵运算语言,是我们应用其的一大优势。
2. 多元数据的直观分析
直观分析即图示法是进行数据分析的重要辅助手段。例如通过两变量的散点图可以考察异常的观察值对样本相关系数的影响,利用矩阵散点图考察多元之间的关系,利用多元箱尾图可以比较几个变量的基本统计量大小差别。
3. 多元线性相关分析
相关分析就是要通过对大量数字资料的观察,消除偶然因素的影响,探求现象之间相关关系的密切程度和表现形式。在经济系统中,各个经济变量常常存在内在的关系。例如,经济增长与财政收入,人均收入与消费支出等。在这些关系中,有一些是严格的函数关系,这类关系可以用数学表达式表示出来。还有一些是非确定的关系,一个变量产生变动会影响其他变量,使其产生变化。其变化具有随机的特性,但是仍然遵循一定的规律。对于函数关系可以很容易地解决,而对那些非确定的关系,称为相关关系,才是我们所关心的问题。
4.多元线性回归分析
回归分析研究的主要对象是客观事物变量间的统计关系。它是建立在对客观事物进行大量实验和观察的基础上,用来寻找隐藏在看起来不确定的现象中的统计规律的方法。回归分析不仅要揭示自变量对因变量的影响大小,还可以由回归方程进行预测和控制。回归分析的主要研究范围包括:
(1)线性回归模型:一元线性回归模型,多元线性回归模型。
(2)回归模型的诊断:回归模型基本假设的合理性,回归方程拟合效果的判定,选择回归函数的形式。
(3)广义线性模型:含定性变量的回归,如自变量含定性变量,因变量含定性变量。
在实际研究中,经常遇到一个随机变量随一个或多个非随机变量变化而变化,而这种变化关系明显呈线性,怎样用一个较好的模型来表示,然后进行估计与预测,并对其线性进行检验成为一个重要问题。在经济预测中,常用多元回归模型反映预报量与各因素之间的依赖关系, 其中线性回归分析有着广泛的应用。
5. 广义和一般线性模型
由于统计模型的多样性和各种模型的适应性,针对应变量和解释变量的取值性质,统计模型可分为多种类型。通常自变量为定性变量的线性模型称为一般线性模型,例如实验设计模型、方差分析模型。应变量为非正态分布线性模型称为广义线性模型,例如Logistic回归模型,对数线性模型,Cox比例风险模型。
1972年,Nelder对经典线性回归模型作了进一步的推广,建立了统一的理论和计算框架,对回归模型在统计学中的应用产生了重要影响。这种新的线性回归模型称作广义线性模型 (generalized linear models),简称GLM。广义线性模型是多元线性回归模型的推广。它与典型线性模型的区别是其随机误差的分布不是正态分布,其随机误差的分布是可以确定。广义线性模型不仅包括离散变量,也包括连续变量。正态分布也被包括在指数分布族里,该指数分布族包含描述发散状况的参数, 属于双参数指数分布族。
6.判别分析
判别分析是多元统计分析中用于判别样本所属类型的一种统计分析方法。所谓判别分析法,是在已知的分类之下,一旦遇到有新的样品时,可以利用此法选定一判别标准,以判定该新样品放置于哪个类中。判别分析的目的是对已知分类的数据建立由数值指标构成的分类规则,然后把这样的规则应用到未知分类的样品中去分类。例如,我们获得了患胃炎的病人和健康人的一些化验指标,就可以从这些化验指标中发现两类人的区别。把这种区别表示为一个判别公式,然后对怀疑患胃炎的人就可以根据其化验指标用判别公式诊断。
7.聚类分析
聚类分析是研究“物以类聚”的一种现代统计分析方法,在社会、人口、经济、管理、气象、地质、考古等众多的研究领域中,都需要采用聚类分析作分类研究。例如不同地区城镇居民收入和消费状况的分类研究;区域经济及社会发展水平的分析及全国区域经济综合评价;在儿童生长发育研究中,把以形态学为主的指标归于一类,以机能为主的指标归于另一类。过去人们主要靠经验和专业知识,作定性分类处理,很少利用数学方法,致使许多分类带有主观性和任意性,不能很好地揭示客观事物内在的本质差别和联系,特别是对于多因素、多指标的分类问题,定性分类更难以实现准确分类。为了克服定性分类的不足,多元统计分析逐渐的被引入数值分类学,形成了聚类分析这个分支。聚类分析是一种分类技术,与多元分析的其他方法相比,该方法较为粗糙,理论上还不完善,但应用方面取得了很大成功。与回归分析、判别分析一起被称为多元分析的三个主要方法。
8.主成分分析
在实际问题中,研究多元问题是经常遇到的,然而在多数情况下,不同变量之间是有一定相关性,必然增加了分析问题的复杂性。主成分分析就是一种通过降维技术把多个指标约化为少数几个综合指标的统计分析方法。例如在经济管理中用主成分分析将一些复杂的数据综合成几个商业指数形式,如物价指数、生活费用指数、商业活动指数等。又如对全国31个省市自治区经济发展作综合评价,这时显然需要选取很多指标,如何将这些具有错综复杂关系的指标综合成几个较少的成分,既有利于对问题进行分析和解释,又能便于抓住主要矛盾做出科学的评价,就可以用主成分分析方法。
9.因子分析
因子分析是主成分分析的推广,它也是一种把多个变量化为少数几个综合变量的多元分析方法,但其目的是用有限个不可观测的隐变量来解释原变量之间的相关关系。主成分分析通过线性组合将原变量综合成几个主成分,用较少的综合指标来代替原来较多的指标(变量)。但在多元分析中,变量间往往存在相关性,是什么原因使变量间有关联呢?是否存在不能直接观测到的、但影响可观测变量变化的公共因子?因子分析就是寻找这些公共因子的统计分析方法,它是在主成分的基础上构筑若干意义较为明确的公因子,以它们为框架分解原变量,以此考察原变量间的联系与区别。例如在研究糕点行业的物价变动中,糕点行业品种繁多,多到几百种甚至上千种,但无论哪种样式的糕点,用料不外乎面粉、食油、糖等主要原料。那么面粉、食油、糖就是众多糕点的公共因子,各种糕点的物价变动与面粉、食油、糖的物价变动密切相关,要了解或控制糕点行业的物价变动只要抓住面粉、食油和糖的价格即可。
10.对应分析
对应分析又称为相应分析,于1970年由法国统计学家J.P.Beozecri提出。对应分析是在因子分析基础之上发展起来的一种多元统计方法,是Q型和R型因子分析的联合应用。在经济管理数据的统计分析中,经常要处理三种关系:即样品之间的关系(Q型关系)、变量间的关系(R型关系)以及样品与变量之间的关系(对应型关系)。如对某一行业所属的企业进行经济效益评价时,不仅要研究经济效益指标间的关系,还要将企业按经济效益的好坏进行分类,研究哪些企业与哪些经济效益指标的关系更密切一些,为决策部门正确指导企业的生产经营活动提供更多的信息。这就需要有一种统计方法,将企业(样品)和指标(变量)放在一起进行分析、分类、作图,便于做经济意义上的解释。解决这类问题的统计方法就是对应分析。
11.典型相关分析
在相关分析中,当考察的一组变量仅有两个时,可用简单相关系数衡量,当考察的一组变量有多个时,可用复相关系数衡量之。而大量的实际问题需要我们把指标之间的联系扩展到两组随机变量,即两组随机变量之间的相互依赖关系。典型相关分析就是用来解决此类问题而提出的一种分析方法。它实际上是利用主成分的思想来讨论两组随机变量的相关性问题,把两组变量间的相关性研究化为少数几对变量之间的相关性研究,而且这少数几对变量之间又是不相关的,以此来达到化简复杂相关关系的目的。典型相关分析在经济管理实证研究中有着广泛的应用,因为许多经济现象之间都是多个变量对多个变量的关系。例如,在研究通货膨胀的成因时,可把几个物价指数作为一组变量,把若干个影响物价变动的因素作为另一组变量,通过典型相关分析找出几对主要综合变量,结合典型相关系数对物价上涨及通货膨胀的成因,给出较深刻的分析结果。
12. 多维标度法
多维标度分析(Multidimensional scaling,MDS),是以空间分布的形式表现对象之间相似性或亲疏关系的一种多元数据分析方法。1958年 Torgerson在其博士论文中首次正式提出这一方法。MDS分析多见于市场营销,近年来在经济管理领域的应用日趋增多,但国内在这方面的应用报道极少。多维标度法是通过一系列技巧,使研究者识别构成受测者对样品进行评价基础的关键维数。比如,多维标度法常用于市场研究中,以识别构成顾客对产品、服务或者公司的评价基础的关键维数。其他的应用包括比较自然属性(比如食品口味或者不同的气味),对政治候选人或事件的了解,甚至评估不同群体的文化差异。多维标度法通过受测者所提供的对样品的相似性或者偏好的判断推导出内在的维数。一旦有数据,多维标度法可以用来做:(1)评价样品时受测者用什么维数;(2)在特定情况下他们可能使用多少维数;(3)每个维数的相对重要性;(4)如何获得样品关联的感性认识。
13. 综合评价方法
20世纪70~80年代,是现代科学评价蓬勃兴起的年代,在此期间产生了很多种应用比较广泛的评价方法,例如ELECTRE法、多维偏好分析的线性规划法(LINMAP)、层次分析法(AHP)、数据包络分析法(EDA)、逼近于理想解的排序法(TOPSIS)等,这些方法到现在已经发展得相对完善了,而且它们的应用也比较广泛。
而我国现代科学评价的发展则是在20世纪80~90年代,对评价方法及其应用的研究也取得了很大的成效,把综合评价方法应用到国民经济各个部门中去,例如可持续发展综合评价、小康评价体系、现代化指标体系、国际竞争力评价体系等。
多指标综合评价方法具有以下的特点:包含若干个指标,分别说明被评价对象的不同方面;评价方法最终要对被评价对象做出一个整体性的评判,用一个总指标来说明被评价对象的一般水平。
目前常用的综合评价方法较多,如综合评分法、综合指数法、秩和比法、层次分析法、TOPSIS法、模糊综合评判法、数据包络分析法等。
(1)SAS软件简介
SAS是使用最为广泛的三大著名统计分析软件(SAS,SPSS和BMDP)之一,是目前国际上最为流行的一种大型统计分析系统,被誉为统计分析的标准软件。
SAS 系统全称为Statistics Analysis System,最早由北卡罗来纳大学的两位生物统计学研究生编制,并于1976年成立了SAS软件研究所,正式推出了SAS软件。SAS是用于决策支持的大型集成信息系统,但该软件系统最早的功能限于统计分析,至今,统计分析功能也仍是它的重要组成部分和核心功能。SAS现在的版本为9.0版,大小约为1G。经过多年的发展,SAS已被全世界120多个国家和地区的近三万家机构所采用,直接用户则超过三百万人,遍及金融、医药卫生、生产、运输、通讯、政府和教育科研等领域。在数据处理和统计分析领域,SAS系统被誉为国际上的标准软件系统,堪称统计软件界的巨无霸。
SAS 系统是一个组合软件系统,它由多个功能模块组合而成,其基本部分是BASE SAS模块。BASE SAS模块是SAS系统的核心,承担着主要的数据管理任务,并管理用户使用环境,进行用户语言的处理,调用其他SAS模块和产品。也就是说,SAS系统的运行,首先必须启动BASE SAS模块,它除了本身所具有数据管理、程序设计及描述统计计算功能以外,还是SAS系统的中央调度室。它除可单独存在外,也可与其他产品或模块共同构成一个完整的系统。各模块的安装及更新都可通过其安装程序非常方便地进行。SAS系统具有灵活的功能扩展接口和强大的功能模块,在BASE SAS的基础上,还可以增加如下不同的模块而增加不同的功能:SAS/STAT(统计分析模块)、SAS/GRAPH(绘图模块)、SAS/QC(质量控制模块)、SAS/ETS(经济计量学和时间序列分析模块)、SAS/OR(运筹学模块)、SAS/IML(交互式矩阵程序设计语言模块)、SAS/FSP(快速数据处理的交互式菜单系统模块)、SAS/AF(交互式全屏幕软件应用系统模块)等等。SAS有一个智能型绘图系统,不仅能绘各种统计图,还能绘出地图。SAS提供多个统计过程,每个过程均含有极丰富的任选项。用户还可以通过对数据集的一连串加工,实现更为复杂的统计分析。此外,SAS还提供了各类概率分析函数、分位数函数、样本统计函数和随机数生成函数,使用户能方便地实现特殊统计要求。
SAS 是由大型机系统发展而来,其核心操作方式就是程序驱动,经过多年的发展,现在已成为一套完整的计算机语言,其用户界面也充分体现了这一特点:它采用MDI (多文档界面),用户在PGM视窗中输入程序,分析结果以文本的形式在OUTPUT视窗中输出。使用程序方式,用户可以完成所有需要做的工作,包括统计分析、预测、建模和模拟抽样等。但是,这使得初学者在使用SAS时必须要学习SAS语言,入门比较困难。 SAS的Windows版本根据不同的用户群开发了几种图形操作界面,这些图形操作界面各有特点,使用时非常方便。但是由于国内介绍他们的文献不多,并且也不是SAS推广的重点,因此还不为绝大多数人所了解。
(2)SPSS软件简介
SPSS(Statistical Package for the Social Science)社会科学用软件包是世界上著名的统计分析软件之一。SPSS名为社会学统计软件包,这是为了强调其社会科学应用的一面(因为社会科学研究中的许多现象都是随机的,要使用统计学和概率论的定理来进行研究),而实际上它在社会科学、自然科学的各个领域都能发挥巨大作用,并已经应用于经济学、生物学、教育学、心理学、医学以及体育、工业、农业、林业、商业和金融等各个领域。SAS是功能最为强大的统计软件,有完善的数据管理和统计分析功能,是熟悉统计学并擅长编程的专业人士的首选。与SAS比较,SPSS则是非统计学专业人士的首选。
SPSS有如下特点:
■操作简单:除了数据录入及部分命令程序等少数输入工作需要键盘键入外,大多数操作可通过“菜单”、“按钮”和“对话框”来完成。
■无须编程:具有第四代语言的特点,告诉系统要做什么,无需告诉怎样做。只要了解统计分析的原理,无需通晓统计方法的各种算法,即可得到需要的统计分析结果。对于常见的统计方法,SPSS的命令语句、子命令及选择项的选择绝大部分由“对话框”的操作完成。因此,用户无需花大量时间记忆大量的命令、过程、选择项。
■功能强大:具有完整的数据输入、编辑、统计分析、报表、图形制作等功能。自带11种类型136个函数。SPSS提供了从简单的统计描述到复杂的多因素统计分析方法,比如数据的探索性分析、统计描述、列联表分析、二维相关、秩相关、偏相关、方差分析、非参数检验、多元回归、生存分析、协方差分析、判别分析、因子分析、聚类分析、非线性回归、Logistic回归等。
■方便的数据接口:能够读取及输出多种格式的文件。比如由dBASE、FoxBASE、FoxPRO产生的dbf文件,文本编辑器软件生成的ASCⅡ数据文件,Excel的xls文件等均可转换成可供分析的SPSS数据文件。能够把SPSS的图形转换为7种图形文件。输出结果可保存为txt及html格式的文件。
■灵活的功能模块组合:SPSS for Windows软件分为若干功能模块。用户可以根据自己的分析需要和计算机的实际配置情况灵活选择。
(3)S-Plus简介
S_Plus统计软件是美国Insightful公司的旗舰产品,是世界最流行的统计分析软件之一,尤其为专业人士所喜爱。它主要用于统计分析、统计作图、数据挖掘等,为人们提供了一个弹性的、互动的可视化环境来分析和展示数据。
S-Plus主要有四大特点:
■既可以像所有通用统计软件一样通过简单的操作界面来实现基本统计分析和统计作图,又可以用它所特有的S高级语言环境来完成各种复杂的任务。S语言的扩展功能使得它可以很容易地实现一种新的统计方法。
■提供了最为全面的统计模型和分析手段,包括各种线性和非线性回归分析、随机效应、生存分析、方差分析、聚类分析以及时间序列分析等。Insightful公司一直密切关注统计学发展的最新动态,保持与全球多个领域的顶尖统计学家的紧密合作,因此,各种统计方法的进展都会很快被扩展到S-Plus中。
■具有很强的图形处理能力,拥有独一无二的可视化交互式图形显示。S_Plus产生的图形可以是面向对象的,可以提供广泛的可供选择的2D和3D图形种类,且利用Graphlets技术所产生的互动式图形可以让使用者能够通过图形逐层下探来观察和探索数据。
■兼容性极好,可以直接实现与Excel,Lotus,Access,SAS,SPSS等常用软件的数据转换,也可以方便地插入C语言和Fortran语言等编制的计算机程序。S-Plus统计软件是在S语言的环境下运行的,S语言是由AT&T贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。它丰富的数据类型(向量、数组、列表、对象等),特别有利于实现新的统计算法,其交互式运行方式、强大的图形及交互图形功能可以让使用者方便地探索数据。
数值分析软件较多,这里重点介绍一下应用最广泛的Matlab软件。
(1)MATLAB的概况
MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、编制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载使用。
MATLAB包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。
开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。
(2)MATLAB的语言特点
一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB最突出的特点就是简洁。MATLAB用更直观的,符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观,最简洁的程序开发环境。
另外,MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。MATLAB 产品族可以用来进行以下各种工作:
■数值分析
■数值和符号计算
■工程与科学绘图
■控制系统的设计与仿真
■数字图像处理技术
■数字信号处理技术
■通讯系统设计与仿真
■财务与金融工程
免费的数值与统计分析软件也较多,但发展最快,应用最好的当属Splus的免费软件R语言。
简单来说,R是一个用于统计计算的很成熟的免费软件。你也可以把它理解为一种计算机语言,实际上很多人都直接称呼它为“R语言”,它比C++,Fortran等不知道简单了多少倍!如果你现在正要用统计方法对数据进行统计计算、分析甚至目前比较流行的数据挖掘,那么建议你使用R。原因有三点:
(1)功能强大
由于统计分析的重要性,早在1977年著名的贝尔实验室的一个开发小组就已经开始一个名为“S”的研究项目。从“S”被研究成功到导入市场成为畅销产品“S-Plus”,人们分析、显示和处理数据的方式和能力被彻底的改变了。并且“S-Plus”和其他的类如“C语言”等高级计算机语言之间的交互性也非常的友好。
而号称“S-Plus”免费版的“R”,就是以“S-Plus”作为开发蓝本的,从R诞生到现在,关于R与S-Plus孰强孰弱的争论已经有了很多。普遍来讲,有些功能在S-Plus中能被更快更好的执行是毫无疑问的,而有些功能则在R中才能有更加精彩的表现。
(2)免费,开源
前面我讲到R是一个免费软件,其实还不是很确切。准确来讲,R是一个开源软件。现在,开放源代码软件在科学和工程工作中的地位日益重要。R的开源性,使得它自从90年代中被开发出来至今,它的发展就一直没有间断过,很多国家都相继出现了关于讨论开发R的综合网站。关于R的各种新的附加模块一直都是层出不穷,大大的方便了各类研究人员和院校师生。更因为它的免费,在美国、日本有很多大学,老师都用R来帮助自己讲课,学生也用R处理各种数据来帮助自己交报告。
另外一个角度,R其实就象是LINUX和PHP一样,在国外,大学生很多都是用LINUX系统,用PHP编程。而由于国内盗版软件满天飞的局面,不管正版盗版大家用的都是WINDOWS,一写程序很多都是ASP,一看工具清一色的MS系列最新版。在不讨论法律的前提下,虽然盗版软件能够让人节省金钱和精力,但实际上使用盗版软件也就等于你自己堵住了自己的另外一条出路,一条通往开源软件的路,一条更让人向往的路。
(3)前景广阔
■2009年纽约时报记者Ashlee Vance《纽约时报》科技版刊登了题为 Data Analysts Captivated by R’s Power的文章,这是R自1996年由Robert Gentleman和Ross Ihaka 教授开发以来的最大新闻之一,值得庆贺。R自诞生以来,深受统计学家和统计、计量爱好者的喜爱,已经成为主流软件之一。
■R重要的一点是怎么都不会高估它,它允许统计学家做很多复杂的分析,而不需要懂得很多的计算机知识。——Google统计家Daryl Pregibon
■让R变得如此有用和如此快地广受欢迎是统计学家、工程师、科学家能够精炼代码或编写各种特殊任务的包。R包增添了很多高级算法、作图颜色、文本注释,以及与数据库链接等提供了挖掘技术。
金融服务部门对R表现出了极大的兴趣,各种各样的衍生品分析包出现。
R最优美的地方是它能够修改很多前人编写的包的代码做各种你所需的事情,实际你是站在巨人的肩膀上。——Google首席经济学家Hal Varian
■R已经成为一个人从研究生院毕业后的第二门语言了,那里由很多各种各样的code,而SAS留言板的人气存在一定比例的下降。
——辉瑞(财富500强公司之一)非临床统计副主任Max Kuhn
一、什么是R语言
R语言是一种为统计计算和图形显示而设计的语言环境,是贝尔实验室(Bell Laboratories) 的Rick Becker、John Chambers和AllanWilks开发的S语言的一种实现,提供了一系列统计和图形显示工具。
R语言具有丰富的统计方法,大多数人使用R语言是因为其强大的统计功能。不过对R语言比较准确的认识是一个内部包含了许多统计技术的环境。部分的统计功能是整合在R环境的底层,但是大多数统计功能则以包的形式提供。大约有25个包和R同时发布,也被称为标准包,如果想得到更多的其它包,可以在R的网站上(http://www.r-project.org)下载,其上还提供了其它比如关于R使用的一些资料。大多数经典的统计方法和最新的技术都可以在R中直接得到,用户只要花点时间去寻找就可以了。
二、为什么要用R语言
随着计算机技术的迅速发展,现代统计方法解决问题能力的深度和广度都有了很大的拓展。而统计软件正是我们应用统计方法不可或缺的工具。统计软件随着计算机技术和统计技术的发展不断推陈出新,名目繁多,各具特色,令人有无所适从之感。随着全球对知识产权保护要求的不断提高,现在的开放源代码逐渐开始形成一种市场,R语言正是在这个大背景下发展起来的,以S语言环境为基础的R语言由于其鲜明的特色一出现就受到了统计专业人士的青睐,成为国外大学里相当标准的统计软件。
R语言是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。在目前保护知识产权的大环境下,开发和利用R语言将对我国的统计事业具有非常重大的现实意义。
三、R语言的优势和劣势
1. 优势
(1)作为一个免费的统计软件,它有UNIX、LINUX、MacOS和WINDOWS版本,均可免费下载和使用。
(2)解决统计软件用于统计学教学和科研中存在的问题:国内目前缺乏适合开展统计分析教学科研的统计分析软件,SAS、SPSS、Splus等统计软件,由于没有版权,需要昂贵的价钱购买,更新很慢,并要大量的维护费用,许多内容与教课书设置不完全一致,学生和研究人员使用较为困难。
(3)R是一套完整的数据处理、计算和绘图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输出,可实现分支、循环,用户可自定义功能。所以与其说R是一种统计软件,还不如说R是一种统计计算的环境,因为R语言提供了大量的统计程序,使用者只需指定数据库和若干参数便可进行统计分析。R语言的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种统计计算的函数,从而使使用者能灵活地进行数据分析,甚至创造出符合需要的新的统计计算方法。
2. 劣势
R语言的灵活性也是一个双刃剑,即需要我们通过编程方式来进行统计分析。到目前为止R语言还缺少一个像Splus、SPSS那样的菜单界面,这对那些不具编程经验和对统计方法掌握不是很好的使用者是一大挑战,也是妨碍其在一般人群中推广的一大障碍。
3. 如何发挥R语言的优势和克服其劣势
由于R语言具有强大的编程计算功能和丰富的附加包,使其进行科学研究极其方便,需要那方面的统计分析,只要调用其相应包即可。R语言目前最大的问题是其数据管理,因为没有好用的数据管理器,其自带的数据管理器很不方便,所以我们认为要用好R软件,就是按我书中介绍的那样,将R语言跟Excel充分结合,发挥两者的优点,这样就可以做到事办功倍。
R语言是属于GNU系统的一个自由、免费、源代码开放的软件,是一个用于统计计算、数据分析和统计制图的优秀工具。
作为一个免费的统计软件,它有UNIX、LINUX、MacOS和WINDOWS版本,均可免费下载和使用。R的官方网站是http://www.r-project.org。在官方网站可以下载到R的安装程序、各种外挂程序和文档。在R的安装程序中只包含了8个基础模块,其他外在模块可以通过CRAN获得(http://cran.r-project.org)。
一、R语言下载
二、R语言安装
点击下载的R-3.2.3-win.exe,进入安装界面
如果第一次安装R语言,建议大家选择默认安装,即全部点击“下一步(N)>”按钮即可。
所有的R 语言函数和数据集都是保存在包(packages)里面的。只有当一个包被载入时,它的内容才可以被访问。这样做一是为了高效(完整的列表会耗去大量的内存并且增加搜索的时间),二是为了帮助包的开发者防止命名时和其他代码中的名字冲突。
本书所用数据、程序和包可到作者网站http://eclab.jnu.edu.cn/Rstat/mvstats.rar上下载。
一、R语言标准包
标准(基本)包构成R源代码的一个重要部分。它们包括允许R工作的的基本函数和本文档中描述的数据集、标准统计和图形工具。在任何R的安装版本中,它们都会被自动获得。下面的标准包在R语言安装后自动载入:
search()
[1] ".GlobalEnv" "package:stats" "package:graphics"
[4] "package:grDevices" "package:utils" "package:datasets"
[7] "package:methods" "Autoloads" "package:base"
表1.5-1 常用的R语言标准包及其用途
标准包 | 简单说明 |
---|---|
stats | R语言的统计函数 |
graphics | 基于base图形的R函数 |
grDevices | 基于base和grid图形的图形设备 |
utils | R语言常用工具函数 |
datasets | 基本R语言数据集 |
methods | R对象的一般定义方法和类,增加一些编程工具 |
base | 基本R语言函数 |
这里.GlobalEnv为全局变量,Autoloads为自动调用函数。每个包中都包含大量的函数。
二、R语言扩展包
(1)扩展包
全世界有许多作者为R捐献了成百上千的R语言扩展包。都可以从http://www.r-project.org/免费下载。目前已有7817个包可供下载使用。
(2)下载扩展包:点击上图所显示的包名(如AER),进入包的下载界面
点击下载包:AER.1.1-8.zip(Windows用户使用的二进制包Windows binary)。
(3)安装下载包:从菜单的【程序包】-【从本地zip文件安装程序包】。
(4)载入程序包:从菜单的【程序包】-【加载程序包】或在命令行用library(AER)。
注意:安装程序包和载入程序包是两个概念,安装程序包是指将需要的程序包安装到R语言系统中,但此时包中的函数还不能用,还需将包载入R语言环境中,这些都可以在R语言界面的主菜单“程序包”中实现。
三、书中的R语言包及函数
表1.5.2 书中使用的R语言包及其函数
函数名 | 用途 | 所在章节 | 所在包 |
---|---|---|---|
c | 向量生成函数 | §2.3 | base |
length | 向量长度函数 | §2.3 | base |
mode | 对象类型函数 | §2.3 | base |
rbind | 行合并函数 | §2.3 | base |
cbind | 列合并函数 | §2.3 | base |
matrix | 矩阵生成函数 | §2.3 | base |
t | 矩阵转置函数 | §2.3 | base |
diag | 对角阵生成函数 | §2.3 | base |
solve | 逆矩阵计算函数 | §2.3 | base |
eigen | 矩阵的特征值与特征向量函数 | §2.3 | base |
chol | 进行Choleskey分解 | §2.3 | base |
svd | 进行奇异值分解 | §2.3 | base |
qr | 进行QR分解 | §2.3 | base |
kronecker | kronecker积计算函数 | §2.3 | base |
dim | 矩阵维数 | §2.3 | base |
nrow | 返回矩阵行数 | §2.3 | base |
ncol | 返回矩阵列数 | §2.3 | base |
apply | 矩阵操作函数 | §2.3 | base |
data.frame | 生成数据框函数 | §2.4 | base |
read.table | 读入文本数据函数 | §2.5 | utils |
hist | 直方图绘制函数 | §2.6 | graphics |
plot | 散点图绘制函数 | §2.6 | graphics |
table | 计数数据的频数分布 | §2.6 | base |
head | 显示数据集前6组数据 | §2.6 | utils |
attach | 解析数据集变量 | §2.6 | base |
barplot | 条图绘制函数 | §2.6 | graphics |
pie | 圆图绘制函数 | §2.6 | graphics |
ftable | 三维列联表分析函数 | §2.6 | stats |
boxplot | 箱尾图绘制函数 | §3.3 | graphics |
stars | 星相图绘制函数 | §3.4 | graphics |
face | 脸谱图绘制函数 | §3.5 | aplpack(需安装) |
cor | 相关系数函数 | §4.1 | stats |
cor.test | 相关系数检验函数 | §4.1 | stats |
lm | 线性回归函数 | §4.1 | stats |
anova | 方差分析函数 | §4.1 | stats |
summary | 综合统计量函数 | §4.1 | stats |
pairs | 矩阵散点图函数 | §4.3 | graphics |
regsubsets | 变量选择函数 | §4.4 | leaps (需安装) |
step | 逐步回归函数 | §4.4 | stats |
glm | 广义线性模型函数 | §5.2 | stats |
predict | 线性模型预测函数 | §5.2 | stats |
lda | 线性判别分析函数 | §6.2 | MASS |
qda | 二次判别函数 | §6.3 | MASS |
dist | 距离矩阵计算函数 | §7.2 | stats |
hclust | 系统聚类函数 | §7.3 | stats |
kmeans | 快速聚类函数 | §7.4 | stats |
princomp | 主成分分析函数 | §8.3 | stats |
screeplot | 碎石图绘制函数 | §8.3 | stats |
factanal | 因子分析函数(极大似然) | §9.3 | stats |
biplot | 信息重叠图函数 | §9.5 | stats |
chisq.test | 卡方检验函数 | §10.2 | stats |
corresp | 对应分析函数 | §10.3 | MASS |
cancor | 典型相关分析函数 | §11.4 | stats |
scale | 数据标准化函数 | §11.4 | stats |
关于这些函数的详细用法可用命令?(或help),如线性模型lm的用法
?lm 或 help(lm)
四、自编R语言包及函数
为了给大家学习本书及R语言进行多元统计分析方便起见,我们将在书中自编了一些R语言函数辅助进行多元统计分析,下面列出这些函数所在章节及其用途。
该包的名称为mvstats,请在网站下载:
1.5.3 书中使用的自编R语言函数
函数名 | 用途 | 所在章节 |
---|---|---|
plot.andrews | 绘制调和曲线图 | §3.6 |
coef.sd | 标准化回归系数 | §4.2 |
corr.test | 相关系数矩阵检验 | §4.3 |
H.clust | 系统聚类分析函数 | §7.3 |
princomp.rank | 主成份得分与排名函数 | §8.3 |
factpc | 主因子法进行因子分析函数 | §9.3 |
factanal.rank | 极大似然法因子分析得分与排名函数 | §9.5 |
cancor.test | 典型相关分析与检验函数 | §11.4 |
weight | 层次分析法计算权重函数 | §13.2 |
CI_CR | 权重一致系数计算与检验函数 | §13.2 |
z_data | 标准化数据计算函数 | §13.3 |
S_rank | 综合得分与排名函数Z | §13.3 |
一、R语言界面设置
R是一套完整的数据处理、计算和绘图软件系统。具有强大的数据存储和处理系统以及数组运算工具(其向量、矩阵运算方面功能尤其强大)、完整连贯的统计分析工具和优秀的统计制图功能。还是一个强大的面向对象编程语言。这样的编程环境需要使用者熟悉各种命令的操作,还需熟悉DOS编程环境,而且所有命令执行完即进入新的界面,这对那些不具编程经验和对统计方法掌握不是很好的使用者是一大困难。
但到目前为止R语言还是一个命令行编程环境(见上图),命令、函数很多,需要记住大量的操作命令和统计函数,统计分析也需要通过编程方式来实现。所以通常是以批命令的方式进行的(如SAS程序那样),R自带一个建立程序脚本的编辑器,要使该R编辑器和输出界面同步,如下图。
然后重新布置窗口界面,使其同时可显示程序、结果和图形。调整窗体位置,以适应屏幕大小,这样就形成了类似与Matlab和SAS一样的编程环境。并通过选择代码或在当前行上执行Ctrl+R运行命令。
(1)优点:自由软件,统计功能强大,可以看作Splus的免费版本,是统计研究的首选。
(2)缺点:初学较为麻烦,需一定编程经验。
二、Rstudio分析平台
需要指出的是,目前R语言中最好的这类编辑器当属Rstudio,本书的程序都是在该平台上进行的。在http://www.rstudio.org/就可以下载,还支持多平台,windows,Linux,Mac都能用,非常好。当然,它的好不仅是夸平台,还有许许多多的优点。关于Rstudio的详细介绍见附录。下面就是我们调整后的Rstudio的界面。实际上跟R本身的编辑器差别也不是很大,但更友好些,详细介绍见附录。
附录 Rstudio简介
(1)Rstudio下载
(2)Rstudio界面
下面我们详细介绍一下Rstudio的运行环境。下图就是它的主界面,我们将从左上窗口开始介绍起:
从图上可以看出,它总共有四个工作区域,左上是用来写代码的,左下也可以写代码,同时也是数据输出的地方。(记住,R语言是动态语言,写代码的 形式有两种,一种是像写作文一样写很多,也就是像c这样的语言一样的代码,一种则是写一句就编译解释一句。左下就是写一句编译解释一句的工作区域。右上是workspace和历史记录,功能等下再介绍。右下有四个主要的功能,Files是查看当前workspace下的文件,Plots则是展示运算结果的 图案,Packages则能展示系统已有的软件包,并且能勾选载入内存。Help则是可以查看帮助文档的。
三、使用Rstudio做作业
多元统计分析的作业大都需要计算机实现,但在实际中很难有一个统一的格式,使得学生做作业,老师改作业都遇到很大困难,我们通过探索,发现使用Markdown生成作业报告是一件非常容易的事,而且可兼容LaTeX来书写统计公式。我们知道每位试图解决LaTeX的不便,又试图保留它的优点的人们,都走上了一条不归路。实际上LaTeX可以作为最终格式生成,但中间的写作过程,完全可以用Markdown简单明了的语法来写,真正需要的,就是一堆数学公式、图表与参考文献而已。前2者,恰恰是R的强项。后者则在新的R包knitr中,提供了Markdown支持。R社区主流编辑器厂家,开源软件RStudio 提供 Markdown支持,从而使得Rmd这种新格式开始流行。
(1)安装并配置RStudio
在RStudio中,打开配置选项,然后进行如下配置:
(2)新建Rmd文档
新建一个Rmd文档,如下图所示:
然后,默认会出来一些内容。比如,大家可以敲下这段文字:
正态分布
正态分布的定义为:
使用 rnorm 函数生成1000个来自正态分布的随机数
{r block1}
X <- rnorm(1000);
summary(X)
该分部有典型的钟型形状:
{r block2, fig.width=8, fig.height=5}
hist(X,prob=T)
lines(density(X))
如果你对Markdown语法有不熟悉的地方,点击MD按钮看一下帮助。写完之后,直接点击: Knit HTML 按钮即可发布。MD按钮与Knit Html按钮的位置如下图所示:
就会预览成功。你也可以点击保存,生成相应的图片、Markdown文档及HTML文档。是的,你要的一切图片都有了!更重要的是,还保留了对LaTeX的无缝兼容,就是直接生成LaTeX格式的数学公式!
(3)使用Markdown的好处
1)真正意义上的可重复性研究
发表论文或者审核同事的报告,有个最麻烦的事情,你不知道他的步骤或者计算是否有误。现在,代码嵌在报告正文中,或者附录在报告末尾。而你,要做的,仅仅是一键生成,这就是真正意义上的可重复性研究!
2)更强大的数学与制图能力
既兼容了LaTeX的既有能力,同时,又广泛借助于R自身强大的作图与统计学习能力。更重要的是,未来,并不是非要用R语言作图。
3)Markdown格式与LaTeX、Word等格式的互转。
- 常用的多元统计分析方法有哪些?
- 每一种有何用途?
- 多元统计分析方法的作用是什么?
- 列出常用的统计软件,说明其使用范围,各自的优缺点。
- 除了书中列出的统计软件外,试再列举几种统计软件,说明其使用范围,
各自的优缺点。