Yang mana A adalah matriks mxn, U adalah matriks mxm, ∑ adalah matriks mxn dan V adalah matriks
nxn.
Dalam PCA terdapat score dan loading, tetapi di svd menggunakan rumus dari matriks diatas.
Hasil perkalilan matriks U*∑ bernilai sama dengan PCA scores sedangkan matriks V bernilai sama dengan
PCA loading.
Script:
1. s.m<-scale(m) = menscale kan matriks m yang mana matriks m didapat dari data nc di
pertemuan sebelumnya.
2. PCA_SVD<- svd(s.m) = membuat svd dari scale matriks m . dalam PCA_SVD diagonal dari
sigma svd$d dinyatakan dalam vector.
3. sigma<- matrix(0,length(PCA_SVD$d),length(PCA_SVD$d))
membuat sigma sebagai matriks diagonal
4. diag(sigma)<-PCA_SVD$d = membuat sigma yang sekarang menjadi sigma matriks sebenarnya
#Menunjukkan bahwa scale m bernilai sama dengan PCA score* transpose PCA loading
10. recoverMatPCA<- pca.cor$x%*%t(pca.cor$rotation) = membuat variable recoverMatPCA yang
merupakan hasil dari PCA score* transpose PCA loading
11. all(round(s.m,5)== round(recoverMatPCA,5)) = digunakan untuk melakukan test apakah scale m
sama dengan recoverMatPCA yang sebelumnya telah dibuat. Jika dalam console tertulis True
maka terbukti bahma kedua variable pembanding bernilai sama.