典型相关分析

test<-scale(test)

ca<-cancor(test[,1:3],test[,4:6])


U<-as.matrix(test[, 1:3])%*% ca$xcoef

V<-as.matrix(test[, 4:6])%*% ca$ycoef


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

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



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

}




> source("corcoef.test.R")
> corcoef.test(r=ca$cor, n=20, p=3, q=3)


你可能感兴趣的:(薛毅,多元统计,吴喜之)