You are on page 1of 1

PCA <- function(data,cor = TRUE){ ##Menentukan matriks korelasi atau kovarian berdasarkan masukan # user if (cor == TRUE){ mat

= cor(data)} else mat = cov(data) ##Menghitung eigenvalue dan eigenvector pc <- eigen(mat) p <- ncol(data) ##Menghitung proporsi varians dan kumulatifnya sumvar <- sum(pc$values) var <- matrix(c(0),p,1) cumvar <- matrix(c(0),p,1) for(i in 1:p){ var[i] <- pc$values[i]/sumvar if (i == 1) {cumvar[i] <- var[i]} else cumvar[i] <- var[i] + cumvar[i-1] } ##Membentuk scree-plot #par(new = TRUE) plot(pc$values,type="l",xlab="Components",ylab="Variances") plot(pc$values,type="o",xlab="Components",ylab="Variances") ##Mengeluarkan output cat("\neigenvalues\tproportion\tcumulative") for(i in 1:p){ cat("\n",pc$values[i],"\t",var[i],"\t",cumvar[i],"\n") } cat("\n") return(list(eigenvectors = pc$vectors)) }

You might also like