library(readxl)
Data_CCA <- read_excel("C:/Users/HP/OneDrive/文件/Data_AKK.xlsx")
print(Data_CCA)
## # A tibble: 34 × 7
##    `Prevalensi balita gizi buruk` Prevalensi balita gizi kur…¹ `Balita Obesitas`
##                             <dbl>                        <dbl>             <dbl>
##  1                            5.9                         18.9               3  
##  2                            5.3                         13.1               5.9
##  3                            3.3                         14.2               3  
##  4                            4.2                         14                 5.5
##  5                            3                           10.5               5  
##  6                            2.1                         10.2               4.2
##  7                            2.3                         11.9               4.4
##  8                            3.5                         15                 4.2
##  9                            3.7                         13                 7.8
## 10                            3                           13.4               4.4
## # ℹ 24 more rows
## # ℹ abbreviated name: ¹​`Prevalensi balita gizi kurang`
## # ℹ 4 more variables: `Rata-rata lama sekolah ibu` <dbl>,
## #   `Persentase Penduduk yang Memiliki Jaminan Kesehatan` <dbl>,
## #   Kemiskinan <dbl>, `Imunisasi Dasar Lengkap` <dbl>
Y1 <- Data_CCA$`Prevalensi balita gizi buruk`
Y2 <- Data_CCA$`Prevalensi balita gizi kurang`
Y3 <- Data_CCA$`Balita Obesitas`
X1 <- Data_CCA$`Rata-rata lama sekolah ibu`
X2 <- Data_CCA$`Persentase Penduduk yang Memiliki Jaminan Kesehatan`
X3 <- Data_CCA$Kemiskinan
X4 <- Data_CCA$`Imunisasi Dasar Lengkap`

data <- data.frame(Y1,Y2,Y3,X1,X2,X3,X4)
data
##     Y1   Y2  Y3    X1    X2    X3    X4
## 1  5.9 18.9 3.0  8.62 62.85 15.92 23.19
## 2  5.3 13.1 5.9  8.96 25.12  9.28 27.10
## 3  3.3 14.2 3.0  8.60 28.76  6.75 35.59
## 4  4.2 14.0 5.5  8.49 17.63  7.41 31.73
## 5  3.0 10.5 5.0  7.70 18.22  7.90 46.99
## 6  2.1 10.2 4.2  7.67 15.90 13.10 47.40
## 7  2.3 11.9 4.4  8.16 25.79 15.59 43.48
## 8  3.5 15.0 4.2  7.49 26.47 13.04 50.92
## 9  3.7 13.0 7.8  7.48 19.75  5.30 58.33
## 10 3.0 13.4 4.4  9.57 19.40  6.13 57.40
## 11 3.0 11.0 6.8 10.61 36.50  3.78 52.43
## 12 2.9 12.2 3.8  7.69 23.92  7.83 43.01
## 13 3.0 14.0 4.0  6.78 32.95 12.23 63.64
## 14 2.4 10.2 5.5  8.73 40.71 12.36 71.28
## 15 2.9 12.6 5.0  6.78 24.70 11.20 55.51
## 16 4.0 15.7 4.7  7.98 21.35  5.59 25.46
## 17 2.0  6.6 8.1  7.75 23.72  4.14 67.60
## 18 4.3 18.3 3.5  6.27 33.42 15.05 59.73
## 19 7.4 20.9 3.8  6.87 42.25 21.38 57.96
## 20 6.5 19.4 5.2  6.49 19.49  7.86 41.02
## 21 6.0 17.6 5.8  7.91 14.76  5.26 43.16
## 22 4.6 16.4 6.2  7.52 15.51  4.70 61.89
## 23 4.4 14.9 4.7  8.93 17.52  6.08 44.84
## 24 4.5 15.3 5.2  8.44 29.75  6.96 56.13
## 25 3.3 12.0 9.9  9.19 31.38  7.90 54.07
## 26 6.2 19.9 3.1  8.00 34.62 14.22 50.21
## 27 4.9 17.9 3.1  7.63 38.61  9.48 47.68
## 28 6.5 17.3 4.8  7.95 32.76 11.97 59.10
## 29 6.0 17.5 4.5  7.56 58.25 17.14 51.32
## 30 4.9 19.9 2.4  7.08 43.81 11.18 47.65
## 31 5.8 17.9 3.6  9.17 28.03 18.29 32.66
## 32 4.1 13.4 2.1  8.17 19.51  6.44 32.09
## 33 6.6 17.4 5.4  6.90 48.71 23.12 31.06
## 34 6.8 12.8 5.7  5.44 18.97 27.76 19.72
#uji linearitas

