Frekvenciák és kereszttáblák

Ez a szakasz a kategorikus változókból gyakorisági és kontingenciatáblák létrehozását írja le, valamint a függetlenségi teszteket, az asszociációs mértékeket és az eredmények grafikus megjelenítésének módszereit.

Frekvenciatáblázatok készítése

A R számos módszert biztosít gyakorisági és kontingenciatáblázatok készítéséhez. Az alábbiakban három módszert ismertetünk. A következő példákban tegyük fel, hogy A, B és C kategorikus változókat jelentenek.

table

A table( ) függvénnyel gyakorisági táblázatokat, a prop.table( ) függvénnyel aránytáblákat, a margin.table( ) függvénnyel pedig marginális gyakorisági táblázatokat készíthet.

# 2-Way Frequency Table
attach(mydata)
mytable <- table(A,B) # A will be rows, B will be columns
mytable # print table
margin.table(mytable, 1) # A frequencies (summed over B)
margin.table(mytable, 2) # B frequencies (summed over A)
prop.table(mytable) # cell percentages
prop.table(mytable, 1) # row percentages
prop.table(mytable, 2) # column percentages

table( ) függvénnyel többdimenziós táblázatokat is készíthet 3 vagy több kategorikus változó alapján. Ebben az esetben az ftable( ) függvényt használja az eredmények vonzóbb kiírásához.

# 3-Way Frequency Table
mytable <- table(A, B, C)
ftable(mytable)

A táblázat figyelmen kívül hagyja a hiányzó értékeket. Ahhoz, hogy a NA kategóriaként szerepeljen a számlálásokban, vegye fel a táblázat exclude=NULL opcióját, ha a változó egy vektor. Ha a változó egy faktor, akkor egy új faktort kell létrehozni a newfactor <- factor(oldfactor, exclude=NULL) használatával.

xtabs

Az xtabs( ) függvény lehetővé teszi kereszttáblázatok létrehozását képlet stílusú bemenet segítségével.

# 3-Way Frequency Table
mytable <- xtabs(~A+B+c, data=mydata)
ftable(mytable) # print table
summary(mytable) # chi-square test of indepedence

Ha a képlet bal oldalán szerepel egy változó, akkor azt gyakorisági vektornak kell feltételezni (hasznos, ha az adatokat már táblázatba foglaltuk).

Crosstable

A gmodels csomagban található CrossTable( ) függvény a SAS-ban a PROC FREQ vagy az SPSS-ben a CROSSTABS után modellezett kereszttáblázatokat készít. Rengeteg beállítási lehetőséggel rendelkezik.

# 2-Way Cross Tabulation
library(gmodels)
CrossTable(mydata$myrowvar, mydata$mycolvar)

Ezek között lehetőség van százalékos értékek (sor, oszlop, cella) jelentésére, tizedesjegyek megadására, a függetlenség Chi-négyzet, Fisher és McNemar tesztek előállítására, várható és reziduális értékek (pearson, standardizált, korrigált standardizált) jelentésére, hiányzó értékek érvényesnek tekintésére, sor- és oszlopcímekkel való megjegyzésre, valamint SAS vagy SPSS stílusú kimenetként való formázásra!
A részletekért lásd a help(CrossTable) parancsot.

Függetlenségvizsgálatok

Chi-négyzet teszt

Kétoldalú táblázatok esetén a chisq.test(mytable) segítségével tesztelheti a sor- és oszlopváltozó függetlenségét. Alapértelmezés szerint a p-értéket a tesztstatisztika aszimptotikus chi-négyzeteloszlásából számítja ki. Opcionálisan a p-érték Monte Carlo szimultációval is levezethető.

Fisher egzakt teszt

fisher.test(x) a függetlenség egzakt tesztjét biztosítja. x egy kétdimenziós kontingenciatábla mátrix formában.

Mantel-Haenszel teszt

A mantelhaen.test(x) függvény segítségével elvégezhetjük a Cochran-Mantel-Haenszel chi-négyzet tesztet arra a nullhipotézisre, hogy két nominális változó feltételesen független az egyes rétegekben, feltételezve, hogy nincs háromirányú kölcsönhatás. x egy háromdimenziós kontingencia táblázat, ahol az utolsó dimenzió a rétegekre utal.

Loglineáris modellek

A MASS csomag loglm( ) függvényével log-lineáris modelleket állíthat elő. Tegyük fel például, hogy van egy 3-utas kontingenciatáblánk, amely A, B és C változókon alapul.

library(MASS)
mytable <- xtabs(~A+B+C, data=mydata)

A következő teszteket végezhetjük el:

Mutatós függetlenség: A, B és C páronként függetlenek. loglm(~A+B+C, mytable)

Parciális függetlenség: A részben független B-től és C-től (azaz A független a BC összetett változótól). loglin(~A+B+C+B*C, mytable)

Feltételes függetlenség: A független B-től, adott esetben C-től. loglm(~A+B+C+A*C+B*C, mytable)

No Three-Way Interaction loglm(~A+B+C+A*B+A*C+B*C, mytable)

Martin Theus és Stephan Lauer írtak egy kiváló cikket a loglineáris modellek vizualizálásáról mozaikos ábrák segítségével.

Measures of Association

A vcd csomag assocstats(mytable) függvénye kiszámítja a phi együtthatót, a kontingencia együtthatót és a Cramer’s V-t egy rxc táblázathoz. A vcd csomag kappa(mytable) függvénye kiszámítja a Cohen kappát és a súlyozott kappát egy konfúziós mátrixra. E statisztikák kiváló áttekintését lásd Richard Darlington: Measures of Association in Crosstab Tables című cikkében.

Eredmények vizualizálása

A gyakoriságok egy dimenzióban való megjelenítéséhez használjon oszlop- és kördiagramokat.

A vcd csomagot használja a kategorikus adatok közötti kapcsolatok vizualizálására (pl. mozaik- és asszociációs ábrák).

A ca csomagot használja a korreszpondenciaelemzéshez (kontingenciatáblák sorai és oszlopai közötti kapcsolatok vizuális feltárása).

Az ilyen ábrák készítésének gyakorlásához próbálja ki a DataCamp adatvizualizációs tanfolyamát.

A gyakorisági táblázatok átalakítása “eredeti” sík fájlba

Végül előfordulhat, hogy a gyakorisági táblázat helyett az eredeti “sík fájl” adatkeretre lesz szüksége. Marc Schwartz az Rhelp levelezési listán kódot adott a táblázat visszaalakításához adatkeretbe.

Leave a Reply