Jika Anda tidak membakukan data Anda, maka variabel yang diukur dalam unit bernilai besar akan mendominasi ketidaksamaan yang dihitung dan variabel yang diukur dalam unit bernilai kecil akan berkontribusi sangat sedikit.
Kami dapat memvisualisasikan ini dalam R melalui:
set.seed(42)
dat <- data.frame(var1 = rnorm(100, mean = 100000),
var2 = runif(100),
var3 = runif(100))
dist1 <- dist(dat)
dist2 <- dist(dat[,1, drop = FALSE])
dist1
berisi jarak Euclidean untuk 100 pengamatan berdasarkan ketiga variabel sementara dist2
berisi jarak Euclidean berdasarkan var1
sendirian.
> summary(dist1)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.07351 0.77840 1.15200 1.36200 1.77000 5.30200
> summary(dist2)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.000072 0.470000 0.963600 1.169000 1.663000 5.280000
Perhatikan seberapa mirip distribusi jaraknya, yang menunjukkan sedikit kontribusi dari var2
dan var3
, dan jarak sebenarnya sangat mirip:
> head(dist1)
[1] 1.9707186 1.0936524 0.8745579 1.2724471 1.6054603 0.1870085
> head(dist2)
[1] 1.9356566 1.0078300 0.7380958 0.9666901 1.4770830 0.1405636
Jika kita membakukan data
dist3 <- dist(scale(dat))
dist4 <- dist(scale(dat[,1, drop = FALSE]))
maka ada perubahan besar dalam jarak hanya berdasarkan var1
dan yang didasarkan pada ketiga variabel:
> summary(dist3)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.09761 1.62400 2.25000 2.28200 2.93600 5.33100
> summary(dist4)
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.000069 0.451400 0.925400 1.123000 1.597000 5.070000
> head(dist3)
[1] 2.2636288 1.7272588 1.7791074 3.0129750 2.5821981 0.4434073
> head(dist4)
[1] 1.8587830 0.9678046 0.7087827 0.9282985 1.4184214 0.1349811
Karena pengelompokan hierarkis menggunakan jarak ini, apakah diinginkan untuk distandarisasi atau tidak akan tergantung pada jenis data / variabel yang Anda miliki dan apakah Anda ingin hal-hal besar mendominasi jarak dan karenanya dominan pembentukan pengelompokan. Jawabannya adalah spesifik domain dan spesifik data-set.