Frekvenssit ja ristiintaulukot
Tässä osassa kuvataan frekvenssi- ja kontingenssitaulukoiden luominen kategorisista muuttujista sekä riippumattomuustestit, assosiaatiomittarit ja menetelmät tulosten graafista esittämistä varten.
Tiheystaulukoiden luominen
R tarjoaa monia menetelmiä tiheys- ja kontingenssitaulukoiden luomiseen. Seuraavassa kuvataan kolme niistä. Oletetaan seuraavissa esimerkeissä, että A, B ja C edustavat kategorisia muuttujia.
taulukko
Voit luoda frekvenssitaulukoita käyttämällä funktiota table( ), osuustaulukoita käyttämällä funktiota prop.table( ) ja marginaalisia frekvenssejä käyttämällä funktiota margin.table( ).
# 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( ) voi myös luoda moniulotteisia taulukoita, jotka perustuvat kolmeen tai useampaan kategoriseen muuttujaan. Käytä tällöin ftable( ) -funktiota tulostamaan tulokset houkuttelevammin.
# 3-Way Frequency Table
mytable <- table(A, B, C)
ftable(mytable)
Table ignores missing values. Jos haluat sisällyttää NA:n luokkana laskentoihin, sisällytä taulukkovaihtoehto exclude=NULL, jos muuttuja on vektori. Jos muuttuja on faktori, sinun on luotava uusi faktori käyttämällä newfactor <- factor(oldfactor, exclude=NULL).
xtabs
Funktiolla xtabs( ) voit luoda ristiintaulukointeja käyttäen kaavatyylistä syötettä.
# 3-Way Frequency Table
mytable <- xtabs(~A+B+c, data=mydata)
ftable(mytable) # print table
summary(mytable) # chi-square test of indepedence
Jos muuttuja sisältyy kaavan vasemmalle puolelle, sen oletetaan olevan frekvenssivektori (hyödyllinen, jos tiedot on jo taulukoitu).
Crosstable
Gmodels-paketin CrossTable( ) -funktio tuottaa SAS:n PROC FREQ:n tai SPSS:n CROSSTABS:n mallin mukaisia ristiintaulukoita. Siinä on runsaasti vaihtoehtoja.
# 2-Way Cross Tabulation
library(gmodels)
CrossTable(mydata$myrowvar, mydata$mycolvar)
Tässä on vaihtoehtoja prosenttilukujen raportointiin (rivi, sarake, solu), desimaalien määrittelyyn, Khiin neliö-, Fisher- ja McNemar-riippumattomuustestien tuottamiseen, odotusarvojen ja residuaaliarvojen raportoimiseen (Pearson, vakioitu, oikaistu vakioitu), puuttuvien arvojen sisällyttämiseen kelvollisiksi, rivin ja sarakkeen otsikoinnilla varustettujen merkintöjen tekemiseen ja tulosteen muotoilemiseen SAS:n tai SPSS:n tyyliin!
Katso help(CrossTable) lisätietoja.
Iriippumattomuustestit
Chi-Neliö-testi
Kaksisuuntaisissa taulukoissa voit käyttää chisq.test(mytable) -ohjelmaa testataksesi rivi- ja sarakemuuttujien riippumattomuutta. Oletusarvoisesti p-arvo lasketaan testistatistiikan asymptoottisesta khiin neliöjakaumasta. Valinnaisesti p-arvo voidaan johtaa Monte Carlo -simuloinnin avulla.
Fisherin eksakti testi
fisher.test(x) tarjoaa tarkan riippumattomuustestin. x on kaksiulotteinen kontingenssitaulukko matriisimuodossa.
Mantel-Haenszel-testi
Käytä funktiota mantelhaen.test(x) suorittaaksesi Cochran-Mantel-Haenszel chi-neliötestin nollahypoteesille, jonka mukaan kaksi nominaalista muuttujaa ovat ehdollisesti riippumattomia kussakin ositteessa, olettaen, että kolmiulotteista vuorovaikutusta ei ole. x on kolmiulotteinen kontingenssitaulukko, jossa viimeinen ulottuvuus viittaa ositteisiin.
Loglineaariset mallit
Log-lineaaristen mallien tuottamiseen voi käyttää MASS-paketin funktiota loglm( ). Oletetaan esimerkiksi, että meillä on 3-suuntainen kontingenssitaulukko, joka perustuu muuttujiin A, B ja C.
library(MASS)
mytable <- xtabs(~A+B+C, data=mydata)
Voidaan suorittaa seuraavat testit:
Mutual Independence: A, B ja C ovat pareittain riippumattomia. loglm(~A+B+C, mytable)
Osittainen riippumattomuus: A on osittain riippumaton B:stä ja C:stä (ts. A on riippumaton yhdistelmämuuttujasta BC). loglin(~A+B+C+B*C, mytable)
Ehdollinen riippumattomuus: A on riippumaton B:stä, kun C on annettu. loglm(~A+B+C+A*C+B*C, mytable)
Ei kolmisuuntaista vuorovaikutusta loglm(~A+B+C+A*B+A*C+B*C, mytable)
Martin Theus ja Stephan Lauer ovat kirjoittaneet erinomaisen artikkelin Loglineaaristen mallien visualisoinnista mosaiikkikuvioiden avulla.
Asosiaatiomittarit
Vcd-paketin assocstats(mytable)-funktio laskee rxc-taulukon phi-kertoimen, kontingenssikertoimen ja Cramerin V:n. Vcd-paketin funktio kappa(mytable) laskee Cohenin kappan ja painotetun kappan sekoitusmatriisille. Richard Darlingtonin artikkelissa Measures of Association in Crosstab Tables on erinomainen katsaus näihin tilastoihin.
Tulosten visualisointi
Käytä pylväs- ja piirakkadiagrammeja frekvenssien visualisointiin yhdessä ulottuvuudessa.
Käytä vcd-pakettia kategoristen tietojen välisten suhteiden visualisointiin (esim. mosaiikki- ja assosiaatioplotit).
Käytä ca-pakettia vastaavuusanalyysiin (kontingenssitaulukoiden rivien ja sarakkeiden välisten suhteiden visuaalinen tutkiminen).
Kokeile DataCampin datan visualisointikurssia harjoitellaksesi näiden kaavioiden tekemistä.
Frekvenssitaulukoiden muuntaminen ”alkuperäiseksi” tasotiedostoksi
Viime lopuksi saattaa olla tilanteita, joissa tarvitset alkuperäisen ”tasotiedoston” tietoruudun frekvenssitaulukon sijaan. Marc Schwartz on toimittanut Rhelp-postituslistalla koodia, jolla taulukko voidaan muuntaa takaisin datakehykseksi.
Leave a Reply