Klasyczne skalowanie metryczne
Klasyczne skalowanie metryczne zakłada, że macierz odległości powstała na bazie odległości euklidesowej. To skalowanie odpowiada metodzie PCA, z tą różnicą, że puntem wyjścia jest macierz euklidesowych odległości.
Algorytm skalowania jest następujący (jednokrokowy)
- Wyznacz macierz kwadratów odległości ,
- Wycentruj macierz , wyznacz gdzie macierz centrująca to ,
- Wyznacz wartości własne i wektory własne macierzy .
- Wyznacz współrzędne obiektów jako gdzie to macierz z pierwszymi wektorami własnymi, a wektor to p-największych wartości własnych.
Oczywistą zaletą tej metody jest jednokrokowość. Jest to najszybszy algorytm skalowania.
Jednak aby wyniki były miarodajne, założeniem tej metody jest to, że macierz oparta jest o odległość euklidesową. Nawet gdy to założenie nie jest spełnione, skalowanie klasyczne jest wykorzystywane by wybrać początkową konfigurację dla innych algorytmów skalowania metrycznego lub nie metrycznego.
Jak przeprowadzić skalowanie klasyczne w R?
Funkcja cmdscale()
z pakietu MASS
wyznacza klasyczne skalowanie metryczne (nazwa pochodzi od classical metric scalling).
Poniżej zastosujemy ją na tych samych danych co w poprzednim rozdziale.
library(ggplot2)
library(ggrepel)
library(MASS)
library(cluster)
glosowania <- archivist::aread("pbiecek/Przewodnik/arepo/3eab62451d26be6d14fe99dda69675ca")
podobienstwa <- daisy(glosowania[,-(1:2)])
projekcja <- as.data.frame( cmdscale(podobienstwa, k = 2) )
projekcja$klub <- glosowania[,2]
projekcja$imie <- glosowania[,1]
ggplot(projekcja, aes(V1, V2, label=imie)) +
geom_point(aes(color=klub)) +theme_bw()
Zaznaczmy na tym wykresie pozycje liderów klubów.
ggplot(projekcja, aes(V1, V2, label=imie)) +
geom_point(aes(color=klub)) +
geom_text_repel(data=projekcja[c(268, 348, 139, 259, 168, 309, 223),]) +theme_bw()
Inne materiały
- Właściwości metody klasycznej K. Mardia Some properties of classical multi-dimensional scaling https://www1.maths.leeds.ac.uk/~sta6kvm/reprints/CommunStatTheo1978.pdf
- Szczegółowe wyprowadzenie skalowania Steffen Unkel Classical Multidimensional Scaling http://www.statistik.lmu.de/institut/ag//leisch/teaching/fcim13/handout.pdf