7. Ályktanir um flokkabreytur

Ályktanir um hlutföll og tengslatöflur eru geysimikið notaðar í almennri tölfræðiúrvinnslu. Slík tilgátupróf er afar auðvelt að framkvæma í R enda má nálgast allar helstu upplýsingar um tilgátuprófin sem og öryggisbil fyrir metlana í einni skipun. Við byrjum á því að fjalla um ályktanir um eitt hlutfall í kafla 7.1. Í kafla 7.2 fjöllum við um ályktanir um tvö eða fleiri hlutföll sem byggja á normalnálgun og að lokum fjöllum við um tengslatöflur í kafla 7.3.

Stuðst verður við skipanirnar binom.test(), prop.test(), chisq.test() og fisher.test().

7.1. Ályktanir um eitt hlutfall

7.1.1. Ályktanir um eitt hlutfall

Við notum aðferðina binom.test() til að kanna tilgátur og smíða öryggisbil fyrir hlutfall þýðis. Skipunin er mötuð á fjölda útkoma af hvorri gerð sem fá má með skipuninni table() sem var sýnd í kassa 4.2.1.1. Hér er dæmi þar sem aðferðin er notuð til að kanna hvort hlutfall þeirra sem eru hrifinn af hundum og þeirra sem eru hrifinn af köttum sé jafnt í nemendahópnum sem konnun gögnin byggja á.

7.1.1.1. binom.test()

Athugið

Inntak: tafla - úttak úr table

Úttak: gildi á prófstærð, p-gildi, öryggisbil ofl.

Helstu stillingar: conf.level, p

Forkröfur prófs: Engar


Byrjum á því að nota prop.table() skipunina, (kassa 4.2.1.2) til að sjá hvert uppáhalds dýr fólks er:

prop.table(table(konnun$dyr))
##
##     Hunda     Ketti
## 0.6318408 0.3681592

Tilgátuprófið, öryggisbilið og prófstærðin fást öll í einu með einni skipun:

binom.test(table(konnun$dyr))
##
##  Exact binomial test
##
## data:  table(konnun$dyr)
## number of successes = 127, number of trials = 201, p-value = 0.0002267
## alternative hypothesis: true probability of success is not equal to 0.5
## 95 percent confidence interval:
##  0.5611205 0.6986092
## sample estimates:
## probability of success
##              0.6318408

Lesa má geysimiklar upplýsingar úr úttakinu. Fyrst sjáum við að fjöldi heppnaðra tilrauna (sem í þessu tilviki er fjöldi þeirra sem er hrifinn af hundum) er 127, heildarfjöldi nemenda er 201 og p-gildi tilgátuprófsins er \(0.0002267\).

Næst sjáum við hver gagntilgáta tilgátuprófsins er og þar á eftir 95% öryggisbil fyrir hlutfallið, sem reynist \([0.5611205, 0.6986092]\). Að lokum sjáum við sjálft matið á hlutfalli þeirra sem eru hrifinn af hundum í námskeiðinu, \(\hat{p} = 0.6318408\).

7.2. Ályktanir um tvö eða fleiri hlutföll

7.2.1. Ályktanir um tvö eða fleiri hlutföll

Viljum við draga ályktanir um tvö eða fleiri hlutföll getum við ekki lengur notað binom.test() skipunina. Þess í stað notum við skipunina prop.test() sem byggir á normalnálgun. Hún gefur sömu niðurstöðu og algengar aðferðir sem hægt er að reikna í höndunum og eru kenndar í flestum kennslubókum.

7.2.1.1. prop.test()

Athugið

Inntak: tafla - úttak úr table

Úttak: gildi á prófstærð, p-gildi, öryggisbil ofl.

Helstu stillingar: conf.level, p

Forkröfur prófs: Normalnálgun


Skoðum nú hvort hlutfall þeirra sem er hrifið af hundum og þeirra sem er hrifið af köttum sé það sama hjá iOS og Android notendum. Byrjum sem fyrr á því að skoða hvert hlutfallið innan stýrikerfa er með prop.table() (kassi 4.2.1.2).

prop.table(table(konnun$dyr, konnun$styrikerfi_simi), margin=2)
##
##          Android       iOS
##  Hunda 0.5957447 0.6428571
##  Ketti 0.4042553 0.3571429

Tilgátuprófið, öryggisbilið og prófstærðin fást öll í einu með einni skipun:

prop.test(table(konnun$dyr, konnun$styrikerfi_simi))
##
##  2-sample test for equality of proportions with continuity
##  correction
##
## data:  table(konnun$styrikerfi_simi, konnun$dyr)
## X-squared = 0.17091, df = 1, p-value = 0.6793
## alternative hypothesis: two.sided
## 95 percent confidence interval:
##  -0.2204061  0.1261812
## sample estimates:
##    prop 1    prop 2
## 0.5957447 0.6428571

Fyrst sjáum við að prófstærðin er 0.17091, sem fylgir kí-kvaðrat prófi með 1 frígráðu og p-gildi tilgátuprófsins er 0.6793.

Næst sjáum við hver gagntilgáta tilgátuprófsins er og þar á eftir 95% öryggisbil fyrir mismun hlutfallanna, sem reyndist \([-0.2204061, 0.1261812]\).

Að lokum sjáum við sjálf mötin á hlutfalli þeirra sem eru hrifinn af hundum eftir stýrikerfi, 0.5957447 hjá Android notendum og 0.6428571 hjá iOS notendum.

