Magyarország térképének kirajzolása MDS-sel

A többdimenziós skálázást (MDS) egy dimenziócsökkentő eljárás, melyet először a földrajzban használtak térképek kirajzolására. Azóta számos más területen is alkalmazzák, pl. pszichológiában kognitív térképek. Ennek a bejegyzésnek a célja az MDS alkalmazásának bemutatása R-ben. Példaként Magyarország térképét fogjuk kirajzolni települések távolságmátrixának felhasználásával.

Hazánk távolságmátrixát a http://www.psoft.hu/termekek/telepules-matrix.html weboldalról lehet letölteni XLS formátumban.

XLS fájl beolvasására bőven van választási lehetőség az R csomagok között: gdata, xlsReadWrite, XLConnect, xlsx, stb. Ezek közül én személy szerint az XLConnect csomagot használom, illetve fogom használni a példa során.

Adatok betöltése:

Az adatok betöltését 2 lépésből oldjuk meg: Az xls fájl betöltése után az adatokat az első munkalapból olvassuk be, ugyanis ez tartalmazza a távolságokat.

Adatok tisztítása:

Az elemzés elvégzéséhez egy numerikus mátrixra van szükségünk, illetve a városok neveire. Amit alakítani kell a jelenlegi adathalmazon:

  • Az első oszlopot tartalmazó városnevekből sorneveket csinálunk, majd töröljük.
  • Utolsó sorban a psoft promo szövege található, amire értelemszerűen nincs szükségünk.
  • Azonos városok távolságánál hiányzó, vagyis (NA) értékek szerepelnek, ezeket le kell cserélni 0-ra.

Megvalósítás:

Kész is van a távolságmátrixunk, most már nekieshetünk a többdimenziós skálázásnak. MDS-re több lehetőség is van, én a legegyszerűbbet: a cmdscale függvényt alkalmazom, ami a stat package-en belül található. Paraméterként egy numerikus mátrixot, vagy data.frame-et kell megadni. Alapértelmezetten 2 dimenziót használ, ezt a k paraméterrel lehet állítani. Általában a priori módon határozzák meg.

A koordinátákat az MDS mátrix 2 oszlopa tartalmazza. Ezek alapján szeretnénk kirajzolni a térképet a ggplot2 quickplotja segítségével. Az első oszlop az x koordináta, a második pedig az y.

Ezzel a probléma, hogy a tengelyek fel vannak cserélve. Az MDS ugyanis a távolságok alapján nem tudja megállapítani, hogy melyik város van északra, vagy éppen délre. Ha mindkét tengelyre tükrözzük a koordinátákat, akkor már ismerősebb lehet a plot.

MDS_Plot2

Ellenőrzés, a modell jósága:

Az MDS lényege hogy egy adathalmazt dimenziócsökkentéssel könnyebben elemezhetővé tegyen. A dimenziócsökkentési eljárások a legtöbb esetben információveszteséggel járnak. A modell jóságát többféleképpen is ellenőrizhetjük, jelen esetben a determinációs hányados alapján fogunk dönteni.

 

Az információveszteség mértéke kevesebb mint 2% tehát a modell kiemelkedően jónak számít.

Vélemény, hozzászólás?