USArrScale <- scale(USArrests, scale=T)
set.seed(123) #biar hasilnya tidak berubah
kMres <- kmeans(USArrScale, centers=3)
kMres$cluster
## Alabama Alaska Arizona Arkansas California
## 1 1 1 3 1
## Colorado Connecticut Delaware Florida Georgia
## 1 3 3 1 1
## Hawaii Idaho Illinois Indiana Iowa
## 3 2 1 3 2
## Kansas Kentucky Louisiana Maine Maryland
## 3 2 1 2 1
## Massachusetts Michigan Minnesota Mississippi Missouri
## 3 1 2 1 1
## Montana Nebraska Nevada New Hampshire New Jersey
## 2 2 1 2 3
## New Mexico New York North Carolina North Dakota Ohio
## 1 1 1 2 3
## Oklahoma Oregon Pennsylvania Rhode Island South Carolina
## 3 3 3 3 1
## South Dakota Tennessee Texas Utah Vermont
## 2 1 1 3 2
## Virginia Washington West Virginia Wisconsin Wyoming
## 3 3 2 2 3
kMres$size
## [1] 20 13 17
pairs(USArrScale,col=c(1,3)[kMres$cluster],pch=16)
# Pada gambar di atas dapat dilihat hasil pengelompokkan kelompok 1(hitam), kelompok 2(merah) dan kelompok 3(hijau). Negara bagian yang termasuk ke dalam kelompok 1 adalah negara dengan tingkat kejahatan yang rendah, kelompok 2 medium, dan kelompok 3 sangat tinggi
set.seed(12)
# Agar hasilnya tidak berubah ubah
k.max=15 #maksimal jumlah cluster
wss<-sapply(1:k.max,function(k){
kmeans(USArrScale,k,nstart=10)$tot.withinss})
wss
## [1] 196.00000 102.86240 78.32327 56.40317 48.94420 42.96386 38.38847
## [8] 34.65849 30.75887 26.18348 23.74803 21.57556 20.74192 18.55163
## [15] 16.81152
plot(1:k.max,wss,type = "b", pch=19,
frame=FALSE, xlab="Jumlah cluster k", ylab="Total within cluster variation")
abline(v=4,lty=2)
# Dari contoh di atas dapat dilihat bahwa jumlah klaster yang optimal adalah 4 karena penambahan jumlah klaster tidak membawa pengaruh banyak atas variasi di dalam klaster tersebut
library(advclust)
pca = prcomp(USArrests, scale = T)
pca
## Standard deviations (1, .., p=4):
## [1] 1.5748783 0.9948694 0.5971291 0.4164494
##
## Rotation (n x k) = (4 x 4):
## PC1 PC2 PC3 PC4
## Murder -0.5358995 0.4181809 -0.3412327 0.64922780
## Assault -0.5831836 0.1879856 -0.2681484 -0.74340748
## UrbanPop -0.2781909 -0.8728062 -0.3780158 0.13387773
## Rape -0.5434321 -0.1673186 0.8177779 0.08902432
kMres2 = kmeans(USArrests,centers = 3)
pairs(USArrests, col=c(1:4)[kMres2$cluster],pch = 16)
##### Biplot
biplot(pca, clust = kMres2$cluster, rowname = row.names(USArrests), legendname = "group")
##### CATATAN : radarPlot tidak dapat digunakan