二 多元统计分析及R语言建模

基于第二章内容整理(二) 2.3数据矩阵及R语言表示
结合R语言介绍基本的矩阵运算
1.创建一个向量(随机变量,一维数组)
> x1=c(171,175,159,155,152,158,154,164,168,166,159,164)> x2=c(57,64,41,38,35,44,41,51,57,49,47,46)> > length(x1)#数据的长度 [1] 12> mode(x1)#数据的类型[1] "numeric"
2.创建一个矩阵(二维数组)
(1)合并命令
> rbind(x1,x2)#按行合并[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]x1171175159155152158154164168166159164x2576441383544415157494746> cbind(x1,x2)#按列合并x1 x2[1,] 171 57[2,] 175 64[3,] 159 41[4,] 155 38[5,] 152 35[6,] 158 44[7,] 154 41[8,] 164 51[9,] 168 57[10,] 166 49[11,] 159 47[12,] 164 46
(2)生成矩阵
应用函数:
(data=http://www.kingceram.com/post/NA,nrow = 3,ncol = 4,byrow = T, = NULL)
> matrix(x1,nrow=3,ncol=4,byrow=T)[,1] [,2] [,3] [,4][1,]171175159155[2,]152158154164[3,]168166159164> matrix(x1,nrow=3,ncol=4,byrow=F)[,1] [,2] [,3] [,4][1,]171155154166[2,]175152164159[3,]159158168164
注意:没有bycol这个参数
矩阵转置
> A=matrix(1:12,nrow=3,ncol = 4)> A[,1] [,2] [,3] [,4][1,]14710[2,]25811[3,]36912> t(A)[,1] [,2] [,3][1,]123[2,]456[3,]789[4,]101112
矩阵相加减
> A=B=matrix(1:12,nrow=3,ncol = 4)> A+B#矩阵加法[,1] [,2] [,3] [,4][1,]281420[2,]4101622[3,]6121824> A-B#矩阵减法[,1] [,2] [,3] [,4][1,]0000[2,]0000[3,]0000>
矩阵相乘
>A=B=matrix(1:9,nrow=3,ncol = 3)> A*B#矩阵对应元素相乘[,1] [,2] [,3][1,]11649[2,]42564[3,]93681> A%*%B#矩阵乘法[,1] [,2] [,3][1,]3066102[2,]3681126[3,]4296150>
矩阵对角元素相关运算
>A=matrix(1:9,nrow=3,ncol = 3)>diag(A)#获得矩阵对角线元素[1] 1 5 9> diag(diag(A))#利用对角元素创建对角矩阵[,1] [,2] [,3][1,]100[2,]050[3,]009>diag(3)#创建3阶对角矩阵[,1] [,2] [,3][1,]100[2,]010[3,]001>
【二多元统计分析及R语言建模】矩阵求逆
> C=matrix(rnorm(16),4,4)> solve(C)#求矩阵的逆[,1][,2][,3][,4][1,] -0.0970932820.4231990 -0.6385458 -0.31268129[2,]0.426768385 -0.3352593 -0.3733346 -0.05509465[3,]0.870633510 -0.1704512 -0.6422681 -0.91406753[4,] -0.008823423 -0.28713460.1884475 -0.50375225>

二  多元统计分析及R语言建模

文章插图
注意:rnorm( )的应用:
rnorm(n, mean = 0, sd = 1) #n为产生随机值个数(长度),mean 是平均值,sd 是标准差
矩阵的特征值与特征向量
> D=diag(4)+1> D[,1] [,2] [,3] [,4][1,]2111[2,]1211[3,]1121[4,]1112> D.e=eigen(D,symmetric = T)> D.e[["values"]][1] 5 1 1 1> D.e[["vectors"]][,1][,2][,3][,4][1,] -0.50.86602540.00000000.0000000[2,] -0.5 -0.2886751 -0.5773503 -0.5773503[3,] -0.5 -0.2886751 -0.21132490.7886751[4,] -0.5 -0.28867510.7886751 -0.2113249
在这里大概解释一下特征值与特征向量:矩阵D的谱分解为D=UAU’,A为特征值组成的对角矩阵,U的列为A的特征值组成的特征向量,U’为矩阵的转置
矩阵的维数
> A=matrix(1:12,3,4)>A[,1] [,2] [,3] [,4][1,]14710[2,]25811[3,]36912> dim(A)#矩阵的维数[1] 3 4> nrow(A)#矩阵的行数[1] 3> ncol(A)#矩阵的列数[1] 4
矩阵的行和,列和,行平均值,列平均值
>A[,1] [,2] [,3] [,4][1,]14710[2,]25811[3,]36912> rowSums(A)[1] 22 26 30> rowMeans(A)[1] 5.5 6.5 7.5