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 kynjahlutfallið sé jafnt í nemendahópnum sem púlsgö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
Byrjum á því að nota prop.table()
skipunina, (kassa
4.2.1.2) til að sjá hvert kynjahlutfallið er:
prop.table(table(puls$kyn))
##
## kvk kk
## 0.6518047 0.3481953
Tilgátuprófið, öryggisbilið, prófstærðin og tilgátuprófið fást öll í einu með einni skipun:
binom.test(table(puls$kyn))
##
## Exact binomial test
##
## data: table(puls$kyn)
## number of successes = 307, number of trials = 471, p-value =
## 4.308e-11
## alternative hypothesis: true probability of success is not equal to 0.5
## 95 percent confidence interval:
## 0.6068703 0.6948191
## sample estimates:
## probability of success
## 0.6518047
Lesa má geysimiklar upplýsingar úr úttakinu. Fyrst sjáum við að fjöldi heppnaðra tilrauna (sem í þessu tilviki er fjöldi kvenna) er 307, heildarfjöldi nemenda er 471 og p-gildi tilgátuprófsins er \(4.3078955\times 10^{-11}\).
Næst sjáum við hver gagntilgáta tilgátuprófsins er og þar á eftir 95% öryggisbil fyrir hlutfallið, sem reyndist \([0.6068703, 0.6948191]\). Að lokum sjáum við sjálft matið á hlutfalli kvenna í námskeiðinu, \(\hat{p} = 0.6518047\).
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
Skoðum nú hvort kynjahlutfallið sé það sama í námskeiðunum LAN203 og
STAE209. Byrjum sem fyrr á því að skoða hvert kynjahlutfallið er með
prop.table()
(kassi 4.2.1.2).
prop.table(table(puls$kyn, puls$namskeid),margin=2)
##
## LAN203 STAE209
## kvk 0.6453488 0.6555184
## kk 0.3546512 0.3444816
Tilgátuprófið, öryggisbilið, prófstærðin og tilgátuprófið fást öll í einu með einni skipun:
prop.test(table(puls$namskeid, puls$kyn))
##
## 2-sample test for equality of proportions with continuity
## correction
##
## data: table(puls$namskeid, puls$kyn)
## X-squared = 0.015035, df = 1, p-value = 0.9024
## alternative hypothesis: two.sided
## 95 percent confidence interval:
## -0.10426340 0.08392429
## sample estimates:
## prop 1 prop 2
## 0.6453488 0.6555184
Fyrst sjáum við að prófstærðin er 0.015035, sem fylgir kí-kvaðrat prófi með 1 frígráðu og p-gildi tilgátuprófsins er 0.9024.
Næst sjáum við hver gagntilgáta tilgátuprófsins er og þar á eftir 95% öryggisbil fyrir mismun hlutfallanna, sem reyndist \([-0.1042634, 0.0839243]\).
Að lokum sjáum við sjálf mötin á hlutfalli kvenna í námskeiðunum tveimur, 0.6453488 og 0.6555184.
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(puls$likamsraektf, puls$kyn))
##
## 3-sample test for equality of proportions without continuity
## correction
##
## data: table(puls$likamsraektf, puls$kyn)
## X-squared = 11.3, df = 2, p-value = 0.003518
## alternative hypothesis: two.sided
## sample estimates:
## prop 1 prop 2 prop 3
## 0.6117647 0.7382199 0.5789474
Sé þessu snúið öfugt fæst villa og ekki er hægt að meta tilgátuprófið:
prop.test(table(puls$kyn, puls$likamsraektf))
## Error in prop.test(table(puls$kyn, puls$likamsraektf)): ’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
Könnum nú hvort samband sé á milli námskeiðs og líkamsræktarástundunar. Við byrjum á að búa til töflu mældrar tíðni:
chisq.test(table(puls$namskeid,puls$likamsraektf))
##
## Pearson's Chi-squared test
##
## data: table(puls$namskeid, puls$likamsraektf)
## X-squared = 4.1576, df = 2, p-value = 0.1251
Hér sést að prófstærðin er 4.1576, sem fylgir kí-kvaðrat prófi með 2 frígráður og p-gildi tilgátuprófsins er 0.1251.
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
##
## Lítil Miðlungs Mikil
## LAN203 31.19099 70.08798 69.72103
## STAE209 53.80901 120.91202 120.27897
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 reykinga og hreyfingar fyrir eingöngu þá nemendur sem sátu námskeiðið árið 2013:
puls2013 <- filter(puls, ar==2013)
chisq.test(table(puls2013$reykir,puls2013$likamsraektf))
## Warning in chisq.test(table(puls2013$reykir, puls2013$likamsraektf)):
## Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: table(puls2013$reykir, puls2013$likamsraektf)
## X-squared = 11.247, df = 2, p-value = 0.003612
Þá getum við annað hvort reiknað prófstærðina með endurvalsaðferðum, sem
er tilgreint með stillingunni simulate.p.value
:
chisq.test(table(puls2013$reykir,puls2013$likamsraektf), simulate.p.value=TRUE)
##
## Pearson's Chi-squared test with simulated p-value (based on 2000
## replicates)
##
## data: table(puls2013$reykir, puls2013$likamsraektf)
## X-squared = 11.247, df = NA, p-value = 0.002999
eða þá framkvæmt annað tilgátupróf sem kallast Fisher próf. Það er gert
með skipuninni fisher.test()
:
fisher.test(table(puls2013$reykir,puls2013$likamsraektf))
##
## Fisher's Exact Test for Count Data
##
## data: table(puls2013$reykir, puls2013$likamsraektf)
## p-value = 0.001259
## 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
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)