Membuat matrik dengan dimensi sebesar 10x3 berdasarkan data lulusan mahasiswa dengan sampling 10 orang dengan 3 variabel (1, 2, 3) dimana 1 merupakan data IPK, 2 merupakan data Masa Studi Mahasiswa dan 3 merupakan Kredit Skor yang diperoleh. Disini saya memasukkan manual datanya 1 per 1, sebenarnya ada alternatif lain dengan menggunakan data berupa file CSV
library("scatterplot3d") # load
DataLulusan <- matrix(c(3.26,3.96,3.55,3.73,3.66,3.61,4.00,3.71,3.72,3.73,100,100,85,100,90,89,105,99,80,90,165,162.1,163.4,161,169,165,168.5,164.7,167.5,169.5),
10, #Jumlah baris
3) #Jumlah kolom
DataLulusan
## [,1] [,2] [,3]
## [1,] 3.26 100 165.0
## [2,] 3.96 100 162.1
## [3,] 3.55 85 163.4
## [4,] 3.73 100 161.0
## [5,] 3.66 90 169.0
## [6,] 3.61 89 165.0
## [7,] 4.00 105 168.5
## [8,] 3.71 99 164.7
## [9,] 3.72 80 167.5
## [10,] 3.73 90 169.5
scatterplot3d(DataLulusan, pch = 20, color="brown")
Dari data tersebut akan dicari nilai mean dari matriks DataLulusan
#membuat fungsi untuk mencari nilai mean dari matrik
vectorMean <- function(DataLulusan){
n <- dim(DataLulusan)[1]
Xbar <- rep(1,n) %*% DataLulusan / n
return(Xbar)
}
print(vectorMean(DataLulusan))
## [,1] [,2] [,3]
## [1,] 3.693 93.8 165.57
scatterplot3d(vectorMean(DataLulusan), pch = 20, color="brown")
Sekarang akan dihitung nilai kovarian dari data matrik DataLulusan dengan cara seperti dibawah ini
# Fungsi untuk perhitungan matriks kovarian
matrixCov <- function(DataLulusan){
n <- dim(DataLulusan)[1] # jumlah baris
ones <- rep(1,n) # vektor satuan
C <- diag(1,n) - ones %*% t(ones) / n
Xc <- C %*% DataLulusan
matCov <- t(Xc) %*% Xc / (n-1)
return(matCov)
}
# Hasil akhir menampilkan nilai kovarian
print(matrixCov(DataLulusan))
## [,1] [,2] [,3]
## [1,] 0.04280111 0.444000 0.053100
## [2,] 0.44400000 65.288889 -6.428889
## [3,] 0.05310000 -6.428889 8.729000
Bisa juga dengan menggunakan perintah dibawah ini sebagai pembanding dari hasil diatas
print(cov(DataLulusan))
## [,1] [,2] [,3]
## [1,] 0.04280111 0.444000 0.053100
## [2,] 0.44400000 65.288889 -6.428889
## [3,] 0.05310000 -6.428889 8.729000
scatterplot3d(matrixCov(DataLulusan), pch = 20, color="red")
Sekarang kita akan mencari nilai Matrik Korelasi berdasarkan data dari DataLulusan
matrixCor <- function(DataLulusan){
n <- dim(DataLulusan)[1] # jumlah baris
p <- dim(DataLulusan)[2] # jumlah kolom
ones <- rep(1,n) # vektor satuan
C <- diag(1,n) - ones %*% t(ones) / n
D <- c()
for (j in 1:p) D <- c(D, sd(DataLulusan[,j]))
Xs <- C %*% DataLulusan %*% solve(diag(D))
matCor <- t(Xs) %*% Xs / (n-1)
# penamaan baris dan kolom
rownames(matCor) <- colnames(matCor) <- colnames(DataLulusan)
return(matCor)
}
# print out function matriks korelasi X
print(matrixCor(DataLulusan))
## [,1] [,2] [,3]
## [1,] 1.00000000 0.2656047 0.08687299
## [2,] 0.26560473 1.0000000 -0.26929856
## [3,] 0.08687299 -0.2692986 1.00000000
Cara yang lain bisa juga dengan langsung menggunakan fungsi dibawah cor(nama matrik)
print(cor(DataLulusan))
## [,1] [,2] [,3]
## [1,] 1.00000000 0.2656047 0.08687299
## [2,] 0.26560473 1.0000000 -0.26929856
## [3,] 0.08687299 -0.2692986 1.00000000
Menampilkan data dari hasil perhitungan korelasi matrik dalam 3D dengan menggunakan Scatterplot
scatterplot3d(matrixCor(DataLulusan), pch = 20, color="red")