Praktikum 12 APG : Analisis Korelasi Kanonik
Pengantar
Summary AKK
Penerapan 1
Partisi Matrix
r11 = matrix(c(1,0.8,0.8,1),2,2)
r11## [,1] [,2]
## [1,] 1.0 0.8
## [2,] 0.8 1.0
r22 = matrix(c(1,0.37,0.21,0.37,1,0.35,0.21,0.35,1),3,3)
r22## [,1] [,2] [,3]
## [1,] 1.00 0.37 0.21
## [2,] 0.37 1.00 0.35
## [3,] 0.21 0.35 1.00
r12 = matrix(c(0.26,0.33,0.67,0.59,0.34,0.34),2,3)
r12## [,1] [,2] [,3]
## [1,] 0.26 0.67 0.34
## [2,] 0.33 0.59 0.34
r21 = t(r12)
r21## [,1] [,2]
## [1,] 0.26 0.33
## [2,] 0.67 0.59
## [3,] 0.34 0.34
Korelasi Kanonik, Pasangan Variabel Kanonik
Cari nilai eigen dan vektor eigen
# Cari nilai dan vektor eigen r11
eig.r11 = eigen(r11)$values
eig.r11## [1] 1.8 0.2
ve.r11=matrix(c(eigen(r11)$vectors),2,2)
ve.r11## [,1] [,2]
## [1,] 0.7071068 -0.7071068
## [2,] 0.7071068 0.7071068
# Cari nilai dan vektor eigen r22
eig.r22 = eigen(r22)$values
eig.r22## [1] 1.6249273 0.7904898 0.5845829
ve.r22 = matrix(c(eigen(r22)$vectors),3,3)
ve.r22## [,1] [,2] [,3]
## [1,] -0.5556606 0.67638516 0.4834713
## [2,] -0.6317203 0.03458088 -0.7744247
## [3,] -0.5405282 -0.73573588 0.4080710
Mencari kor11^-1/2 dan kor22^-1/2
#Cara 1 (Manual)
r11_sq=1/sqrt(eig.r11[1])*ve.r11[,1]%*%t(ve.r11[,1]) + 1/sqrt(eig.r11[2])*ve.r11[,2]%*%t(ve.r11[,2])
r11_sq## [,1] [,2]
## [1,] 1.490712 -0.745356
## [2,] -0.745356 1.490712
r22_sq = 1/sqrt(eig.r22[1])*ve.r22[,1]%*%t(ve.r22[,1]) + 1/sqrt(eig.r22[2])*ve.r22[,2]%*%t(ve.r22[,2]) + 1/sqrt(eig.r22[3])*ve.r22[,3]%*%t(ve.r22[,3])
r22_sq## [,1] [,2] [,3]
## [1,] 1.06249643 -0.1880181 -0.06605902
## [2,] -0.18801807 1.0988046 -0.17406991
## [3,] -0.06605902 -0.1740699 1.05582758
#Cara 2 (Otomatis)
library(expm)
r11_sq2=solve(sqrtm(r11))
r11_sq2## [,1] [,2]
## [1,] 1.490712 -0.745356
## [2,] -0.745356 1.490712
r22_sq2=solve(sqrtm(r22))
r22_sq2## [,1] [,2] [,3]
## [1,] 1.06249643 -0.1880181 -0.06605902
## [2,] -0.18801807 1.0988046 -0.17406991
## [3,] -0.06605902 -0.1740699 1.05582758
Cari matriks M dan N
M = r11_sq%*%r12%*%solve(r22)%*%r21%*%r11_sq
M## [,1] [,2]
## [1,] 0.3221139 0.2083554
## [2,] 0.2083554 0.1860772
N = r22_sq%*%r21%*%solve(r11)%*%r12%*%r22_sqMenentukan nilai a dan b
# Menentukan a
a1 = eigen(M)$vectors[,1]%*%r11_sq #For U1
a1## [,1] [,2]
## [1,] -0.7689274 -0.2720729
a2 = eigen(M)$vectors[,2]%*%r11_sq #For U2
a2## [,1] [,2]
## [1,] 1.478691 -1.64431
# Mennetukan b
#Cara 1
b1 = solve(r22)%*%r21%*%t(a1)
b1## [,1]
## [1,] -0.03379693
## [2,] -0.61744111
## [3,] -0.13073838
#Cek asumsi bahwa Var(V1)=1
var.v1 = t(b1)%*%r22%*%b1
var.v1 #tidak sama dengan 1## [,1]
## [1,] 0.4732724
#Penyesuaian
b1.new = (1/sqrt(var.v1))%*%t(b1)
b1.new## [,1] [,2] [,3]
## [1,] -0.04912716 -0.8975114 -0.1900411
b2 = solve(r22)%*%r21%*%t(a2)
b2## [,1]
## [1,] -0.18692043
## [2,] 0.10907244
## [3,] -0.05523224
#Cek asumsi bahwa Var(V2)=1
var.v2 = t(b2)%*%r22%*%b2
var.v2 #tidak sama dengan 1## [,1]
## [1,] 0.0349187
#Penyesuaian
b2.new = (1/sqrt(var.v2))%*%t(b2)
b2.new## [,1] [,2] [,3]
## [1,] -1.000294 0.583695 -0.2955723
# Cara 2
b1.cara2 = eigen(N)$vectors[,1]%*%r22_sq
b1.cara2## [,1] [,2] [,3]
## [1,] -0.04912716 -0.8975114 -0.1900411
b2.cara2 = eigen(N)$vectors[,2]%*%r22_sq
b2.cara2## [,1] [,2] [,3]
## [1,] 1.000294 -0.583695 0.2955723
Menghitung Korelasi Kanonik
#Korelasi Gugus U1 dan V1
# Cara 1
var.U1 = a1%*%r11%*%t(a1)
var.V1 = b1.new%*%r22%*%t(b1.new)
var.V1## [,1]
## [1,] 1
cov.U1.V1 = a1%*%r12%*%t(b1.new)
cov.U1.V1## [,1]
## [1,] 0.6879479
cor.U1.V1 = cov.U1.V1/(sqrt(var.U1)*sqrt(var.V1))
cor.U1.V1## [,1]
## [1,] 0.6879479
# Cara 2
sqrt(eigen(M)$values[1])## [1] 0.6879479
# Jadi korelasi antara gugus pertama U1 dan V1 sebesar 0,678
#Korelasi Gugus U2 dan V2
# Cara 1
var.U2 = a2%*%r11%*%t(a2)
var.V2 = b2.new%*%r22%*%t(b2.new)
var.V2## [,1]
## [1,] 1
cov.U2.V2 = a2%*%r12%*%t(b2.new)
cov.U2.V2## [,1]
## [1,] 0.1868654
cor.U2.V2 = cov.U2.V2/(sqrt(var.U2)*sqrt(var.V2))
cor.U2.V2## [,1]
## [1,] 0.1868654
# Cara 2
sqrt(eigen(M)$values[2])## [1] 0.1868654
# Jadi korelasi antara gugus pertama U2 dan V2 sebesar 0,188Menguji Signifikansi Korelasi Kanonik
Penerapan 2
Digunakan dataset chemicaldata (Box and Youle 1955; Rencher2002) yang terdapat pada package ACSWR. Dataset chemicaldata berisi hasil eksperimen reaksi kimia, dimana dalam eksperimen ini variabel yang digunakan adalah : X1 = temperatur X2 = konsentrasi zat X3 = waktu Y1= persentase material yang tidak berubah Y2 = persentase material yang berubah sesuai yang diharapkan Y3 = persentase material yang berubah tidak sesuai yang diharapkan Misal kita ingin mengetahui besarnya korelasi antara kelompok variabel input (X) dengan kelompok variabel output (Y), maka dengan R pengerjaannya sebagai berikut:
Dataset
library(CCA)
library(candisc)
library(ACSWR)
#Load dataset
data(chemicaldata)
chem = chemicaldata
chem## y1 y2 y3 x1 x2 x3
## 1 41.5 45.9 11.2 162 23.0 3.0
## 2 33.8 53.3 11.2 162 23.0 8.0
## 3 27.7 57.5 12.7 162 30.0 5.0
## 4 21.7 58.8 16.0 162 30.0 8.0
## 5 19.9 60.6 16.2 172 25.0 5.0
## 6 15.0 58.0 22.6 172 25.0 8.0
## 7 12.2 58.6 24.5 172 30.0 5.0
## 8 4.3 52.4 38.0 172 30.0 8.0
## 9 19.3 56.9 21.3 167 27.5 6.5
## 10 6.4 55.4 30.8 177 27.5 6.5
## 11 37.6 46.9 14.7 157 27.5 6.5
## 12 18.0 57.3 22.2 167 32.5 6.5
## 13 26.3 55.0 18.3 167 22.5 6.5
## 14 9.9 58.9 28.0 167 27.5 9.5
## 15 25.0 50.3 22.1 167 27.5 3.5
## 16 14.1 61.1 23.0 177 20.0 6.5
## 17 15.2 62.9 20.7 177 20.0 6.5
## 18 15.9 60.0 22.1 160 34.0 7.5
## 19 19.6 60.6 19.3 160 34.0 7.5
X <- chem[,4:6]
Y <- chem[,1:3]
# Persebaran Data
library(GGally)
ggpairs(X)ggpairs(Y)Keterkaitan Linier
library(CCA)
correl<-matcor(X,Y)
correl## $Xcor
## x1 x2 x3
## x1 1.00000000 -0.4620014 -0.02188275
## x2 -0.46200145 1.0000000 0.17665667
## x3 -0.02188275 0.1766567 1.00000000
##
## $Ycor
## y1 y2 y3
## y1 1.0000000 -0.6078234 -0.8804014
## y2 -0.6078234 1.0000000 0.1822497
## y3 -0.8804014 0.1822497 1.0000000
##
## $XYcor
## x1 x2 x3 y1 y2 y3
## x1 1.00000000 -0.46200145 -0.02188275 -0.6769387 0.40395099 0.5768977
## x2 -0.46200145 1.00000000 0.17665667 -0.2247259 0.07998377 0.2255903
## x3 -0.02188275 0.17665667 1.00000000 -0.4525396 0.39273121 0.3615240
## y1 -0.67693865 -0.22472586 -0.45253956 1.0000000 -0.60782343 -0.8804014
## y2 0.40395099 0.07998377 0.39273121 -0.6078234 1.00000000 0.1822497
## y3 0.57689773 0.22559034 0.36152405 -0.8804014 0.18224967 1.0000000
img.matcor(correl,type=2)AKK
#Analisis Korelasi Kanonik
chem_cc2 <- candisc::cancor(X, Y)
summary(chem_cc2)##
## Canonical correlation analysis of:
## 3 X variables: x1, x2, x3
## with 3 Y variables: y1, y2, y3
##
## CanR CanRSQ Eigen percent cum scree
## 1 0.98153 0.963395 26.318349 99.60771 99.61 ******************************
## 2 0.30199 0.091200 0.100353 0.37981 99.99
## 3 0.05733 0.003287 0.003298 0.01248 100.00
##
## Test of H0: The canonical correlations in the
## current row and all that follow are zero
##
## CanR LR test stat approx F numDF denDF Pr(> F)
## 1 0.98153 0.03316 10.7870 9 31.789 1.884e-07 ***
## 2 0.30199 0.90581 0.3549 4 28.000 0.8384
## 3 0.05733 0.99671 0.0495 1 15.000 0.8270
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Raw canonical coefficients
##
## X variables:
## Xcan1 Xcan2 Xcan3
## x1 -0.16062 -0.06944 -0.049094
## x2 -0.14861 -0.12159 0.191179
## x3 -0.21568 0.58392 0.037688
##
## Y variables:
## Ycan1 Ycan2 Ycan3
## y1 0.170794 0.62594 0.37732
## y2 0.069097 0.72999 0.21730
## y3 0.085825 0.71274 0.53900
korelasi antara variabel asal dengan variat kanoniknya
res.cc <- cc(X, Y)
#Korelasi X dan U
res.cc$scores$corr.X.xscores## [,1] [,2] [,3]
## x1 -0.7002371 -0.2147010 -0.6808608
## x2 -0.2303823 -0.1471813 0.9619052
## x3 -0.4415774 0.8719836 0.2113147
#Korelasi Y dan V
res.cc$scores$corr.Y.yscores## [,1] [,2] [,3]
## y1 0.9954170 -0.07757607 -0.05591924
## y2 -0.6033066 0.52598224 -0.59946959
## y3 -0.8615072 -0.06822615 0.50314074
#Korelasi X dan V
res.cc$scores$corr.X.yscores## [,1] [,2] [,3]
## x1 -0.6873014 -0.06483844 -0.03903680
## x2 -0.2261263 -0.04444788 0.05515033
## x3 -0.4334200 0.26333395 0.01211562
#Korelasi Y dan U
res.cc$scores$corr.Y.xscores## [,1] [,2] [,3]
## y1 0.9770283 -0.02342752 -0.00320610
## y2 -0.5921615 0.15884355 -0.03437028
## y3 -0.8455922 -0.02060390 0.02884731
Interpretasi Penerapan 2
Penerapan 3
- Menghitung variasi kanonik dan korelasi kanonik untuk variabel yang di standarisasi.
R11 = matrix(c(1,0.4,0.4,1),2,2)
R11## [,1] [,2]
## [1,] 1.0 0.4
## [2,] 0.4 1.0
R12 = matrix(c(0.5,0.3,0.6,0.4),2,2)
R12## [,1] [,2]
## [1,] 0.5 0.6
## [2,] 0.3 0.4
R21 = t(R12)
R21## [,1] [,2]
## [1,] 0.5 0.3
## [2,] 0.6 0.4
R22 = matrix(c(1,0.2,0.2,1),2,2)
R22## [,1] [,2]
## [1,] 1.0 0.2
## [2,] 0.2 1.0
library(expm)
R11_sq=solve(sqrtm(R11))
R11_sq## [,1] [,2]
## [1,] 1.0680744 -0.2229201
## [2,] -0.2229201 1.0680744
R22_sq=solve(sqrtm(R22))
R22_sq## [,1] [,2]
## [1,] 1.0154525 -0.1025815
## [2,] -0.1025815 1.0154525
Mr = R11_sq%*%R12%*%solve(R22)%*%R21%*%R11_sq
Mr## [,1] [,2]
## [1,] 0.4369769 0.2177579
## [2,] 0.2177579 0.1096501
# Korelasi variabel pasangan variabel kanonik pertama
Cor.U1.V1 = sqrt(eigen(Mr)$values[1])
Cor.U1.V1## [1] 0.7387273
# Korelasi variabel pasangan variabel kanonik kedua
Cor.U2.V2 = sqrt(eigen(Mr)$values[2])
Cor.U2.V2## [1] 0.03014884
- Coba lanjutkan sendiri sampai mendapatkan pasangan gugus kanonik pertama U1 dan V1 :
A.Z = matrix(c(0.86,0.28),1,2)
A.Z## [,1] [,2]
## [1,] 0.86 0.28
B.Z = matrix(c(0.54,0.74),1,2)
B.Z## [,1] [,2]
## [1,] 0.54 0.74
# Korelasi antara variabel yang distandarisasi dengan variabel kanonik
cor.U1.z1 = A.Z %*% R11
cor.U1.z2 = A.Z %*% R12
cor.U1.z1 #Korelasi U1 sangat besar ## [,1] [,2]
## [1,] 0.972 0.624
cor.U1.z2## [,1] [,2]
## [1,] 0.514 0.628
cor.V1.z2 = B.Z %*% R22
cor.V1.z2## [,1] [,2]
## [1,] 0.688 0.848
cor.V1.z1 = B.Z %*% R21
cor.V1.z1## [,1] [,2]
## [1,] 0.714 0.458
Penerapan 4 (Soal UAS)
Soal 1 2017
Output terlampir akan digunakan untuk mempelajari hubungan secara simultan antara suku bunga deposito, laju inflasi, kurs rupiah terhadap dollar dengan harga lima saham unggulan pada 3 tahun terakhir.
Soal 2 2019
Buat partisi matrix nya
r11<-matrix(c(1,0.5,0.5,1),2,2)
r22<-matrix(c(1,0.37,0.21, 0.37,1,0.35,0.21,0.35,1),3,3)
r21<-matrix(c(0.56,0.67,0.84,0.43,0.59,0.74),3,2)
r11## [,1] [,2]
## [1,] 1.0 0.5
## [2,] 0.5 1.0
r22## [,1] [,2] [,3]
## [1,] 1.00 0.37 0.21
## [2,] 0.37 1.00 0.35
## [3,] 0.21 0.35 1.00
r21## [,1] [,2]
## [1,] 0.56 0.43
## [2,] 0.67 0.59
## [3,] 0.84 0.74
Mencari nilai Gugus Variabel
#r11
eig1<-matrix(c(eigen(r11)$values),1,2)
eig1## [,1] [,2]
## [1,] 1.5 0.5
ve11<-matrix(c(eigen(r11)$vectors),2,2)
ve11## [,1] [,2]
## [1,] 0.7071068 -0.7071068
## [2,] 0.7071068 0.7071068
#r22
eig2<-matrix(c(eigen(r22)$values),1,3)
eig2## [,1] [,2] [,3]
## [1,] 1.624927 0.7904898 0.5845829
ve22<-matrix(c(eigen(r22)$vectors),3,3)
ve22## [,1] [,2] [,3]
## [1,] -0.5556606 0.67638516 0.4834713
## [2,] -0.6317203 0.03458088 -0.7744247
## [3,] -0.5405282 -0.73573588 0.4080710
# Cara 1
r11_sq<-1/sqrt(eig1[,1])*ve11[,1]%*%t(ve11[,1]) + 1/sqrt(eig1[,2])*ve11[,2]%*%t(ve11[,2])
r11_sq## [,1] [,2]
## [1,] 1.1153551 -0.2988585
## [2,] -0.2988585 1.1153551
# Cara 2
r11_sq=solve(sqrtm(r11))
# M
M<-r11_sq%*%t(r21)%*%solve(r22)%*%r21%*%r11_sq
M## [,1] [,2]
## [1,] 0.6952329 0.5339550
## [2,] 0.5339550 0.4178542
# Korelasi Kanonik
sqrt(eigen(M)$values[1])## [1] 1.052718
# Sehingga korelasi antara dua gugus pertama sebesar 1
sqrt(eigen(M)$values[2])## [1] 0.06979199
# Sehingga korelasi antara dua gugus kedua sebesar 0,07Menentukan a1, a2, b1, b2
a1=eigen(M)$vectors[,1]%*%r11_sq
a1## [,1] [,2]
## [1,] -0.6994165 -0.4459754
a2=eigen(M)$vectors[,2]%*%r11_sq
a2## [,1] [,2]
## [1,] 0.9187763 -1.065101
# Cara 1 Teribet
b1=solve(r22)%*%r21%*%t(a1)
b1## [,1]
## [1,] -0.2945176
## [2,] -0.3684034
## [3,] -0.7267417
# Cek apakah var(V1)=1
var.v1=t(b1)%*%r22%*%b1
var.v1 #Hasil tidak sama dengan 1## [,1]
## [1,] 1.108216
b1_new=(1/sqrt(as.numeric(var.v1)))*b1
b1_new## [,1]
## [1,] -0.2797687
## [2,] -0.3499543
## [3,] -0.6903477
# Cek apakah var(V1)=1 --> untuk memastikan aja sih gays
t(b1_new)%*%r22%*%b1_new## [,1]
## [1,] 1
b2=solve(r22)%*%r21%*%t(a2)
b2## [,1]
## [1,] 0.07287599
## [2,] -0.03270214
## [3,] -0.02026053
var_v2=t(b2)%*%r22%*%b2
var_v2## [,1]
## [1,] 0.004870922
b2_new=(1/sqrt(as.numeric(var_v2)))*b2
b2_new## [,1]
## [1,] 1.0441885
## [2,] -0.4685658
## [3,] -0.2902988
# Cara 2 : Paling disarankan
r22_sq=solve(sqrtm(r22))
r22_sq## [,1] [,2] [,3]
## [1,] 1.06249643 -0.1880181 -0.06605902
## [2,] -0.18801807 1.0988046 -0.17406991
## [3,] -0.06605902 -0.1740699 1.05582758
N=r22_sq%*%r21%*%solve(r11)%*%t(r21)%*%r22_sq
N## [,1] [,2] [,3]
## [1,] 0.1818822 0.2240680 0.3373741
## [2,] 0.2240680 0.2862977 0.4296269
## [3,] 0.3373741 0.4296269 0.6449072
b1=eigen(N)$vectors[,1]%*%r22_sq
b1## [,1] [,2] [,3]
## [1,] -0.2797687 -0.3499543 -0.6903477
b2=eigen(N)$vectors[,2]%*%r22_sq
b2## [,1] [,2] [,3]
## [1,] 1.044188 -0.4685658 -0.2902988
b3=eigen(N)$vectors[,3]%*%r22_sq
b3## [,1] [,2] [,3]
## [1,] 0.003627383 -0.9648838 0.7671914
Soal 3
Bagian A
#Matriks R
R = matrix(c(1,.56,.68,.72,
.56,1,.55,.58,
.68,.55,1,.98,
.72,.58,.98,1),4,4)
R## [,1] [,2] [,3] [,4]
## [1,] 1.00 0.56 0.68 0.72
## [2,] 0.56 1.00 0.55 0.58
## [3,] 0.68 0.55 1.00 0.98
## [4,] 0.72 0.58 0.98 1.00
# Partisi Matrix
R11 = R[1:2,1:2]
R11## [,1] [,2]
## [1,] 1.00 0.56
## [2,] 0.56 1.00
R12 = R[1:2,3:4]
R22## [,1] [,2]
## [1,] 1.0 0.2
## [2,] 0.2 1.0
R21 = R[3:4,1:2]
R21## [,1] [,2]
## [1,] 0.68 0.55
## [2,] 0.72 0.58
R22 = R[3:4,3:4]
R22## [,1] [,2]
## [1,] 1.00 0.98
## [2,] 0.98 1.00
sqrt.inv.R11 = solve(sqrtm(R11))
sqrt.inv.R11## [,1] [,2]
## [1,] 1.154099 -0.353458
## [2,] -0.353458 1.154099
sqrt.inv.R22 = solve(sqrtm(R22))
sqrt.inv.R22## [,1] [,2]
## [1,] 3.890868 -3.180199
## [2,] -3.180199 3.890868
M1 = sqrt.inv.R11%*%R12%*%solve(R22)%*%R21%*%sqrt.inv.R11
M1## [,1] [,2]
## [1,] 0.4052143 0.2667879
## [2,] 0.2667879 0.1758822
M2 = sqrt.inv.R22%*%R21%*%solve(R11)%*%R12%*%sqrt.inv.R22
M2## [,1] [,2]
## [1,] 0.1402172 0.2484445
## [2,] 0.2484445 0.4408793
rho1 = sqrt(eigen(M1)$values[1])
rho1## [1] 0.7621905
rho2 = sqrt(eigen(M1)$values[2])
rho2## [1] 0.01273269
eigen.M1=eigen(M1)
eigen.M2 = eigen(M2)
e1 = eigen.M1$vectors[,1]
e2 = eigen.M1$vectors[,2]
f1 = eigen.M2$vectors[,1]
f2 = eigen.M2$vectors[,2]
a1 = e1%*%sqrt.inv.R11
b1 = f1%*%sqrt.inv.R22
a2 = e2%*%sqrt.inv.R11
b2 = f2%*%sqrt.inv.R22
A = matrix(c(a1,b1),2,2)
A## [,1] [,2]
## [1,] -0.7693971 -0.859627
## [2,] -0.3396378 1.827694
B = matrix(c(a2,b2),2,2)
B## [,1] [,2]
## [1,] 0.9300025 -4.951118
## [2,] -1.1582412 4.681032
!
Bagian B
R.U.X = a1%*%R11
R.U.X## [,1] [,2]
## [1,] -0.9595942 -0.7705002
R.U.Y = a1%*%R12
R.U.Y## [,1] [,2]
## [1,] -0.7099908 -0.7509558
R.V.X = b1%*%R21
R.V.X## [,1] [,2]
## [1,] 0.7313936 0.5872679
R.V.Y = b1%*%R22
R.V.Y## [,1] [,2]
## [1,] 0.9315136 0.98526
Penerapan 5 Latihan di Modul
Penerapan 6 Latihan di PPT
# Input Partisi Matrix
s11 = matrix(c(8,2,2,5),2,2)
s12 = matrix(c(3,1,-1,3),2,2)
s21 = t(s12)
s22 = matrix(c(6,-2,-2,7),2,2)
s11## [,1] [,2]
## [1,] 8 2
## [2,] 2 5
s12## [,1] [,2]
## [1,] 3 -1
## [2,] 1 3
s21## [,1] [,2]
## [1,] 3 1
## [2,] -1 3
s22## [,1] [,2]
## [1,] 6 -2
## [2,] -2 7
# Cari a dan b
s11_sq = solve(sqrtm(s11))
s11_sq## [,1] [,2]
## [1,] 0.36666667 -0.06666667
## [2,] -0.06666667 0.46666667
s22_sq = solve(sqrtm(s22))
s22_sq## [,1] [,2]
## [1,] 0.42432848 0.06446599
## [2,] 0.06446599 0.39209549
Ms1 = s11_sq%*%s12%*%solve(s22)%*%s21%*%s11_sq
Ms1## [,1] [,2]
## [1,] 0.185760234 -0.008654971
## [2,] -0.008654971 0.393918129
Ms2 = s22_sq%*%s21%*%solve(s11)%*%s12%*%s22_sq
Ms2## [,1] [,2]
## [1,] 0.20469851 0.06048473
## [2,] 0.06048473 0.37497985
a1 = eigen(Ms1)$vectors[,1]%*%s11_sq
a1## [,1] [,2]
## [1,] -0.08181554 0.46903
b1 = eigen(Ms2)$vectors[,1]%*%s22_sq
b1## [,1] [,2]
## [1,] 0.1903917 0.3931389
a2 = eigen(Ms1)$vectors[,2]%*%s11_sq
a2## [,1] [,2]
## [1,] -0.3635864 0.04725593
b2 = eigen(Ms2)$vectors[,2]%*%s22_sq
b2## [,1] [,2]
## [1,] -0.3846577 0.0577626
# Korelasi kanonik
r1 = sqrt(eigen(Ms1)$values[1])
r1## [1] 0.6279151
r2 = sqrt(eigen(Ms1)$values[2])
r2## [1] 0.4305822