Deprecated: Joomla\Input\Input implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/adatpcom/public_html/libraries/vendor/joomla/input/src/Input.php on line 41

Deprecated: Return type of Joomla\Input\Input::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/adatpcom/public_html/libraries/vendor/joomla/input/src/Input.php on line 170

Deprecated: Joomla\CMS\Input\Input implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/adatpcom/public_html/libraries/src/Input/Input.php on line 31

Deprecated: Joomla\CMS\Input\Cookie implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/adatpcom/public_html/libraries/src/Input/Cookie.php on line 0

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /home/adatpcom/public_html/libraries/src/Uri/Uri.php on line 141
R - Leíró statisztika és korrelációs mátrix készítése

Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /home/adatpcom/public_html/templates/shaper_helix3/html/modules.php on line 21
R - Leíró statisztika és korrelációs mátrix készítése

R - Leíró statisztika és korrelációs mátrix készítése

Amikor egy új, ismeretlen adathalmaz elemzése a feladat, az első lépés többnyire a leíró statisztikák (szélső értékek, szórás, stb.) vizsgálata. Amennyiben a különböző változók közötti lehetséges összefüggések feltárása is cél, egy későbbi lépésben hasznos eszköz lehet egy korrelációs mátrix is. Egy statisztikai elemző program (pl. SPSS vagy SAS) ezeket könnyen, gyorsan elő tudja számunkra állítani, ám sajnos nem mindig áll rendelkezésünkre ilyen eszköz. Az Excel általában kéznél van, a feladat meg is oldható a segítségével (a korrelációs mátrix készítéséről mi is írtunk korábban), de a leíró statisztikához szükséges függvényeket beírni idő- és energiaigényesebb. Az R statisztikai programozási nyelv használata: az eredmény gyorsan és egyszerűen előállítható, a környezet pedig ingyenesen hozzáférhető.

Az R egy nyílt forráskódú, statisztikai feladatok támogatásához fejlesztett, ingyenesen használható programozási nyelv, amelyet az R Foundation for Statistical Computing koordinálásával fejlesztenek évtizedek óta. A felhasználás megkönnyítésére több grafikus felületet is kínáló kliens szoftver készült hozzá, az egyik legnépszerűbb az RStudio. Az elemző környezet kialakításához először az R telepítése szükséges (letölthető innen), majd javasolt egy kliens szoftver, pl. az előbb említett RStudio telepítése (letölthető innen).

Az elemzés során a KSH Helységnévtár adatait használtam, amelyeket kicsit egyszerűsítve, rendszerezve .CSV formátumba rendeztem (tagolókarakter: pontosvessző, tizedesjelölő: vessző, ezrestagoló: nincs). Az RStudio bal alsó negyedébe (Console) írom a parancsokat, elsőként az adatok beolvasását.

R - RStudio Console ablaka

Az adatokat rögtön egy változóban fogjuk tárolni, ennek a neve legyen "adat" (idézőjelek nélkül). Az értékadás jele az R-ben a "<-" (idézőjelek nélkül). A .CSV fájl beolvasását a read parancs csv metódusa végzi el, amely több paramétert is képes fogadni, ezúttal hármat adunk meg.

  1. file: annak érdekében, hogy a kód könnyen újrahasznosítható legyen, nem a fájl abszolút elérési útját adom értékként, hanem egy tallózó felületet megnyitó funkciót (file.choose()),
  2. sep: vagyis a tagolókarakter, amely esetünkben nem az alapértelmezett vessző, hanem pontosvessző, amit szövegként, azaz aposztrófok között adunk meg,
  3. dec: vagyis tizedesjelölő karakter, amely szintén eltér az alapértelmezett ponttól, így szövegként megadjuk a vesszőt.
adat <- read.csv(file = file.choose(), sep = ';', dec = ',')

Az Enter gomb lenyomása után megjelenik egy ablak, amelyben ki tudjuk tallózni a helysegnevtar_r.csv fájlt. A Megnyitás gomb lenyomásával csak egy új, üres sor jelenik meg a Console-on, azonban a jobb felső negyedben az Environment fülön megjelenik az adat változó és az RStudio mutatja is, hogy ebben a data frame-ben 3178 vizsgálati egységre vonatkozóan, 7 oszlopban találhatók adatok.

R - CSV fájl betöltése egy változóba

Ezen adatok leíró statisztikáit az R egyetlen funkcióval képes előállítani, ez a summary(data_frame), amely a számszerű adatok esetében megmutatja a minimumot, maximumot, átlagot, kvartiliseket és mediánt; nem számszerű adatok esetében pedig az egyes értékek gyakoriságát (darabszámát).

summary(adat)

R - summary() parancs eredménye

A leíró statisztikából is látszik, hogy vannak számszerű és nem számszerű adatok a vizsgált táblában. A Pearson-féle korrelációt azonban csak számszerű adatokon lehet elvégezni, így készítenünk kell az adatainkból egy részhalmazt, amelyben csak a számszerű adatok (terület, lakónépesség, stb.) szerepelnek. Ezt többféleképpen is megtehetjük, esetünkben a legegyszerűbb, ha az oszlopok sorszámára (indexére) hivatkozunk. A legtöbb programozási nyelvben a felsorolások (indexelés) első eleme a 0 indexet kapja, az R azonban 1-től kezdi az indexelést. Nekünk a negyedik, ötödik, hatodik és hetedik oszlopokra lesz szükségünk (mivel ezek egymás után sorban következnek, nem kell felsorolnunk mindet). A részhalmazt rögtön el is tároljuk egy külön változóban (szam_adat), így a későbbiekben könnyebb lesz vele dolgoznunk.

szam_adat <- adat[4:7]

R - Részhalmaz képzése a data frame-ből

A cor(data_frame) funkció a paraméterként kapott data frame oszlopaira kiszámolja a Pearson-féle korrelációs együtthatót és elkészíti a korrelációs mátrixot.

cor(szam_adat)

R - Korrelációs mátrix (a cor() parancs eredménye)

Az átlóban természetesen 1-es értékek szerepelnek, hiszen itt az oszlop önmagával való összehasonlításának eredménye látszik. A mintaadatokban két mutató között látszik nagyon erős, szinte függvényszerű összefüggés: a lakónépesség száma és a lakásszám egyenes arányosságot mutató módon mozognak együtt. Itt ráadásul tudjuk, hogy oksági kapcsolatról is szó van, hiszen ahol több ember lakik, ott több lakásra van szükség.

Az R, hasonlóan a komplex statisztikai elemzéseket lehetővé tevő szoftverekhez, egy-egy parancs segítségével képes előállítani a leíró statisztikákat és a korrelációs mátrixot. Ez azonban csak a jéghegy csúcsa, rengeteg elemzési és vizualizációs lehetőség rejlik még benne, amelyeket használva a jövőben bemutatunk néhány érdekes és hasznos megoldást.

Az elemzéshez használt mintaadatok letölthetők a GitHub oldalunkról!

Címkék: ,

Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /home/adatpcom/public_html/templates/shaper_helix3/html/modules.php on line 21