library(lmtest)
## Warning: package 'lmtest' was built under R version 4.4.2
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
model1 <- lm(Y1 ~ X1+X2+X3+X4, data = Data_CCA) 
model2 <- lm(Y2 ~ X1+X2+X3+X4, data = Data_CCA) 
model3 <- lm(Y3 ~ X1+X2+X3+X4, data = Data_CCA) 

resettest(model1) 
## 
##  RESET test
## 
## data:  model1
## RESET = 0.4438, df1 = 2, df2 = 27, p-value = 0.6462
resettest(model2)
## 
##  RESET test
## 
## data:  model2
## RESET = 1.2246, df1 = 2, df2 = 27, p-value = 0.3097
resettest(model3)
## 
##  RESET test
## 
## data:  model3
## RESET = 1.8632, df1 = 2, df2 = 27, p-value = 0.1746
pairs(Data_CCA, 
      panel = function(x, y) {
        points(x, y, pch = 16, col = "blue")  
        abline(lm(y ~ x), col = "red")  
})

#UJi Normalitas
matriks_data <- as.matrix(data,34,7)
matriks_data
##        Y1   Y2  Y3    X1    X2    X3    X4
##  [1,] 5.9 18.9 3.0  8.62 62.85 15.92 23.19
##  [2,] 5.3 13.1 5.9  8.96 25.12  9.28 27.10
##  [3,] 3.3 14.2 3.0  8.60 28.76  6.75 35.59
##  [4,] 4.2 14.0 5.5  8.49 17.63  7.41 31.73
##  [5,] 3.0 10.5 5.0  7.70 18.22  7.90 46.99
##  [6,] 2.1 10.2 4.2  7.67 15.90 13.10 47.40
##  [7,] 2.3 11.9 4.4  8.16 25.79 15.59 43.48
##  [8,] 3.5 15.0 4.2  7.49 26.47 13.04 50.92
##  [9,] 3.7 13.0 7.8  7.48 19.75  5.30 58.33
## [10,] 3.0 13.4 4.4  9.57 19.40  6.13 57.40
## [11,] 3.0 11.0 6.8 10.61 36.50  3.78 52.43
## [12,] 2.9 12.2 3.8  7.69 23.92  7.83 43.01
## [13,] 3.0 14.0 4.0  6.78 32.95 12.23 63.64
## [14,] 2.4 10.2 5.5  8.73 40.71 12.36 71.28
## [15,] 2.9 12.6 5.0  6.78 24.70 11.20 55.51
## [16,] 4.0 15.7 4.7  7.98 21.35  5.59 25.46
## [17,] 2.0  6.6 8.1  7.75 23.72  4.14 67.60
## [18,] 4.3 18.3 3.5  6.27 33.42 15.05 59.73
## [19,] 7.4 20.9 3.8  6.87 42.25 21.38 57.96
## [20,] 6.5 19.4 5.2  6.49 19.49  7.86 41.02
## [21,] 6.0 17.6 5.8  7.91 14.76  5.26 43.16
## [22,] 4.6 16.4 6.2  7.52 15.51  4.70 61.89
## [23,] 4.4 14.9 4.7  8.93 17.52  6.08 44.84
## [24,] 4.5 15.3 5.2  8.44 29.75  6.96 56.13
## [25,] 3.3 12.0 9.9  9.19 31.38  7.90 54.07
## [26,] 6.2 19.9 3.1  8.00 34.62 14.22 50.21
## [27,] 4.9 17.9 3.1  7.63 38.61  9.48 47.68
## [28,] 6.5 17.3 4.8  7.95 32.76 11.97 59.10
## [29,] 6.0 17.5 4.5  7.56 58.25 17.14 51.32
## [30,] 4.9 19.9 2.4  7.08 43.81 11.18 47.65
## [31,] 5.8 17.9 3.6  9.17 28.03 18.29 32.66
## [32,] 4.1 13.4 2.1  8.17 19.51  6.44 32.09
## [33,] 6.6 17.4 5.4  6.90 48.71 23.12 31.06
## [34,] 6.8 12.8 5.7  5.44 18.97 27.76 19.72
x_bar <- colMeans(matriks_data)
x_bar
##        Y1        Y2        Y3        X1        X2        X3        X4 
##  4.391176 14.861765  4.832353  7.899412 29.149706 10.951176 46.804412
cov_matriks <- cov(matriks_data)
cov_matriks
##            Y1         Y2         Y3          X1          X2         X3
## Y1  2.3687077  4.1641979 -0.5266756 -0.49555080   6.1662398   4.574374
## Y2  4.1641979 11.4054635 -2.7544831 -0.93529590  16.9989884   6.591440
## Y3 -0.5266756 -2.7544831  2.6913458  0.29583779  -4.9593841  -2.625676
## X1 -0.4955508 -0.9352959  0.2958378  1.05656328   0.1430604  -2.907599
## X2  6.1662398 16.9989884 -4.9593841  0.14306043 142.8103605  31.962291
## X3  4.5743743  6.5914403 -2.6256756 -2.90759929  31.9622913  33.492786
## X4 -7.6676569 -8.4119171  5.7865499 -0.01339127   4.6124922 -20.415578
##              X4
## Y1  -7.66765686
## Y2  -8.41191711
## Y3   5.78654991
## X1  -0.01339127
## X2   4.61249225
## X3 -20.41557807
## X4 174.45103146
Di<-mahalanobis(matriks_data,x_bar,cov_matriks)
Di
##  [1] 12.990791  5.845530  3.892427  3.027737  3.040847  5.868997  7.308950
##  [8]  2.487868  5.062892  6.093657  8.564975  2.946721  4.420778  8.249485
## [15]  3.158587  7.372383 11.655542  6.636441  8.500046  7.557588  5.649627
## [22]  5.395057  2.887418  1.475609 14.831528  4.117061  2.737186  7.295486
## [29]  7.249193  6.167211 10.886700  9.605710  7.768469 20.251503
hasil <- data.frame(Obs = 1:length(Di), 
                    Mahalanobis_Distance = Di)

