6.3.2 A távolságadatok geometrikus reprezentációja
Az elkészült távolságmátrix ismeretében már lefuttathatjuk a nem metrikus többdimenziós skálázást az R statisztikai program segítségével.
library(MASS)
mds<-isoMDS(dist, k=2)
|
|
6.4. R-forráskód
|
A 6.4. R-forráskód azt mutatja, hogyan futtathatjuk le a nem metrikus többdimenziós skálázást. A parancssorból is láthatjuk, hogy a többdimenziós skálázás a távolságmátrixból indul ki, hiszen az adatok helyén a távolságmátrix szerepel. A „k” értékénél pedig azt adhatjuk meg, hogy hány dimenziós megoldást szeretnénk kapni. A parancssorban egy kétdimenziós megoldást kértünk.
print(mds$points, digits=3)
|
|
6.5. R-forráskód
|
[,1] [,2]
Budapest 9.58 -19.3
Gyor -95.52 -68.5
Tatab -39.39 -37.7
Szhely -180.86 -32.8
Zszeg -178.93 11.2
Kaposvar -121.30 77.9
Szeged 55.46 130.9
Debrecen 196.84 18.0
Nyhaza 210.24 -22.4
Miskolc 143.89 -57.2
|
|
6.5. R-eredmény.
|
A 6.5. R-eredmény mutatja a kapott kétdimenziós megoldást. Az egyes oszlopok az elemek első illetve második dimenzióbeli értékeit mutatja. Mivel a többdimenziós skálázásban fontos cél az adatok grafikus ábrázolása is, ezeket az értékeket kezelhetjük koordinátákként, melyek segítségével rajzolhatunk egy kétdimenziós térképet.
plot(mds$points,xlim=c(-300,300),ylim=c(-100,200))
text(mds$points,labels=row.names(d), pos=1)
|
|
6.6. R-forráskód
|
A 6.6. R-forráskód segítségével a térképet kaphatjuk meg. A forráskód első sora a pontokat ábrázoltatja az R-segítségével, az xlim, illetve ylim paraméter a tengelyek ábrázolt két végpontjának az értékeit adják meg. A második sor pedig hozzárendeli a városneveket az egyes pontokhoz. A 6.6. R-eredményen láthatjuk a kapott térképet. Az egyetlen furcsaság a kapott térképen az, hogy az észak-dél irány fordítva van. Ennek oka, hogy a módszer az egyes objektumok egymáshoz való viszonyát modellezi, ám a koordináta-tengelyek iránya és helye változhat. Természetesen megkaphatjuk a „valódi” Magyarország térképet is.
Ennek megoldásához csupán meg kell szoroznunk a második dimenziót (-1)-gyel, ahogyan azt a 6.7. R-forráskódon láthatjuk, majd az így kapott értékeket ábrázolhatjuk két dimenzióban. Az eredmény pedig a 6.7. R-eredményen látható.
points<-mds$points
y<-points[,2]*(-1)
pontok<-cbind(points[,1],y)
plot(pontok,xlim=c(-300,300),ylim=c(-200,150))
text(pontok,labels=row.names(d), pos=1)
|
|
6.7. R-forráskód
|
|