R语言学习笔记-典型相关分析(CCA)

浏览: 2492

测试数据:

X1X2X3Y1Y2Y3
1913650516260
193385812101101
18935461315558
2113856810138
17631741520040
16934501712038
154346414215105
193364667031
176375446025
15633541522573
1893752211060
16235621210537
1823656410142
1673460612540
154335617251250
166335213210115
247465015050
202376212210120
15732521123080
1383368211043

典型相关分析

#####典型相关分析

#依赖函数:cancor

#输入参数:训练数据CCAdata,

#输出结果:输出序号1(输出标签:第一组指标标准化结果)对应数据集CCAdata1

#          输出序号2(输出标签:第二组指标标准化结果)对应数据集CCAdata2

#          输出序号3(输出标签:典型相关分析结果)对应数据集ca

#          输出序号4(输出标签:第一组指标数据的典型载荷)对应数据集U

#          输出序号5(检验结果:第二组指标数据的典型载荷)对应数据集V

#          输出序号6(输出标签:散点图)对应图片

#          输出序号7(输出标签:显著性检验结果)对应数据集corcoef_test

#code

#读取数据

CCAdata=read.csv("C:\\Users\\Administrator\\Desktop\\CCA_test.csv")

#第一组指标

CCAdata1 <- CCAdata[,1:3] #此处选取原始数据第1、2、3列为第一组指标

#第二组指标

CCAdata2 <- CCAdata[,4:6] #此处选取原始数据第4、5、6列为第二组指标

#对第一、二组指标进行中心化和标准化,用于消除数据数量级的影响

CCAdata1_Z<-scale(CCAdata1)  #(输出序号1)

CCAdata2_Z<-scale(CCAdata2)  #(输出序号2)

#cancor用于典型相关分析的计算及输出

ca<-cancor(CCAdata1_Z,CCAdata2_Z);ca  #(输出序号3)

#样本数据在典型变量下得分计算及输出

U<-as.matrix(CCAdata1_Z)%*% ca$xcoef ; U   #xcoef为第一组指标数据的典型载荷(输出序号4)

V<-as.matrix(CCAdata2_Z)%*% ca$ycoef ; V   #ycoef为第二组指标数据的典型载荷(输出序号5)

#画相关变量U和V的数据散点图,此处因为前面每组指标均有三个变量,故画三个

#画相关变量U1和V1为坐标的数据散点图(输出序号6)

plot(U[,1], V[,1], xlab="U1", ylab="V1")

#画相关变量U1和V1为坐标的数据散点图

plot(U[,2], V[,2], xlab="U2", ylab="V2")

#画相关变量U1和V1为坐标的数据散点图

plot(U[,3], V[,3], xlab="U3", ylab="V3")

##典型相关系数的显著性检验

#典型相关系数检验的R程序(程序名:corcoef.test)

corcoef.test<-function(r, n, p, q, alpha=0.1)
{
m<-length(r); Q<-rep(0, m); lambda <- 1
for (k in m:1)
{
lambda<-lambda*(1-r[k]^2);
Q[k]<- -log(lambda)
}
s<-0; i<-m
for (k in 1:m)
{
Q[k]<- (n-k+1-1/2*(p+q+3)+s)*Q[k]
chi<-1-pchisq(Q[k], (p-k+1)*(q-k+1))
if (chi>alpha)
{
i<-k-1; break
}
s<-s+1/r[k]^2
}
i
}

#典型相关系数检验结果

corcoef_test <- corcoef.test(r=ca$cor,n=20,p=3,q=3) #n代表训练数据样本数,p代表第一组指标数,q代表第二组指标数(输出序号7)

推荐 0
本文由 数据小雄 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册