第1章R与多元统计分析简介
多元统计分析是研究多个(随机)变量之间相互关系和规律的统计学分支.在实际生活中,受多个变量作用和影响的现象很多,如果变量之间是相互独立或互不相关的,我们可以把多个变量分开来进行研究,一次分析一个变量,即采用一元统计分析的方法进行分析,但如果变量之间是相关的,则采用一元统计方法就会丢失很多信息,因为这种分析方法忽略了多个变量间的相关性.多元统计分析就是把多个变量合在一起进行研究的统计学方法,它在自然科学、经济学、管理学和社会科学等领域有广泛的应用.
R是目前流行的一款统计软件系统,本章将对R软件和多元统计分析做一个简要的介绍.
1.1 R 简介
1.1.1 R 的特点
R是一款统计分析和作图软件系统,它是美国贝尔实验室开发的S语言的一种实现或形式,它与商业软件S-PLUS有很多相似之处,二者都是基于S语言的软件系统,但R是一个免费的软件系统,最先是由新西兰奥克兰大学的Robert Gentleman和Ross Ihaka共同创立的,现在由R开发核心小组(R Develop Core Team)维护.
作为一款优秀的统计分析软件系统,R具有如下特点:
(1)免费和开放.R是一款由志愿者维护的完全免费的统计分析软件,它的安装文件和程序包都可以从CRAN(Comprehensive R Archive Network)社区下载,作为教学使用非常方便,国外很多大学的统计教学都使用这款软件;而且R的源代码是公开的,这样方便使用者了解R程序的计算方法,并且可以对程序进行修改和扩展处理.
(2)统计分析功能完善.R内嵌了许多统计分析函数,可以直接调用进行统计分析,R的部分统计功能整合在R语言的低层,但大多数功能是以各种程序包的形式提供的,大约有25个“标准”程序包和R同时发布,但更多的程序包可以通过CRAN社区下载安装,而且程序包的更新比商业软件及时,使用非常方便.
(3)作图功能强大.R内嵌的作图函数能在图形窗口输出漂亮美观的图形,这些图形可以保存为各种形式的文件(比如jpg,bmp,ps,pdf,emf,png,pictex,xfig等),方便使用.
(4)可移植性强.R程序可以很容易地移植到S-PLUS中,同时,S-PLUS的程序也可以方便地移植到R中使用.R可以读入很多分析软件(比如SAS,SPSS,Excel,Stata等)的数据文件,而R的数据文件可以保存为文本格式供其他统计软件使用,这样R与其他统计软件就建立了一个良好的联系机制.
(5)使用灵活.R可以运行于UNIX,Linux,Windows和Macinton等操作系统中,R的分析结果都存放在一个对象里,用户可以有选择地显示感兴趣的结果,这些结果可以直接用于进一步的分析.
1.1.2 R 的安装与运行
从CRAN社区下载最新的R安装程序,就可以进行安装了,通常默认的安装目录为C:\ProgramFiles\R\R-x.x.x,安装完成后点击桌面上的R-x.x.x图标就可以启动R软件了.在RGui命令窗口的命令提示符“>”后输入命令就可以完成相应的操作.如果要退出R系统,可以在命令行输入q(),也可以点击RGui右上角的叉号退出.退出时可以保存工作空间,比如将工作空间保存在“C:\Work\”目录下,名称为“W.RData”,则以后可以通过命令load(”C:\Work\\W.RData”)来加载这个空间,或者通过菜单“文件”下的“载入工作空间”加载.
R软件的程序包的安装有三种方式:
(1)菜单方式:在联网情况下,按照“程序包→安装程序包→选择CRAN Mirror服务器→选择要安装的程序包”的步骤进行在线安装.
(2)命令方式:在联网情况下,在命令提示符后输入命令
>install.package(Rcmdr)
完成程序包Rcmdr的安装.
(3)本地安装:要安装本机上的程序包,可以按“程序包→从本地zip文件安装程序包”的步骤选择本机上的程序包进行安装.
新安装的程序包(除了R的标准程序包,比如base)必须先载入才能使用,可以 采取如下方式载入:
(1)菜单方式:按照“程序包 →加载程序包 →选择要加载的程序包”的步骤进 行加载.
(2)命令方式:在命令提示符后输入命令
>library(Rcmdr)
完成程序包的加载.
此外,我们还可以通过“程序包→更新程序包……”的步骤对程序包进行实时更新.
1.1.3 R 的基本原理
R是一种解释性语言,它的语法非常简单,比如求变量x的方差的命令为var(x),而命令lm(y~x)表示以y为因变量,α为自变量拟合一个线性回归模型。
需要注意的是,只有先给变量赋值才能进行相应的计算,统计分析中最常见的变量是向量和矩阵,下面介绍数值型向量和矩阵的建立方法.为了说明方便,每一个语句都给出一个注释语句,井号(#)表示注释的开始,即#后面的是注释语句.
1. 数值型向量的建立
x1<-seq(2,6,by=1) #生成序列x1,x1=(2,3,4,5,6),这里赋值符号“<-”也可以用
#等号“=”
x2<-c(8,10,12,16,21) #生成一个5维向量x2,x2=(8,10,12,16,21)
x3<-rep(2:4,2) #生成序列x3,x3=(2,3,4,2,3,4)
z.dat<-data.frame(x=x1,y=x2) #生成数据框(数据文件)z.dat,具体形式如下
x y
1 2 8
2 3 10
3 4 12