Einnig er hægt að nota skipunina prop.test() til að bera saman hlutföll fleiri en tveggja hópa. Þá þarf að gæta þess að tengslataflan snúi rétt, þ.e.a.s. að hún hafi eingöngu tvo dálka en ekki fleiri. Í því felst að flokkabreytan með fleiri en tvo flokka sé tilgreind á undan þeirri sem hefur eingöngu tvo flokka:

prop.test(table(konnun$is, konnun$dyr))
##
##  3-sample test for equality of proportions without continuity
##  correction
##
## data:  table(konnun$is, konnun$dyr)
## X-squared = 1.0863, df = 2, p-value = 0.5809
## alternative hypothesis: two.sided
## sample estimates:
##    prop 1    prop 2    prop 3
## 0.5897436 0.6703297 0.6056338

Sé þessu snúið öfugt fæst villa og ekki er hægt að meta tilgátuprófið:

prop.test(table(konnun$dyr, konnun$is))
## Error in prop.test(table(konnun$dyr, konnun$is)) : 'x' must have 2 columns

7.3. Ályktanir um tengslatöflur

7.3.1. Ályktanir um tengslatöflur

Viljum við kanna hvort samband sé á milli tveggja flokkabreyta er notuð chisq.test() aðferðin. Þá skipun er einni hægt að nota til að bera saman hlutföll tveggja eða fleiri þýða en hún gefur að vísu ekki öryggisbil eins og prop.test() skipunin.

7.3.1.1. chisq.test()

Athugið

Inntak: tafla - úttak úr table

Úttak: gildi á prófstærð, p-gildi, ofl.

Helstu stillingar: conf.level, simulate.p.value

Forkröfur prófs: Normalnálgun, allar töflur í væntitöflu >5


Könnum nú hvort samband sé á milli hvaða ís nemendur velja og hvort þau hafi kosið. Við byrjum á að búa til töflu mældrar tíðni:

chisq.test(table(konnun$is,konnun$kosid))
##
##  Pearson's Chi-squared test
##
## data:  table(konnun$is, konnun$kosid)
## X-squared = 0.41817, df = 2, p-value = 0.8113

Hér sést að prófstærðin er 0.41817, sem fylgir kí-kvaðrat prófi með 2 frígráðum og p-gildi tilgátuprófsins er 0.8113.

Munið að til þess að geta notað kí-kvaðrat prófið þurfa allar tölurnar í væntitíðnitöflunni að vera stærri en 5. Við getum fengið væntitíðnitöflu út úr R með að vista það sem chisq.test() aðferðin skilar sem hlut (hann má heita hvað sem er) og draga svo expected hlutann fram:

kikv1<-chisq.test(table(puls$namskeid,puls$likamsraektf))
kikv1$expected
##
##                 Rangt     Rétt
##   Jarðaberja 11.05970 27.94030
##   Súkkulaði  25.80597 65.19403
##   Vanilla    20.13433 50.86567

Ef einhverjar tölur eru minni en fimm í væntitíðnitöflunni varar R okkur við. Sjáum til dæmis hvað gerist ef við viljum skoða samband þess að vera vera hrifinn af hundum eða köttum og hvert nemendur vilja helst fara á stefnumót:

chisq.test(table(konnun$dyr,konnun$stefnumot))
##
##  Pearson's Chi-squared test
##
## data:  table(dkonnunat$dyr, konnun$stefnumot)
## X-squared = 6.8392, df = 3, p-value = 0.0772
##
## Warning message:
## In chisq.test(table(konnun$dyr, konnun$stefnumot)) :
##   Chi-squared approximation may be incorrect

Þá getum við annað hvort reiknað prófstærðina með endurvalsaðferðum, sem er tilgreint með stillingunni simulate.p.value:

chisq.test(table(konnun$dyr,konnun$stefnumot), simulate.p.value=T)
##
##  Pearson's Chi-squared test with simulated p-value (based on 2000
##  replicates)
##
## data:  table(konnun$dyr, konnun$stefnumot)
## X-squared = 6.8392, df = NA, p-value = 0.07146

eða þá framkvæmt annað tilgátupróf sem kallast Fisher próf. Það er gert með skipuninni fisher.test():

fisher.test(table(konnun$dyr, konnun$stefnumot))
##
##  Fisher's Exact Test for Count Data
##
## data:  table(konnun$dyr, konnun$stefnumot)
## p-value = 0.07907
## alternative hypothesis: two.sided

7.3.1.2. fisher.test()

Athugið

Inntak: tafla - úttak úr table

Úttak: gildi á prófstærð, p-gildi, öryggisbil ofl.

Helstu stillingar: conf.level, p

Forkröfur prófs: Engar


7.4. Leiksvæði fyrir R kóða

Hér fyrir neðan er hægt að skrifa R kóða og keyra hann. Notið þetta svæði til að prófa ykkur áfram með skipanir kaflans. Athugið að við höfum þegar sett inn skipun til að lesa inn puls gögnin sem eru notuð gegnum alla bókina.

# Gogn sott og sett i breytuna puls. puls <- read.table ("https://raw.githubusercontent.com/edbook/haskoli-islands/main/pulsAll.csv", header=TRUE, sep=";") # Setjid ykkar eigin koda her fyrir nedan: # Sem daemi, skipunin head(puls) skilar fyrstu nokkrar radirnar i gognunum # asamt dalkarheitum. head(puls)