##################################################################### # # Car Marks # # The data are averaged marks for 24 car types from a sample of 40 # persons. The marks range from 1 (very good) to 6 (very bad) like # German school marks. The variables are: # # Economy # Service # Non-depreciation of value # Price, Mark 1 for very cheap cars # Design # Sporty car # Safety # Easy handling # # Source: http://sfb649.wiwi.hu-berlin.de/fedc_homepage/xplore/tutorials/mvahtmlnode95.html # ##################################################################### install.packages("GGally") install.packages("CCA") library(GGally) library(CCA) data = read.table("carmarks.txt",header=TRUE) X = as.matrix(data[,1+c(4,3)]) Y = as.matrix(data[,1+c(1:2,5:8)]) # scatterplot Y ggpairs(Y) # scatterplot X ggpairs(X) # correlations matcor(X,Y) # Ajustando modelo de correlacoes canonicas # ----------------------------------------- fit = cc(X,Y) # correlacoes canonicas fit$cor # pesos canonicos fit$ycoef fit$xcoef # Variaveis canonicas A = X%*%fit$xcoef B = Y%*%fit$ycoef par(mfrow=c(1,2)) plot(A[,1],B[,1],xlab="1a variavel canonica (X)",ylab="1a variavel canonica (Y)") title(paste("1a correlacao canonica=",round(fit$cor[1],4),sep="")) plot(A[,2],B[,2],xlab="2a variavel canonica (X)",ylab="2a variavel canonica (Y)") title(paste("2a correlacao canonica=",round(fit$cor[2],4),sep="")) # Cargas canonicas CCXA=cor(X,A) CCYB=cor(Y,B) round(CCXA,3) round(CCYB,3) # Determinação da % da variância explicada pelas componentes CCYB^2 CCXA^2 # Determinação das cargas cruzadas cor(Y,A) cor(X,B)