hasil<- hasil[order(hasil$Mahalanobis_Distance), ]
hasil$Rank <- c(1:34)

hasil$Probability<-((hasil$Rank-0.5)/34)

hasil
##    Obs Mahalanobis_Distance Rank Probability
## 24  24             1.475609    1  0.01470588
## 8    8             2.487868    2  0.04411765
## 27  27             2.737186    3  0.07352941
## 23  23             2.887418    4  0.10294118
## 12  12             2.946721    5  0.13235294
## 4    4             3.027737    6  0.16176471
## 5    5             3.040847    7  0.19117647
## 15  15             3.158587    8  0.22058824
## 3    3             3.892427    9  0.25000000
## 26  26             4.117061   10  0.27941176
## 13  13             4.420778   11  0.30882353
## 9    9             5.062892   12  0.33823529
## 22  22             5.395057   13  0.36764706
## 21  21             5.649627   14  0.39705882
## 2    2             5.845530   15  0.42647059
## 6    6             5.868997   16  0.45588235
## 10  10             6.093657   17  0.48529412
## 30  30             6.167211   18  0.51470588
## 18  18             6.636441   19  0.54411765
## 29  29             7.249193   20  0.57352941
## 28  28             7.295486   21  0.60294118
## 7    7             7.308950   22  0.63235294
## 16  16             7.372383   23  0.66176471
## 20  20             7.557588   24  0.69117647
## 33  33             7.768469   25  0.72058824
## 14  14             8.249485   26  0.75000000
## 19  19             8.500046   27  0.77941176
## 11  11             8.564975   28  0.80882353
## 32  32             9.605710   29  0.83823529
## 31  31            10.886700   30  0.86764706
## 17  17            11.655542   31  0.89705882
## 1    1            12.990791   32  0.92647059
## 25  25            14.831528   33  0.95588235
## 34  34            20.251503   34  0.98529412
hasil$X2<-qchisq(hasil$Probability,7)
hasil$X2
##  [1]  1.408996  2.069694  2.508302  2.866641  3.182242  3.471496  3.743303
##  [8]  4.003174  4.254852  4.501072  4.743954  4.985239  5.226426  5.468871
## [15]  5.713857  5.962647  6.216533  6.476886  6.745206  7.023178  7.312749
## [22]  7.616225  7.936403  8.276758  8.641729  9.037148  9.470941  9.954328
## [29] 10.504009 11.146554 11.928311 12.942194 14.425054 17.451466
plot(hasil$Mahalanobis_Distance,hasil$X2,
     xlab= "Mahalanobis Distance",ylab="Chi-Square",,col="red",
     main = "QQ plot Normalitas",
     pch=19, cex=0.8)

