#Aljabar Matriks dan Geometri Sampel
Source Image: Analisis Peubah Ganda
#Membuat matrix 3 x 3
A <-matrix(c(3,5,2,6,4,8,7,9,5), nrow = 3)
A
## [,1] [,2] [,3]
## [1,] 3 6 7
## [2,] 5 4 9
## [3,] 2 8 5
B <-matrix(c(1,3,2,5,7,5,8,3,4), nrow = 3)
B
## [,1] [,2] [,3]
## [1,] 1 5 8
## [2,] 3 7 3
## [3,] 2 5 4
C <- matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3, byrow = TRUE,
dimnames = list(c("row1", "row2"),
c("C.1", "C.2", "C.3")))
C
## C.1 C.2 C.3
## row1 1 2 3
## row2 11 12 13
#Perkalian matrix A dan B
A%*%B
## [,1] [,2] [,3]
## [1,] 35 92 70
## [2,] 35 98 88
## [3,] 36 91 60
#Perkalian matrix A dan matriks B dan transpose(matrix c)
A%*%B%*%t(C)
## row1 row2
## [1,] 429 2399
## [2,] 495 2705
## [3,] 398 2268
#cross product
crossprod(A,B)
## [,1] [,2] [,3]
## [1,] 22 60 47
## [2,] 34 98 92
## [3,] 44 123 103
#transpose matrix
t(A)
## [,1] [,2] [,3]
## [1,] 3 5 2
## [2,] 6 4 8
## [3,] 7 9 5
t(C)
## row1 row2
## C.1 1 11
## C.2 2 12
## C.3 3 13
#inverse matriks
solve(A)
## [,1] [,2] [,3]
## [1,] -2.0000000 1.00000000 1.0000000
## [2,] -0.2692308 0.03846154 0.3076923
## [3,] 1.2307692 -0.46153846 -0.6923077
#Determinant matrix
det(A)
## [1] 26
#identify diagonal of matrix
diag(A)
## [1] 3 4 5
#Membuat matrix diagonal
diag(c(2,4,3),3,3) #diagonal matrix size 3x3
## [,1] [,2] [,3]
## [1,] 2 0 0
## [2,] 0 4 0
## [3,] 0 0 3
diag(2) #create identity matrix sized 2x2
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
#eigen value square matrix
eigen(A)
## eigen() decomposition
## $values
## [1] 16.3243746 -3.9178477 -0.4065269
##
## $vectors
## [,1] [,2] [,3]
## [1,] -0.5647567 -0.03865392 -0.8292486
## [2,] -0.6237354 -0.73949409 -0.1554778
## [3,] -0.5403739 0.67205235 0.5368178
eigen(B)
## eigen() decomposition
## $values
## [1] 12.5023175 -1.1360018 0.6336843
##
## $vectors
## [,1] [,2] [,3]
## [1,] -0.6140401 -0.94255286 0.8083083
## [2,] -0.6087174 0.33104496 -0.5151917
## [3,] -0.5024121 0.04475873 0.2849828
#Geometri Sampel
Source Image: Analisis Peubah Ganda
#a. Membuat matriks (input data)
y1<-c(35,35,40,10,6,20,35,35,35,30)
y2<-c(3.5,4.9,30,2.8,2.7,2.8,4.6,10.9,8,1.6)
y3<-c(2.8,2.7,4.38,3.21,2.73,2.81,2.88,2.9,3.28,3.2)
#convert data menjadi data frame
Ydat<-data.frame(y1,y2,y3)
Ydat
## y1 y2 y3
## 1 35 3.5 2.80
## 2 35 4.9 2.70
## 3 40 30.0 4.38
## 4 10 2.8 3.21
## 5 6 2.7 2.73
## 6 20 2.8 2.81
## 7 35 4.6 2.88
## 8 35 10.9 2.90
## 9 35 8.0 3.28
## 10 30 1.6 3.20
#hitung mean setiap variabel
ybar<-apply(Ydat,2,mean)
ybar
## y1 y2 y3
## 28.100 7.180 3.089
#menghitung jarak
d1<-y1-ybar[1]
d2<-y2-ybar[2]
d3<-y3-ybar[3]
dmat<-matrix(c(d1,d2,d3),ncol=3)
#Atau matriks jarak juga bisa kita peroleh sbb:
#dmat<-Ydat-matrix(rep(ybar,10),nrow = 10,byrow = TRUE)
#Maka matriks kovarians Sn
Sn<-(1/10)*t(dmat)%*%dmat
print(dmat)
## [,1] [,2] [,3]
## [1,] 6.9 -3.68 -0.289
## [2,] 6.9 -2.28 -0.389
## [3,] 11.9 22.82 1.291
## [4,] -18.1 -4.38 0.121
## [5,] -22.1 -4.48 -0.359
## [6,] -8.1 -4.38 -0.279
## [7,] 6.9 -2.58 -0.209
## [8,] 6.9 3.72 -0.189
## [9,] 6.9 0.82 0.191
## [10,] 1.9 -5.58 0.111
print(Sn)
## [,1] [,2] [,3]
## [1,] 126.4900 44.71200 1.747100
## [2,] 44.7120 65.02360 3.308480
## [3,] 1.7471 3.30848 0.225109
#Cara 1
S <- (10/9)*Sn
S
## [,1] [,2] [,3]
## [1,] 140.544444 49.680000 1.9412222
## [2,] 49.680000 72.248444 3.6760889
## [3,] 1.941222 3.676089 0.2501211
#Cara 2
S<-cov(Ydat)
S
## y1 y2 y3
## y1 140.544444 49.680000 1.9412222
## y2 49.680000 72.248444 3.6760889
## y3 1.941222 3.676089 0.2501211
Source Image: Analisis Peubah Ganda
#b. Matriks korelasi
#define Ds
Ds<-diag(c(sqrt(S[1,1]),sqrt(S[2,2]),sqrt(S[3,3])))
#inverse matriks Ds
invDs<-solve(Ds)
#Hitung matriks korelasi R
Rmat<-invDs%*%S%*%invDs
print(Rmat)
## [,1] [,2] [,3]
## [1,] 1.0000000 0.4930154 0.327411
## [2,] 0.4930154 1.0000000 0.864762
## [3,] 0.3274110 0.8647620 1.000000
#Generalized variance adalah determinan dari matriks kovarian (unbiased):
GenVar<-det(S)
GenVar
## [1] 459.9555