《R-多元统计分析上机讲义.doc》由会员分享,可在线阅读,更多相关《R-多元统计分析上机讲义.doc(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、多元分析R实验上机讲义应用多元统计分析R实验上机讲义应用多元统计分析4Applied Multivariate Statistical Analysis4第一章绪论4第二章矩阵42.1矩阵的建立42.2矩阵的下标(index)与子集(元素)的提取62.3 矩阵四则运算72.3.1 矩阵的加减运算72.3.2 矩阵的相乘82.3.3 矩阵的求逆82.4矩阵的其他一些代数运算82.4.1 求转置矩阵82.4.2 提取对角元素82.4.3矩阵的合并与拉直82.4.4方阵的行列式92.4.5 矩阵的特征根和特征向量92.4.6 其它函数92.5 矩阵的统计运算102.5.1 求均值102.5.2 标准
2、化102.5.3 减去中位数10第三章多元正态分布及参数的估计103.1 绘制二元正态密度函数及其相应等高线图103.2 多元正态分布的参数估计123.2.1 多元正态总体的相关量123.2.2 极大似然估计13第四章多元正态总体参数的假设检验144.1 几个重要统计量的分布144.2 单总体均值向量的检验及置信域144.2.1均值向量的检验144.2.2样本协方差阵的特征值和特征向量154.3多总体均值向量的检验164.3.1 两正态总体均值向量的检验164.3.2 多个正态总体均值向量的检验-多元方差分析174.4协方差阵的检验184.4.2 多总体协方差阵的检验184.5独立性检验184
3、.6正态性检验19第五章判别分析205.1距离判别215.1.1 马氏距离215.1.2 两总体的距离判别215.1.3 多个总体的距离判别245.2贝叶斯判别法及广义平方距离判别法245.2.1 先验概率(先知知识)245.2.2 广义平方距离255.2.3 后验概率(条件概率)255.2.4 贝叶斯判别准则255.3费希尔(Fisher)判别28第六章聚类分析296.2距离和相似系数296.2.1距离296.2.2数据中心化与标准化变换296.2.3相似系数306.3 系统聚类法306.4类个数的确定326.5动态聚类法346.7变量聚类方法34第七章主成分分析357.2 样本的主成分36
4、7.3 主成分分析的应用37第八章因子分析408.3 参数估计方法408.4 方差最大的正交旋转438.5 因子得分43第九章对应分析方法44第十章典型相关分析46应用多元统计分析Applied Multivariate Statistical Analysis第一章 绪论在实际问题中,很多随机现象涉及到的变量不是一个,而是经常是多个变量,并且这些变量间又存在一定的联系。我们经常需要处理多个变量的观测数据,如果用一元统计方法,由于忽视了各个变量之间可能存在的相关性,一般说来,丢失信息太多,分析的结果不能客观全面反映数据所包含的内容,因此,我们就需要用到多元统计的方法。多元统计分析(Multiv
5、ariate Statistical Analysis)也称多变量统计分析、多因素统计分析或多元分析,是研究客观事物中多变量(多因素或多指标)之间的相互关系和多样品对象之间差异以及以多个变量为代表的多元随机变量之间的依赖和差异的现代统计分析理论和方法。多元统计分析是解决实际问题的有效的数据处理方法。随着电子计算机使用的日益普及,多元统计统计方法已广泛地应用于自然科学、社会科学的各个方面。第二章 矩阵 矩阵即是二维的数组,它非常的重要,以至于需要单独讨论。由于矩阵应用非常广泛,因此对它定义了一些特殊的应用和操作,R 包括许多只对矩阵操作的操作符和函数。2.1矩阵的建立在R中最为常用的是用命令ma
6、trix( )建立矩阵,而对角矩阵常用函数diag( )建立。例如 X X ,1 ,21, 1 12, 1 1 X X ,1 ,2 ,31, 1 0 02, 0 1 03, 0 0 1 diag(2.5, nr = 3, nc = 5) ,1 ,2 ,3 ,4 ,51, 2.5 0.0 0.0 0 02, 0.0 2.5 0.0 0 03, 0.0 0.0 2.5 0 0 X - matrix(1:4, 2) # 等价于X X ,1 ,21, 1 32, 2 4 rownames(X) colnames(X) X c da 1 3b 2 4 dim(X)1 2 2 dimnames(X)11
7、a b21 c d注意:循环准则仍然适用于matrix( ),但要求数据项的个数等于矩阵的列数的倍数, 否则会出现警告。矩阵的维数使用c( )会得到不同的结果(除非是方阵), 因此需要小心。数据项填充矩阵的方向可通过参数byrow来指定, 其缺省是按列填充的(byrow=FALSE), byrow=TRUE表示按行填充数据。再看几个例子: X X ,1 ,2 ,3 ,41, 1 3 1 32, 2 4 2 4 X X X ,1 ,21, 1 32, 2 4 X X ,1 ,2 ,3 ,41, 1 2 3 42, 1 2 3 4 因为矩阵是数组的特例,R中数组由函数array( )建立, 因此矩
8、阵也可以用函数array( )来建立,其一般格式为: array(data, dim, dimnames)其中data为一向量,其元素用于构建数组;dim为数组的维数向量(为数值型向量);dimnames为由各维的名称构成的向量(为字符型向量), 缺省为空。看几个例子: A A ,1 ,2 ,31, 1 3 52, 2 4 6 A A ,1 ,2 ,31, 1 3 12, 2 4 2 A A ,1 ,2 ,31, 1 3 52, 2 4 62.2矩阵的下标(index)与子集(元素)的提取矩阵的下标可以使用正整数、负整数和逻辑表达式,从而实现子集的提取或修改。考查矩阵 x x ,1 ,2 ,3
9、1, 1 3 52, 2 4 6 提取一个元素 x2,21 4 提取若一个或若干个行或列 x2,21 4 x2,1 2 4 6 x,21 3 4 x,2,drop=FALSE ,11, 32, 4 x,c(2,3),drop=FALSE ,1 ,21, 3 52, 4 6 去掉某一个或若干个行与列 x-1,1 2 4 6 x,-2 ,1 ,21, 1 52, 2 6 添加与替换元素 x,3 x ,1 ,2 ,31, 1 3 NA2, 2 4 NA xis.na(x) x ,1 ,2 ,31, 1 3 12, 2 4 12.3 矩阵四则运算矩阵也可以进行四则运算(“+”、“-”、“*”、“/”,
10、“”),分别解释为矩阵对应元素的四则运算。在实际应用中,比较有实际应用的是矩阵的相加,相减,相乘和矩阵的求逆。矩阵的加减运算一般要求矩阵形状完全相同(dim属性完全相同),矩阵的相乘一般要求一矩阵的列维数与另一矩阵的行维数相同,而矩阵要求逆的话,一般要求它为一方阵。2.3.1 矩阵的加减运算若A,B为两个形状相同的矩阵,两矩阵的和为C,R中表达式为:C-A+B两矩阵的差为D,R中表达式为:D-A-B矩阵也可以与数进行加减,A+5表示A中的每个元素加上5。2.3.2 矩阵的相乘操作符%*% 用于矩阵相乘。若矩阵A的列数等于矩阵B的行数,矩阵A乘以矩阵B表示为:A%*%B注:X*Y表示两个矩阵的逐
11、元相乘,而不是X和Y的乘积。2.3.3 矩阵的求逆若矩阵A为一方阵,矩阵的逆可以用下面的命令计算:solve(A)。操作符solve( )可以用来求解线性方程组:Ax=b,解为solve(A,b)在数学上,用直接求逆的办法解x X diag(X)1 1 4事实上,diag( )的作用依赖于自变量,diag(vector)返回以自变量(向量)为主对角元素的对角矩阵;diag(matrix)返回由矩阵的主对角元素所组成的向量;diag(k)(k为标量)返回k阶单位阵。2.4.3矩阵的合并与拉直函数cbind()把几个矩阵横向拼成一个大矩阵,这些矩阵行数应该相同;函数rbind()把几个矩阵列向拼成
12、一个大矩阵,这些矩阵列数应该相同。(如果参与合并的矩阵比其它矩阵行数少或列数少,则循环不足后合并。)例如: m1 m1 ,1 ,21, 1 12, 1 1 m2 m2 ,1 ,21, 2 22, 2 2 rbind(m1, m2) ,1 ,21, 1 12, 1 13, 2 24, 2 2 cbind(m1, m2) ,1 ,2 ,3 ,41, 1 1 2 22, 1 1 2 22.4.4方阵的行列式求方阵的行列式使用det( ):X X ,1 ,21, 1 32, 2 4 det(X)1 -22.4.5 矩阵的特征根和特征向量 函数eigen( ) 用来计算矩阵的特征值和特征向量。这个函数的
13、返回值是一个含有values 和vectors 两个分量的列表。命令A A$values1 5.3722813 -0.3722813$vectors ,1 ,21, -0.5657675 -0.90937672, -0.8245648 0.41597362.4.6 Matrix facilites In the following examples, A and B are matrices and x and b are a vectors.Operator or FunctionDescriptionA * BElement-wise multiplicationA %*% BMatrix
14、 multiplicationA %o% BOuter product. ABcrossprod(A,B)crossprod(A)AB and AA respectively.t(A)Transposediag(x)Creates diagonal matrix with elements of x in the principal diagonaldiag(A)Returns a vector containing the elements of the principal diagonaldiag(k)If k is a scalar, this creates a k x k ident
15、ity matrix. Go figure.solve(A, b)Returns vector x in the equation b = Ax (i.e., A-1b)solve(A)Inverse of A where A is a square matrix.ginv(A)Moore-Penrose Generalized Inverse of A. ginv(A) requires loading the MASS package.y-eigen(A)y$val are the eigenvalues of Ay$vec are the eigenvectors of Ay-svd(A
16、)Single value decomposition of A.y$d = vector containing the singular values of Ay$u = matrix with columns contain the left singular vectors of A y$v = matrix with columns contain the right singular vectors of AR - chol(A)Choleski factorization of A. Returns the upper triangular factor, such that RR
17、 = A.y apply(X, MARGIN, FUN)其中X为参与运算的矩阵, FUN为上面的一个函数或“+”、“-”、“*”、“”(必须放在引号中),MARGIN=1表示按列计算,MARGIN=2表示按行计算。我们还用到sweep( )函数,命令 sweep(X, MARGIN, STATS, FUN)表示从矩阵X中按MATGIN计算STATS,并从X中除去(sweep out)。2.5.1 求均值 m apply(m, MARGIN=1, FUN=mean) # 求各行的均值1 -0.3773865 0.3864138 0.2052353 apply(m, MARGIN=2, FUN=m
18、ean) # 求各列的均值1 0.3386202 0.7320669 -0.4624578 -0.32254602.5.2 标准化 scale(m, center=T, scale=T)2.5.3 减去中位数 row.med sweep(m, MARGIN=1, STATS=row.med, FUN=”-”)第三章 多元正态分布及参数的估计3.1 绘制二元正态密度函数及其相应等高线图书上例2.2.2,时的二元正态密度函数及其等高线图: x-seq(-3,3,by=0.1) y-x f-function(x,y,a=1,b=1,r=0) a1=sqrt(a) b1=sqrt(b) d=1-r*r
19、 d1=sqrt(d)*a1*b1 z=1/(2*pi*d1)*exp(-x*x/a-y*y/b+2*r*x*y/(a1*b1)/(2*d) z Xn ln Xn A m A S R x n p u0 ln x0 xm mm a ai=solve(a) dd=xm%*%ai%*%t(xm) d2=(n-1)*dd t2=n*d2; f f ,11, 2.904546 fa fa1 3.196777 b b ,11, 0.06492834 beta beta1 0.3616381取检验水平为0.05,由尾概率值p=0.064928340.05=,可得相容;同样由F=2.9045463.19677
20、7=Fa,也可得相容。在这种情况下,可能犯第二类错误,概率为=0.3616(假定总体均值)。4.2.2样本协方差阵的特征值和特征向量书上例3.2.2,R程序为: x s s ,1 ,2 ,31, 2.879368 10.0100 -1.8090532, 10.010000 199.7884 -5.6400003, -1.809053 -5.6400 3.627658 a a$values1 200.462464 4.531591 1.301392$vectors ,1 ,2 ,31, -0.05084144 -0.57370364 0.817483512, -0.99828352 0.0530
21、2042 -0.024876553, 0.02907156 0.81734508 0.575414524.3多总体均值向量的检验4.3.1 两正态总体均值向量的检验书上例3.3.1,R程序为: n m p x ln x0 mx a1 y y0 my a2 a xy ai dd d2 t2 f pp x0 ,1 ,2 ,3 ,41, 64 43 30.5 63 y0 ,1 ,2 ,3 ,41, 51.5 51 40 70.5 a1 ,1 ,2 ,3 ,41, 490 -170 -120.0 -2452, -170 510 10.0 3103, -120 10 322.5 2604, -245 3
22、10 260.0 510 a2 ,1 ,2 ,3 ,41, 502.5 60 175 -7.52, 60.0 390 50 195.03, 175.0 50 450 -100.04, -7.5 195 -100 322.5 d2 ,11, 5.972499 t2 ,11, 29.86250 f ,11, 6.221353 pp ,11, 0.003705807取检验水平为0.01,根据尾概率值p=0.0037058070.01=,可得应否定。4.3.2 多个正态总体均值向量的检验-多元方差分析书上例3.3.2,可利用类似例3.2.1或例3.3.1的程序进行计算得出结论。下面我们用R自带的man
23、ova()函数进行分析。程序如下:x-read.table(D:/data/d332.txt,header=T) x-as.matrix(x,1:4) rate-factor(gl(3,20),labels=c(group1,group2,group3) fit summary.aov(fit) Response x1 : Df Sum Sq Mean Sq F value Pr(F) rate 2 39066 19533 8.878 0.0004401 *Residuals 57 125409 2200 -Signif. codes: 0 * 0.001 * 0.01 * 0.05 . 0.1 1 Response x2 : Df Sum Sq Mean Sq F value Pr(F) rate 2 4017 2009 2.8293 0.06738 .Residuals 57 40467 710 -Signif. codes: 0 * 0.001 * 0.01 * 0.05 . 0.1 1 Respo
限制150内