abline(a=0,b=1,col="blue",lwd=2)

x_bar <- colMeans(matriks_data)
x_bar
##        Y1        Y2        Y3        X1        X2        X3        X4 
##  4.391176 14.861765  4.832353  7.899412 29.149706 10.951176 46.804412
#Menentukan multikolineritas
VIF <- function(x){
  VIF <- diag(solve(cor(x)))
  result <- ifelse(VIF > 10,"multicolinearity","non
                   multicolinearity")
  data1 <- data.frame(VIF,result)
  return(data1)
}
VIF(data)
##         VIF                                   result
## Y1 5.834572 non\n                   multicolinearity
## Y2 5.964952 non\n                   multicolinearity
## Y3 2.087563 non\n                   multicolinearity
## X1 1.685260 non\n                   multicolinearity
## X2 1.854255 non\n                   multicolinearity
## X3 2.662379 non\n                   multicolinearity
## X4 1.598411 non\n                   multicolinearity
#Menghitung covarian matriks
cov_matriks<-cov(matriks_data)
cov_matriks
##            Y1         Y2         Y3          X1          X2         X3
## Y1  2.3687077  4.1641979 -0.5266756 -0.49555080   6.1662398   4.574374
## Y2  4.1641979 11.4054635 -2.7544831 -0.93529590  16.9989884   6.591440
## Y3 -0.5266756 -2.7544831  2.6913458  0.29583779  -4.9593841  -2.625676
## X1 -0.4955508 -0.9352959  0.2958378  1.05656328   0.1430604  -2.907599
## X2  6.1662398 16.9989884 -4.9593841  0.14306043 142.8103605  31.962291
## X3  4.5743743  6.5914403 -2.6256756 -2.90759929  31.9622913  33.492786
## X4 -7.6676569 -8.4119171  5.7865499 -0.01339127   4.6124922 -20.415578
##              X4
## Y1  -7.66765686
## Y2  -8.41191711
## Y3   5.78654991
## X1  -0.01339127
## X2   4.61249225
## X3 -20.41557807
## X4 174.45103146
P11 <- cov_matriks [1:3,1:3]
P11
##            Y1        Y2         Y3
## Y1  2.3687077  4.164198 -0.5266756
## Y2  4.1641979 11.405463 -2.7544831
## Y3 -0.5266756 -2.754483  2.6913458
P12 <- cov_matriks [1:3,4:7]
P12
##            X1        X2        X3        X4
## Y1 -0.4955508  6.166240  4.574374 -7.667657
## Y2 -0.9352959 16.998988  6.591440 -8.411917
## Y3  0.2958378 -4.959384 -2.625676  5.786550
P21 <- cov_matriks [4:7,1:3]
P21
##            Y1         Y2         Y3
## X1 -0.4955508 -0.9352959  0.2958378
## X2  6.1662398 16.9989884 -4.9593841
## X3  4.5743743  6.5914403 -2.6256756
## X4 -7.6676569 -8.4119171  5.7865499
P22<-cov_matriks[4:7,4:7]
P22
##             X1          X2         X3           X4
## X1  1.05656328   0.1430604  -2.907599  -0.01339127
## X2  0.14306043 142.8103605  31.962291   4.61249225
## X3 -2.90759929  31.9622913  33.492786 -20.41557807
## X4 -0.01339127   4.6124922 -20.415578 174.45103146
#Mencari invers dari matriks akar kuadrat dari  ∑_11^(-1/2)  dan ∑_22^(-1/2)
eig.P11<-eigen(P11)
nilai.eigen.P11<-eig.P11$values
nilai.eigen.P11
## [1] 13.7222108  2.1738365  0.5694696
l1.11<-nilai.eigen.P11[1]
l2.11<-nilai.eigen.P11[2]
l3.11<-nilai.eigen.P11[3]
vektor.eigen.P11<-eig.P11$vectors
vektor.eigen.P11
##            [,1]       [,2]       [,3]
## [1,] -0.3439442 0.38942118  0.8544317
## [2,] -0.9070259 0.09761324 -0.4096043
## [3,]  0.2429124 0.91587270 -0.3196416
v1.11<-matrix(vektor.eigen.P11[,1])
v1.11
##            [,1]
## [1,] -0.3439442
## [2,] -0.9070259
## [3,]  0.2429124
v2.11<-matrix(vektor.eigen.P11[,2])
v2.11
##            [,1]
## [1,] 0.38942118
## [2,] 0.09761324
## [3,] 0.91587270
v3.11<-matrix(vektor.eigen.P11[,3])
v3.11
##            [,1]
## [1,]  0.8544317
## [2,] -0.4096043
## [3,] -0.3196416
sig11<-((v1.11%*%t(v1.11))/sqrt(l1.11))+
  ((v2.11%*%t(v2.11))/sqrt(l2.11))+
  ((v3.11%*%t(v3.11))/sqrt(l3.11))
sig11
##            [,1]       [,2]       [,3]
## [1,]  1.1022196 -0.3537762 -0.1425651
## [2,] -0.3537762  0.4508795  0.1746551
## [3,] -0.1425651  0.1746551  0.7202477
eig.P22<-eigen(P22)
nilai.eigen.P22<-eig.P22$values
nilai.eigen.P22
## [1] 177.3494426 151.4423387  22.3392772   0.6796832
l1.22<-nilai.eigen.P22[1]
l2.22<-nilai.eigen.P22[2]
l3.22<-nilai.eigen.P22[3]
l4.22<-nilai.eigen.P22[4]
vektor.eigen.P22<-eig.P22$vectors
vektor.eigen.P22
##              [,1]         [,2]       [,3]        [,4]
## [1,]  0.002235341 -0.004035081 -0.1313242  0.99132874
## [2,]  0.002720713  0.966064976 -0.2565300 -0.03005717
## [3,] -0.139959077  0.256079021  0.9480086  0.12694343
## [4,]  0.990151028  0.033551667  0.1350036  0.01578820
v1.22<-matrix(vektor.eigen.P22[,1])
v1.22
##              [,1]
## [1,]  0.002235341
## [2,]  0.002720713
## [3,] -0.139959077
## [4,]  0.990151028
v2.22<-matrix(vektor.eigen.P22[,2])
v2.22
##              [,1]
## [1,] -0.004035081
## [2,]  0.966064976
## [3,]  0.256079021
## [4,]  0.033551667
v3.22<-matrix(vektor.eigen.P22[,3])
v3.22
##            [,1]
## [1,] -0.1313242
## [2,] -0.2565300
## [3,]  0.9480086
## [4,]  0.1350036
v4.22<-matrix(vektor.eigen.P22[,4])
v4.22
##             [,1]
## [1,]  0.99132874
## [2,] -0.03005717
## [3,]  0.12694343
## [4,]  0.01578820
sig22<-((v1.22%*%t(v1.22))/sqrt(l1.22))+
  ((v2.22%*%t(v2.22))/sqrt(l2.22))+
  ((v3.22%*%t(v3.22))/sqrt(l3.22))
sig22
##              [,1]         [,2]        [,3]         [,4]
## [1,]  0.003650542  0.006811378 -0.02644788 -0.003595875
## [2,]  0.006811378  0.089762215 -0.03137940 -0.004491208
## [3,] -0.026447876 -0.031379396  0.19694689  0.017370481
## [4,] -0.003595875 -0.004491208  0.01737048  0.077566313
#mencari nilai eigen dan vektor eigen a untuk sigma 11
M.sig.11<-sig11%*%P12%*%solve(P22)%*%P21%*%sig11
M.sig.11
##             [,1]        [,2]        [,3]
## [1,]  0.41082028  0.04721389 -0.20524928
## [2,]  0.04721389  0.22061372 -0.06430798
## [3,] -0.20524928 -0.06430798  0.11805659
eigen11<-eigen(M.sig.11)
nilai.eigenM11<-eigen11$values
nilai.eigenM11
## [1] 0.532996117 0.210338258 0.006156206
l1.M11<-nilai.eigenM11[1]
l1.M11
## [1] 0.5329961
l2.M11<-nilai.eigenM11[2]
l2.M11
## [1] 0.2103383
l3.M11<-nilai.eigenM11[3]
l3.M11
## [1] 0.006156206
vektor.eigen.M11<-eigen11$vectors
vektor.eigen.M11
##            [,1]        [,2]      [,3]
## [1,]  0.8591801 -0.27778725 0.4297019
## [2,]  0.2245108  0.95930568 0.1712527
## [3,] -0.4597873 -0.05066421 0.8865826
e1<-matrix(vektor.eigen.M11[,1])
e1
##            [,1]
## [1,]  0.8591801
## [2,]  0.2245108
## [3,] -0.4597873
e2<-matrix(vektor.eigen.M11[,2])
e2
##             [,1]
## [1,] -0.27778725
## [2,]  0.95930568
## [3,] -0.05066421
e3<-matrix(vektor.eigen.M11[,3])
e3
##           [,1]
## [1,] 0.4297019
## [2,] 0.1712527
## [3,] 0.8865826
#mencari nilai eigen dan vektor eigen a untuk sigma 22
M.sig.22<-sig22%*%P21%*%solve(P11)%*%P12%*%sig22
M.sig.22
##              [,1]        [,2]        [,3]        [,4]
## [1,]  0.002707833 -0.00176554 -0.02474566  0.02558113
## [2,] -0.001765540  0.16364350  0.06011423 -0.06094522
## [3,] -0.024745665  0.06011423  0.23830615 -0.24787171
## [4,]  0.025581131 -0.06094522 -0.24787171  0.27074238
eigen22<-eigen(M.sig.22)
nilai.eigenM22<-eigen22$values
nilai.eigenM22
## [1]  5.256357e-01  1.436091e-01  6.155068e-03 -4.418097e-18
l1.M22<-nilai.eigenM22[1]
l1.M22
## [1] 0.5256357
l2.M22<-nilai.eigenM22[2]
l2.M22
## [1] 0.1436091
l3.M22<-nilai.eigenM22[3]
l3.M22
## [1] 0.006155068
l4.M22<-nilai.eigenM22[4]
l4.M22
## [1] -4.418097e-18
vektor.eigen.M22<-eigen22$vectors
vektor.eigen.M22
##             [,1]        [,2]        [,3]        [,4]
## [1,]  0.06685137  0.04512856 -0.10373834  0.99132874
## [2,] -0.22986035  0.97268266 -0.01221581 -0.03005717
## [3,] -0.66452352 -0.14404495  0.72218066  0.12694343
## [4,]  0.70788672  0.17636016  0.68377205  0.01578820
v1.M22<-matrix(vektor.eigen.M22[,1])
v1.M22
##             [,1]
## [1,]  0.06685137
## [2,] -0.22986035
## [3,] -0.66452352
## [4,]  0.70788672
v2.M22<-matrix(vektor.eigen.M22[,2])
v2.M22
##             [,1]
## [1,]  0.04512856
## [2,]  0.97268266
## [3,] -0.14404495
## [4,]  0.17636016
v3.M22<-matrix(vektor.eigen.M22[,3])
v3.M22
##             [,1]
## [1,] -0.10373834
## [2,] -0.01221581
## [3,]  0.72218066
## [4,]  0.68377205
v4.M22<-matrix(vektor.eigen.M22[,4])
v4.M22
##             [,1]
## [1,]  0.99132874
## [2,] -0.03005717
## [3,]  0.12694343
## [4,]  0.01578820
 #mencari nilai koefisien a dan b
 a1<-sig11%*%e1
 a1
##            [,1]
## [1,]  0.9331282
## [2,] -0.2830343
## [3,] -0.4144379
 a2<-sig11%*%e2
 a2
##            [,1]
## [1,] -0.6383391
## [2,]  0.5219570
## [3,]  0.1706596
 a3<-sig11%*%e3
 a3
##           [,1]
## [1,] 0.2866450
## [2,] 0.0800422
## [3,] 0.6072088
 b1<-sig22%*%v1.M22
 b1
##              [,1]
## [1,]  0.013708141
## [2,] -0.002504344
## [3,] -0.113134704
## [4,]  0.044157031
 b2<-sig22%*%v2.M22
 b2
##              [,1]
## [1,]  0.009965567
## [2,]  0.091345511
## [3,] -0.057021493
## [4,]  0.006646680
 b3<-sig22%*%v3.M22
 b3
##             [,1]
## [1,] -0.02202081
## [2,] -0.02753568
## [3,]  0.15723567
## [4,]  0.06601020
 b4<-sig22%*%v4.M22
 b4
##               [,1]
## [1,] -2.074214e-17
## [2,] -3.496552e-17
## [3,]  1.489152e-16
## [4,]  5.854692e-17
U1V1<-(t(a1)%*%P12%*%b1)/((sqrt(t(a1)%*%P11%*%a1))*(sqrt(t(b1)%*%P22%*%b1)))
U1V1
##            [,1]
## [1,] -0.7235615
U2V2<-(t(a2)%*%P12%*%b2)/((sqrt(t(a2)%*%P11%*%a2))*(sqrt(t(b2)%*%P22%*%b2)))
U2V2
##           [,1]
## [1,] 0.3782016
U3V3<-(t(a3)%*%P12%*%b3)/((sqrt(t(a3)%*%P11%*%a3))*(sqrt(t(b3)%*%P22%*%b3)))
U3V3
##            [,1]
## [1,] 0.07845413
an<-(t(a1)%*%P11%*%a1)
an
##      [,1]
## [1,]    1
X<-data.frame(X1,X2,X3,X4)
Y<-data.frame(Y1,Y2,Y3)

X_scaled <- scale(X)
Y_scaled <- scale(Y) 


result <- cancor(X_scaled, Y_scaled)
result
## $cor
## [1] 0.73006583 0.45862649 0.07846149
## 
## $xcoef
##           [,1]         [,2]         [,3]        [,4]
## X1  0.03014811  0.118080209  0.001545226 -0.17737804
## X2 -0.02118205 -0.198426721  0.056597037 -0.04631329
## X3 -0.09104906  0.145160090 -0.159788623 -0.10272361
## X4  0.10580931  0.001825117 -0.152244613 -0.03372254
## 
## $ycoef
##          [,1]        [,2]        [,3]
## Y1 -0.2500000  0.17102130 -0.07679681
## Y2  0.1663943 -0.30685573 -0.04705638
## Y3  0.1183552 -0.04873696 -0.17340668
## 
## $xcenter
##            X1            X2            X3            X4 
##  2.857192e-17  1.016344e-16  6.326639e-18 -3.892924e-17 
## 
## $ycenter
##            Y1            Y2            Y3 
## -2.588565e-16  1.556149e-17  2.128608e-16
#MENGHITUNG ANALISIS KORELASI KANONIK LANGSUNG
cor_XY<-cancor(X,Y)
cor_XY
## $cor
## [1] 0.73006583 0.45862649 0.07846149
## 
## $xcoef
##            [,1]          [,2]         [,3]         [,4]
## X1  0.029330021  0.1148760141  0.001503295 -0.172564749
## X2 -0.001772508 -0.0166042895  0.004736023 -0.003875483
## X3 -0.015732575  0.0250825443 -0.027610242 -0.017749847
## X4  0.008011007  0.0001381828 -0.011526705 -0.002553192
## 
## $ycoef
##           [,1]        [,2]        [,3]
## Y1 -0.16243678  0.11112057 -0.04989849
## Y2  0.04926995 -0.09086105 -0.01393356
## Y3  0.07214438 -0.02970802 -0.10570148
## 
## $xcenter
##        X1        X2        X3        X4 
##  7.899412 29.149706 10.951176 46.804412 
## 
## $ycenter
##        Y1        Y2        Y3 
##  4.391176 14.861765  4.832353
#uji korelasi kanonik secara simultan Keseluruhan

n <- 34   
p <- 3    
q <- 4   
rho <- c(-U1V1, U2V2, U3V3)  

Simult <- n - 1 - (1/2) * (p + q + 1)
product_rho <- prod(1 - rho^2)
B <- -Simult * log(product_rho)

df <- p * q
chi_critical <- qchisq(0.95, df)

cat("Nilai B:", B, "\n")
## Nilai B: 26.15534
cat("Nilai Chi-Square tabel:", chi_critical, "\n")
## Nilai Chi-Square tabel: 21.02607
# Keputusan uji hipotesis
if (B > chi_critical) {
  cat("Terima H0,semua korelasi kanonik bernilai nol.\n")
} else {
  cat("Belum cukup bukti untuk menerima Ho, paling tidak ada satu korelasi kanonik yang bernilai nol.\n")
}
## Terima H0,semua korelasi kanonik bernilai nol.
#uji korelasi kanonik secara simultan individu
n <- 34   
p <- 3    
q <- 4

#B1
rho <- c(-U1V1, U2V2, U3V3)  
Simult <- n - 1 - (1/2) * (p + q + 1)
product_rho <- prod(1 - rho^2)
B1 <- -Simult * log(product_rho)

df <- (p-1+1)*(q-1+1)
chi_critical <- qchisq(0.95, df)

cat("Nilai B1:", B1, "\n")
## Nilai B1: 26.15534
cat("Nilai Chi-Square tabel:", chi_critical, "\n")
## Nilai Chi-Square tabel: 21.02607
#B2 
rho <- c(-U2V2, U3V3)  
Simult <- n - 1 - (1/2) * (p + q + 1)
product_rho <- prod(1 - rho^2)
B2 <- -Simult * log(product_rho)

df <- (p-2+1)*(q-2+1)
chi_critical <- qchisq(0.95, df)

cat("Nilai B2:", B2, "\n")
## Nilai B2: 4.655485
cat("Nilai Chi-Square tabel:", chi_critical, "\n")
## Nilai Chi-Square tabel: 12.59159
#B3  
rho <- (-U3V3)  
Simult <- n - 1 - (1/2) * (p + q + 1)
product_rho <- prod(1 - rho^2)
B3 <- -Simult * log(product_rho)

df <- (p-3+1)*(q-3+1)
chi_critical <- qchisq(0.95, df)

cat("Nilai B3:", B3, "\n")
## Nilai B3: 0.1790481
cat("Nilai Chi-Square tabel:", chi_critical, "\n")
## Nilai Chi-Square tabel: 5.991465