天天看点

协方差矩阵和相关系数矩阵(R语言)

一、协方差矩阵

1.协方差定义

协方差矩阵和相关系数矩阵(R语言)

 2.R语言实现

#协方差矩阵
#等价于cov(data)

data<-as.matrix(data)
n<-nrow(data)
mx<-diag(1,n)-matrix(1,n,n)/n
covA<-t(data)%*%mx%*%data/(n-1);covA 

           

  3.可视化运算

假设有X、Y两个矩阵,分别求X的协方差、Y的协方差、X和Y的协方差。 
协方差矩阵和相关系数矩阵(R语言)
协方差矩阵和相关系数矩阵(R语言)
第一步先求X的每一列的均值:
协方差矩阵和相关系数矩阵(R语言)
第二步计算
协方差矩阵和相关系数矩阵(R语言)
,每列减去每列相应的均值:
协方差矩阵和相关系数矩阵(R语言)
第三步乘积求和:
协方差矩阵和相关系数矩阵(R语言)
同理可得Y的协方差:
协方差矩阵和相关系数矩阵(R语言)
求X和Y的协方差,先求
协方差矩阵和相关系数矩阵(R语言)
协方差矩阵和相关系数矩阵(R语言)
再乘积求和,用X的每一列乘以Y的每一列的转置:
协方差矩阵和相关系数矩阵(R语言)

二、相关系数矩阵

1.相关系数定义

协方差矩阵和相关系数矩阵(R语言)

2.R语言实现

#相关系数矩阵
#等价于cor(data)

corA<-covA
for(j in 1:n )
{
  for(k in 1:n)
  {
    corA[j,k]<-covA[j,k]/(sqrt(covA[j,j])*sqrt(covA[k,k]))
  }
}
corA

           

   3.可视化运算

根据前面所求协方差:
协方差矩阵和相关系数矩阵(R语言)
协方差矩阵和相关系数矩阵(R语言)
按照公式可求得:
协方差矩阵和相关系数矩阵(R语言)
协方差矩阵和相关系数矩阵(R语言)

相关资料:数据分析与R软件第二版(李素兰著)每章例题代码和数据,下载地址:https://download.csdn.net/download/lph188/10802159

继续阅读