Tänased teemad:
Kasutame juba tuttavaid andmestikke:
load("data/kysimustik_2024.RData")
load("data/yllatuskysimused_koneleja_keskmised.Rda")
kandidaadid <- read.delim("data/kandidaadid_2023.csv")
Pane tähele, et andmestik kysimustik on R-i andmefail, mille
lugemiseks käsk load()
. Kandidaatide andmestik on
tabuleeritud tekstifail. Kuigi failinimel on laiend .csv, mis viitaks
juskui komadega eraldatud väljadele ja selle lugemiseks sobiks käsk
read.csv()
, on tegelikult failis väljaeraldajaks
tabulatsioonimärk, mistõttu tabeli R-i lugemiseks sobib kõige paremini
käsk read.delim()
. Kui oled Windowsi masinas, siis võivad
täpitähed olla valesti loetud, selle vastu aitab, kui lisad käsule veel
argumendi encoding = "UTF-8"
.
Parameetrilisteks testideks nimetatakse statistilisi teste, mis eeldavad, et uuritavad andmed on mingi kindla jaotusega.
Näiteks normaaljaotus on parameetriline jaotus, kuna selle puhul piisab paari parameetri (keskväärtuse ja standardhälbe) hindamisest, et määrata võrdlemisi täpselt kogu populatsiooni. Teades neid paari parameetrit, võib vastata mistahes küsimusele tunnuse jaotuse kohta.
Kahe grupi keskmiste võrdlemiseks sobib nt t-test, aga seda
teatud tingimustel.
T-test sobib siis, kui:
Mida tähendab ‘sõltumatud mõõtmised’?
Mõõtmised ei ole rühma sees sõltumatud, kui…
Kordusmõõtmistega test:
Mida teha, kui mõõtmised ei ole sõltumatud?
Lihtsam ja klassikalisem variant on arvutada iga indiviidi kohta vaadeldavate kategooriate keskmine väärtus. Alternatiiv oleks kasutada sellist testi, mis ei eelda sõltumatuid mõõtmisi, nt segamudelit (neist 13. praktikumis).
Alati tasuks vaadata andmete jaotust. Kindlasti ei ole mõtet teha
t-testi, kui jaotus on ühtlane. Jaotuse kontrollimiseks võiks kasutada
nii visualiseerimist kui normaaljaotuse testi (hist
,
qqnorm
+qqline
, shapiro.test
).
Kui ei ole normaaljaotus, võiks proovida normaliseerimist.
log
). Kui
mõõtmiste hulgas on väärtust 0, siis käsk log1p
, mis lisab
kõigile väärtustele +1. (Negatiivseid väärtuseid logaritmida ei saa, nii
et kui neid on, siis enne logaritmimist tasuks reskaleerida andmed
miinimumväärtuse suhtes.)exp()
).Kui andmed ei allu normaliseerimisele, siis kui on >30 mõõtmist, võib ikkagi t-testi teha, kui on vähem, siis peaks mitteparameetrilise testi valima.
Ühe valimiga testi teeme siis, kui teame mingit populatsiooni parameetrit (t-testi puhul aritmeetilist keskmist) ja tahame teada, kas meie valim kuulub selle parameetriga iseloomustatavasse populatsiooni. Siia sobiks eelmise praktikumi mahlapakinäide, kus küsime, kas liitristes mahlapakkides (valim) on ka tegelikult lubatud liiter mahla (poplulatsioon).
Proovime hüpoteetilise näite peal. Näiteks oletame, et me teame, et mingis vanuses on koolilaste pikkus keskmiselt poolteist meetrit ja siis on meil üks klassitäis lapsi ja tahame kontrollida, kas nad pikkuse poolest sobituvad sellesse vanuserühma:
# 32 last keskmise pikkusega 1.5 meetrit
# ja standardhälbega 0.1 meetrit.
set.seed(43)
pikkus <- rnorm(32, 1.5, 0.1)
Kuna see on juhuslikult genereeritud arvujada, siis siin on keskmine = 1.4943377 ja standardhälve = 0.0999207 ehk enam-vähem midagi soovitud 1.5 ja 0.1 kanti.
# mu tähistab parameetrit, mille osas
# valimit testime. Antud juhul on see
# pikkuse aritmeetiline keskmine 1.5 meetrit.
t.test(pikkus, mu = 1.5)
##
## One Sample t-test
##
## data: pikkus
## t = -0.32056, df = 31, p-value = 0.7507
## alternative hypothesis: true mean is not equal to 1.5
## 95 percent confidence interval:
## 1.458312 1.530363
## sample estimates:
## mean of x
## 1.494338
Testist saame sisuka/alternatiivse hüpoteesi kohta lugeda, et alternative hypothesis: true mean is not equal to 1.5 (keskmine ei võrdu 1.5-ga), mis tähendab omakorda, et nullhüpotees on, et selle populatsioon keskmine pikkus, kust meie valim pärit on, on (enam-vähem) võrdne 1.5 meetriga. Kuna p-väärtus on kõvasti suurem kui 0.05, siis peame jääma nullhüpoteesi juurde ning saame kinnitust, et jah, meie klassi 32 last kuuluvad sellesse populatsiooni, kelle keskmine pikkus on 1.5 meetrit.
Alternatiivne hüpotees võib olla sõnastatud üldiselt, et üks rühm on teisest erinev. Seda nimetatakse kahe sabaga (two-tailed) testiks. Aga alternatiivne hüpotees võib olla ka suunatud, st et ühe rühma väärtus on kõrgem kui teisel. Seda nimetatakse ühe sabaga (one-tailed) testiks. Seda on oluline arvestada, sest sellest sõltub, kui palju meil on eksimisvabadust. Üldjuhul peaks tegema kahepoolse hüpoteesiga testi ja ühepoolse testi kasuks otsustama ainult juhul, kui alternatiivne hüpotees saab ainult ühepoolsena kehtida. Ühepoolne test on omal kohal siis, kui alternatiivne hüpotees on kindla suunaga ja vastupidise suuna saab näiteks teooria põhjal välistada.
alternative = c("two.sided", "less", "greater")
.Näiteks me teame, et lasteaias neid samu lapsi mõõdeti ja siis nende keskmine pikkus oli 1.3 meetrit ja me taham teada, kas nad on oluliselt kasvanud. Me teame, et lühemaks jääda nad ei saa, seega võime teha ühe sabaga testi ja küsida, kas mõõdetud laste pikkus on oluliselt pikem kui 1.25 (see on siis H1):
##
## One Sample t-test
##
## data: pikkus
## t = 11.002, df = 31, p-value = 1.561e-12
## alternative hypothesis: true mean is greater than 1.3
## 95 percent confidence interval:
## 1.464389 Inf
## sample estimates:
## mean of x
## 1.494338
Üldjuhul kasutamegi t-testi juhul, kui meil on kaks valimit (ehk rühma), mida soovime võrrelda. Vaatame, kas info- ja üllatusküsimused erinevad keskmise põhitooni kõrguse poolest?
Kui meil on üks seletav tunnus, millel on kaks taset, ja tahame teha t-testi, et võrrelda, kas kahe grupi keskmised erinevad, peame vaatama, kuidas andmed on korrastatud.
t.test(x, y)
t.test(y~x)
Enne t-testi tegemist peaks veenduma, et andmed on ka normaaljaotusega. Põhitooni kõrgust mõõdetakse hertsides ja see skaala on inimtaju jaoks logaritmiline, mistõttu on üsna suur tõenäosus, et hertsides mõõdetud väärtused on paremale kaldu. Andmestikus on ka normaliseeritud pooltooni skaalale teisendatud väärtused. Andmete pooltooniskaalale teisendamise käigus on normaliseeritud kõnelejatevahelisi erinevusi nii, et iga kõneleja väärtused on pooltoonideks arvutatud tema keskmise põhitooni suhtes.
## tyyp1 f0_kesk_Hz f0_kesk_sem
## 1 ISQ 259.7226 0.3390595
## 2 ISQ 268.7470 0.9315931
## 3 SQ 244.3781 -0.7124660
## 4 SQ 244.8683 -0.6790503
## 5 ISQ 220.4443 0.4168570
## 6 ISQ 211.3823 -0.3045951
Testime normaaljaotust, kui väärtused on hertsides:
##
## Shapiro-Wilk normality test
##
## data: (ylla$f0_kesk_Hz)
## W = 0.93017, p-value = 0.0002068
Hertsi väärtused tõesti ei ole normaaljaotusega. Proovime pooltoonides:
##
## Shapiro-Wilk normality test
##
## data: (ylla$f0_kesk_sem)
## W = 0.98723, p-value = 0.5796
## $ISQ
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.97096, p-value = 0.3555
##
##
## $SQ
##
## Shapiro-Wilk normality test
##
## data: X[[i]]
## W = 0.96626, p-value = 0.246
Kuigi meil võib olla seda küsimust esitades näiteks varasemast uuringust lähtuv teadmine, et üllatusküsimuste keskmine põhitoon võiks olla madalam kui infoküsimuste oma, siis päriselt ei saa ka välistada, et erinevus võiks olla teist pidi. Seepärast teeme kahepoolse testi.
##
## Welch Two Sample t-test
##
## data: ylla$f0_kesk_sem by ylla$tyyp1
## t = 6.9766, df = 81.949, p-value = 7.141e-10
## alternative hypothesis: true difference in means between group ISQ and group SQ is not equal to 0
## 95 percent confidence interval:
## 0.6458302 1.1610558
## sample estimates:
## mean in group ISQ mean in group SQ
## 0.4094849 -0.4939582
Kuna p-väärtus on < 0.05, siis võime hüljata nullhüpoteesi ja võtta vastu H1, mille kohaselt naised ja mehed said valimistel erineva hulga hääli.
T-statistiku väärtus üksinda ei ütle meile eriti midagi, sest see ei ole samades ühikutes kui uuritav tunnus. Nullhüpoteesi kehtivuse korral (kui kahe grupi keskmised on täpselt võrdsed) on t-statistiku väärtus 0. Selle, kui kaugele t väärtus võib 0-st kummaski suunas minna, määrab vabadusastmete arv (df) ja olulisusnivoo (⍺). Kui nt statistiku suurus on 6.977 ja p-väärtus 7.1406148^{-10}, siis tõenäosus, et saame sellise statistiku väärtuse nii suure valimiga, on 0.0000001%, eeldusel, et kehtib nullhüpotees ja gruppide vahel pole mingit erinevust.
Kahepoolne test ei testi otseselt, kas ühe või teise grupi keskmine on teisest oluliselt suurem/väiksem, ent seda, mille alusel test erinevuse leiab, näeb väljundi lõpust, kus on antud kahe grupi keskmised: keskmised põhitooni kõrgused info- ja üllatusküsimustel. Kontrollime:
## [1] 0.4094849
## [1] -0.4939582
95 percent confidence interval väljundis näitab, et 95-s juhuslikus valimis 100-st jääks nende kahe grupi keskmiste vahe ehk 0.903443 näidatud vahemikku 0.6458302 ja 1.1610558 vahele. Kui kahe grupi keskmised üksteisest oluliselt ei erineks, siis jääks usaldusvahemikku ka väärtus 0 (nulli saab ju siis, kui lahutada ühest keskmisest teine keskmine, mis on sama suur kui esimene).
Vaikimisi teeb R sellise t-testi, mis eeldab, et kahe grupi hajuvus ei ole võrdne ehk dispersioonid ei ole võrdsed (Welch Two Sample t-test), mis on tihtipeale tõsi. Dispersioon mäletatavasti on standardhälbe ruut, see näitab seda, kui suur on keskmiselt rühmasisene varieerumine.
## [1] 0.3434046
## [1] 0.3609112
Dispersioonide erinevust saab kontrollida F-testiga (R-is
var.test()
), kus F-statistik on kahe grupi dispersioonide
jagatis.
##
## F test to compare two variances
##
## data: ylla$f0_kesk_sem by ylla$tyyp1
## F = 0.95149, num df = 41, denom df = 41, p-value = 0.8743
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.5114503 1.7701426
## sample estimates:
## ratio of variances
## 0.9514935
Kui F-statistiku väärtus on 1, siis on dispersioonid võrdsed. Mida rohkem F-statistik ühest erineb, seda erinevamad on kahe grupi dispersioonid. Juhul, kui esimese grupi dispersioon on väiksem kui teise grupi oma, siis jääb väärtus 0 ja 1 vahele (mida lähemale 0-le, seda erinevamad dispersioonid teineteisest on). Kui esimese grupi dispersioon on suurem kui teise grupi oma, siis jääb väärtus 1 ja lõpmatuse vahele. Teisisõnu: F = 0.5 ja F = 1.5 ei näita ühesuurust erinevust gruppide dispersioonides.
Kui p > 0.05, siis jääb kehtima nullhüpotees, et kahe dispersiooni suhe/jagatis on 1. Kui p < 0.05, siis peab vastu võtma alternatiivse hüpoteesi, mille kohaselt dispersioonid ei ole võrdsed (ja peaks tegema Welchi t-testi).
Dispersiooni peaks kontrollima sama andmestikuga, millega t-testi teeme, st kui jaotuse normaliseerimiseks on andmed logaritminud, siis peaks ka dispersiooni testi sisendis logaritmima, muidu ei ole logaritmimist siin ka vaja.
Kuna F-test näitaks, et gruppide dispersioon on sarnane (p
> 0.05), siis saab teha võrdsete dispersioonidega t-testi
(var.equal = TRUE
).
##
## Two Sample t-test
##
## data: ylla$f0_kesk_sem by ylla$tyyp1
## t = 6.9766, df = 82, p-value = 7.123e-10
## alternative hypothesis: true difference in means between group ISQ and group SQ is not equal to 0
## 95 percent confidence interval:
## 0.6458326 1.1610534
## sample estimates:
## mean in group ISQ mean in group SQ
## 0.4094849 -0.4939582
Artikli tekstis tuleks lisaks p-väärtusele kirja panna ka statistiku t väärtus ja vabadusastmete arv. Näiteks APA stiilis võiks see välja näha nii: “T-test näitas, et rühmad on erinevad: t (82) = 6.977; p = 0.”
Tihtipeale on ka kombeks p-väärtust näidata kategooriates suurem kui 0.05 (mitteoluline), väiksem kui 0.05, 0.01 või 0.001. Üldiselt üle kolme komakoha ei ole kombeks esitada.
On olemas ka pakette, mis testi tulemust sõnastada aitavad, näiteks:
## Effect sizes were labelled following Cohen's (1988) recommendations.
##
## The Two Sample t-test testing the difference of ylla$f0_kesk_sem by ylla$tyyp1
## (mean in group ISQ = 0.41, mean in group SQ = -0.49) suggests that the effect
## is positive, statistically significant, and large (difference = 0.90, 95% CI
## [0.65, 1.16], t(82) = 6.98, p < .001; Cohen's d = 1.54, 95% CI [1.04, 2.03])
Proovime t-testi tegemise läbi veel ühe näite peal. Vaatame, kas 2023. aasta valimiste tulemustes oli meeste ja naiste häälesaak erinev.
Andmestikus kandidaadid_2023.csv
on 2023 märtsis
toimunud riigikogu valimiste tulemused.
# Käsuga table() saad vaadata sugude sagedust
# Käsuga tapply(arvuline_tunnus, rühmitav_tunnus, FUN) saad vaadata keskmist häältesaaki sooti
Kas lisaks sellele, et mehi oli kandidaatide hulgas rohkem, anti neile ka rohkem hääli? Kas me võime selle kontrollimiseks kasutada t-testi? Kas t-testi eeldused on täidetud?
Sõnasta hüpoteesid. Kas ühe- või kahepoolne hüpotees?
Kas dispersioonid on võrdsed?
Tee t-test. Kas Student või Welch? Kas ühe- või kahepoolne?
Mis järelduse teeme?
Valimit iseloomustavad karakteristikud (nt keskmine, mediaan, keskmiste erinevus vmt) ei pruugi kehtida ka populatsiooni ehk üldkogumi kohta.
Sellepärast on parem üldkogumit kirjeldada mingi vahemiku kaudu, millesse valimi karakteristik mingi tõenäosusega paigutub. Seda vahemikku nimetatakse usaldusvahemikuks.
Usaldusvahemiku arvutamine sõltub konkreetsest statistikust, nt 2 grupi keskmiste erinevuse hindamise puhul t-testis sõltub selle erinevuse usaldusvahemik meie valimi mahust, andmete varieeruvusest ja usaldusnivoost, mis määrab ära tõenäosuse, millega mingi parameeter teatud vahemikus paikneb. Usaldusnivoo on 1-olulisusnivoo ehk 1-α (α on tavaliselt 0.05).
Nt 95% usaldusnivoo puhul jääks populatsiooni parameeter testi erinevate valimitega korrates 95-protsendilise tõenäosusega meie saadud usaldusvahemikku. Teisisõnu: 100st ühesuurusest valimist 95 puhul saame statistiku väärtuse, mis jääb meie valimi usaldusvahemikku. Kui usaldusvahemik sisaldab väärtust 0 ja testi nullhüpotees on, et mingi parameeter võrdub 0-ga, siis on ka p-väärtus suur ja nullhüpotees (“seosed on juhuslikud”) jääb kehtima.
Vaatame uuesti testide väljundeid ning seekord pöörame tähelepanu usaldusvahemikule.
##
## F test to compare two variances
##
## data: ylla$f0_kesk_sem by ylla$tyyp1
## F = 0.95149, num df = 41, denom df = 41, p-value = 0.8743
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.5114503 1.7701426
## sample estimates:
## ratio of variances
## 0.9514935
F-testi alternatiivne hüpotees on, et kahe grupi dispersioonide erinevus ei ole võrdne 1-ga, ja nullhüpotees seega, et kahe grupi dispersioonide erinevus on võrdne 1-ga. Seega peab nullhüpoteesi juurde jääma juhul, kui usaldusvahemik sisaldab väärtust 1. Antud juhul vastab see tõele: 95 valimis 100-st on F-statistik ehk kahe grupi dispersioonide jagatis 0.51 ja 1.77 vahel, hõlmates ka varianti F = 1, mispuhul dispersioonid on võrdsed. Seda, et usaldusvahemikku jääb väärtus, mille suhtes testi tehakse, näitab ka see, et testi p-väärtus on suur.
##
## Two Sample t-test
##
## data: ylla$f0_kesk_sem by ylla$tyyp1
## t = 6.9766, df = 82, p-value = 7.123e-10
## alternative hypothesis: true difference in means between group ISQ and group SQ is not equal to 0
## 95 percent confidence interval:
## 0.6458326 1.1610534
## sample estimates:
## mean in group ISQ mean in group SQ
## 0.4094849 -0.4939582
T-testi alternatiivne hüpotees on, et kahe grupi keskmiste erinevus ei ole võrdne 0-ga, ja nullhüpotees seega, et kahe grupi keskmiste erinevus on võrdne 0-ga. Seega peab nullhüpoteesi juurde jääma juhul, kui usaldusvahemik sisaldab väärtust 0. Siin see paika ei pea: usaldusvahemik jääb 0.65 ja 1.16 vahele ega jäta võimalust, et 95-l juhul 100-st võiks keskmiste erinevus olla ka 0 (erinevust ei oleks). Seega on ka p-väärtus väike ning nullhüpoteesi seose juhuslikkusest peab hülgama.
Vaatame t-testi usaldusvahemikku valimisandmestikus, kus meeste ja naiste häälesaak ei erinenud oluliselt:
##
## Two Sample t-test
##
## data: log(hääli_kokku) by sugu
## t = -0.16399, df = 966, p-value = 0.8698
## alternative hypothesis: true difference in means between group M and group N is not equal to 0
## 95 percent confidence interval:
## -0.1996253 0.1688355
## sample estimates:
## mean in group M mean in group N
## 5.450354 5.465749
Siin jääb usaldusvahemik -0.2 ja 0.17 vahele, seega on võimalus, et t = 0 ja peame jääma nullhüpoteesi juurde.
Statistiline olulisus (significance) näitab
tõenäosust, et seos või efekt, mille me avastasime, on saadud
juhuslikult ja kehtib nullhüpotees. Nt p = 0.05 näitab, et
tõenäosus, et meie leitud seos on juhuslik ja tegelikkuses seost ei
eksisteeri, on 5%.
Kuna seost või efekti peegeldab arvuliselt mingi teststatistik, näitab
p-väärtus teisisõnu tõenäosust, et saaksime sellise statistiku
väärtuse vaid juhuse läbi.
Mõju suurus (effect size) näitab, kui suur on ühe teguri mõju teisele.
Statistiline olulisus sõltub mõju suurusest ja valimi suurusest.
p < 0.05 ei tähenda tingimata, et meie leitud seos on ka sisuliselt tähtis. p > 0.05 omakorda ei tähenda, et teguril ei ole tegelikkuses mingit mõju.
Väike mõju suurel arvul isenditel võib olla statistiliselt oluline. Suur mõju väiksel arvul isenditel ei pruugi olla statistiliselt oluline.
T-test ütleb ainult seda, kui tõenäone on, et kahe rühma vahelised erinevused on juhuslikud. Seega, kui t-testi tulemus soovitab hüljata 0-hüpoteesi, saame me küll öelda, et rühmad on üksteisest oluliselt erinevad, aga mitte seda, kui palju nad erinevad.
Mõju suurust (efect size) saab hinnata näiteks Coheni
d abil. Selle leidmiseks on käsk paketis
effsize
.
##
## Cohen's d
##
## d estimate: 1.522411 (large)
## 95 percent confidence interval:
## lower upper
## 1.029417 2.015406
Juhul kui tegime t-testi logaritmitud väärtusega, peaks ka siin logaritmitud tunnust kasutama.
Kui d väärtus on positiivne, siis on esimese grupi keskmine suurem kui teise grupi oma. Kui negatiivne, on esimese grupi keskmine väiksem kui teise oma. Siin on d positiivne, seega on infoküsimuste (ISQ) keskmine põhitoon keskmiselt suurem kui üllatusküsimuste (SQ) oma. Mõju suurus on suur (large).
Üldiselt räägitakse skaalast, kus
|d| <= 0.2: olematu mõju
0.2 < |d| <= 0.5: väike mõju
0.5 < |d| <= 0.8: keskmine mõju
0.8 < |d|: suur mõju
NB! Pakett effsize
arvutab Coheni d-statistikut
võrdsete dispersioonidega. Kui tahame statistikut olukorras, kus
dispersioonid ei ole võrdsed (teeme Welchi t-testi), peame kasutama mõne
teise paketi funktsioone. Coheni d arvutamiseks sobib näiteks
ka paketi report
funktsioon
report_effectsize()
. Näiteks kui logaritmitud häältesaagi
dispersioon ei oleks meeste ja naiste seas ühtaoline, peaksime tegema
t-testi ilma argumendita var.equal = TRUE
ning mõju suuruse
leidma funktsiooniga
report_effectsize(t.test(f0_kesk_sem ~ tyyp1, data=ylla, var.equal = F))
.
Mitteparameetrilised testid on nt Wilcoxoni astaksummatest (rank sum test), tuntud ka kui Manni-Whitney U-test, ja Wilcoxoni astakmärgitest (signed rank test). Esimene on alternatiiv sõltumatute mõõtmistega t-testile, teine sõltuvate mõõtmistega t-testile.
Eeldused | t-test | U-test |
---|---|---|
Juhuslikud valimid | Jah | Jah |
Sõltumatud vaatlused | Jah | Jah |
Vähemalt …skaalal tunnus | intervall- | järjestus- |
Normaaljaotus (või n>30) | Jah | Ei |
Mõlema grupi hajuvus sarnane |
Jah (Studenti t-test) Ei (Welchi t-test) |
Ei |
Tegeleb… | keskmistega | mediaanidega |
Selles mitteparameetriliste testide peres on kaks sarnast testi,
mõlemad R-is käsuga wilcox.test()
.
Wilcoxon Rank Sum Test (ka Manni-Whitney U-test) |
Wilcoxon Signed Rank Test |
---|---|
astaksummatest | astakmärgitest |
sõltumatud valimid (paired=FALSE )
|
sõltuvad valimid (paired=TRUE )
|
nullhüpotees: tõenäosus, et juhuslikult ühest grupist võetud väärtus on suurem/väiksem kui teisest grupist juhuslikult võetud väärtus, on 0,5. | nullhüpotees: 1. ja 2. mõõtmise erinevused jaotuvad sümmeetriliselt 0 ümber |
Vaatleme nüüd uuesti info- ja üllatusküsimuste lausungi kestust, mille puhul eelmises praktikumis leidsime, et tegu ei ole normaaljaotusega.
qqnorm(log(ylla$kestus))
qqline(log(ylla$kestus))
tapply((ylla$kestus), ylla$tyyp1, shapiro.test)
tapply(log(ylla$kestus), ylla$tyyp1, shapiro.test)
t.test(kestus ~ tyyp1, data=ylla, var.equal = T) # kuna vaatlusi on rohkem kui 30, siis võib ka mitte-normaaljaotuse korral t-testi teha
t.test(log(kestus) ~ tyyp1, data=ylla, var.equal = T) # kuna logaritmimides on jaotus normaalne, siis seda parem
Kuna mitteparameetriline test ei eelda normaaljaotust, pole siin häälte arvu vaja logaritmida.
##
## Wilcoxon rank sum test with continuity correction
##
## data: kestus by tyyp1
## W = 389, p-value = 1.053e-05
## alternative hypothesis: true location shift is not equal to 0
## 95 percent confidence interval:
## -0.19064780 -0.07982092
## sample estimates:
## difference in location
## -0.1353348
Näeme, et alternatiivhüpotees on, et true location shift is not equal to 0. Põhimõtteliselt tähendab see seda, et ühe grupi jaotus oleks teisest x-teljel paremal või vasakul. Ehkki sagedasti tõlgendatakse seda kui kahe valimi mediaanide erinevust, on see rangelt võttes pigem mediaan kahe valimi erinevusest (võivad ka kattuda). Kuna p-väärtus on < 0.05, siis saame selle sisuka hüpoteesi vastu võtta ja tõdeda veel kord, et info- ja üllatusküsimuste keskmine kestus erineb oluliselt.
Parem on selgitada astakute arvutamist sellise andmestiku peal, kus on rohkem korduvaid väärtuseid, näiteks hääletustulemusted. Teeme Wilcoxoni testi 2023. aasta valimistulemuste meeste ja naiste häälesaagiga (mis ka selle testi põhjal ei ole oluliselt erinev):
##
## Wilcoxon rank sum test with continuity correction
##
## data: hääli_kokku by sugu
## W = 103865, p-value = 0.8675
## alternative hypothesis: true location shift is not equal to 0
Statistiku väärtus leitakse järgmiselt.
Kõigepealt järjestatakse kõik uuritava tunnuse väärtused väiksemast
suuremani.
# võtame andmestikust välja ainult kahe tulba andmed.
kysimus1 <- kandidaadid[,c("sugu", "hääli_kokku")]
# järjestame andmed uuritava tunnuse ehk õpitud aastate järgi
kysimus1 <- kysimus1[order(kysimus1$hääli_kokku),]
Seejärel määratakse uuritava tunnuse väärtustele astakud ehk sisuliselt järjekorranumbrid: kõige väiksem väärtus saab astakuks e järjekorranumbriks 1, sellest järgmine 2 jne. Kui mitu väärtust on ühesugused, saavad need kõik ühesugused astakud.
Näiteks siin on kaks kandidaati, kes on saanud mõlemad 11 häält ja nende järjekorranumbrid 8 ja 9 lähevad jagamisele (8+9)/2 = 8.5. Järgmised kaks kandidaat sai vastavalt 12 ja 13 häält, aga sealt edasi on kolm kanadidaati, kes on saanud 14 häält ja kuna nad on järjekorras kohtadel 12 – 14, siis nende numbriks saab (12+13+14)/3 = 13.
# lisame andmetesse uue tulba, kus on
# uuritava tunnuse astakud
kysimus1$astak <- rank(kysimus1$hääli_kokku)
head(kysimus1, 15)
## sugu hääli_kokku astak
## 840 M 1 1.0
## 219 M 3 2.0
## 9 M 5 3.0
## 223 N 6 4.0
## 111 M 7 5.0
## 833 M 8 6.0
## 557 M 10 7.0
## 303 N 11 8.5
## 549 M 11 8.5
## 422 M 12 10.0
## 10 N 13 11.0
## 5 M 14 13.0
## 18 M 14 13.0
## 419 M 14 13.0
## 8 M 15 17.0
## sugu hääli_kokku astak
## 932 M 6130 959
## 727 M 6235 960
## 527 M 6567 961
## 178 M 7393 962
## 407 M 7672 963
## 803 M 8065 964
## 269 M 9154 965
## 69 M 9214 966
## 193 M 14592 967
## 389 N 31816 968
Edasi leitakse nende ridade astakute summa, kus seletava tunnuse lahtris on selle tunnuse (vaikimisi tähestiku) järjekorras esimesena tulev väärtus.
## [1] "M" "N"
## [1] 316091
Kui meeskandidaatide häälesaak on suurem, on need ka järjekorras tagapool, nende astakud kõrgemad ja astakute summa seega suurem
Järgmiseks leiame kõikide meeskandidaatide arvu, korrutame selle läbi sellest arvust ühe võrra suurema arvuga ning jagame tulemuse kahega. Lõpuks lahutame saadud arvu astakute summast.
## M
## 651
## M
## 103865
Mida lähemal on W-statistik 0-le, seda selgem erinevus kahe grupi vahel on. W teoreetilised väärtused ulatuvad 0-st (täielik erinevus gruppide vahel, kõik ühe grupi väärtused järjestatud tabeli ühes otsast ja teise grupi väärtused teises otsas) kuni kummagi kategooria vaatluste arvu korrutiseni (kaht gruppi ei joonistu välja, kategooriate vaatlused paiknevad järjestatud tabelis omavahel kõik läbisegi). Siin oleks W maksimaalne väärtus niisiis mees- ja naiskandidaatide arvu korrutis, 651*317 ehk
## M
## 206367
Mitteparameetrilise testi mõju suuruse hindamiseks saab kasutada
Cliffi delta statistikut paketist effsize
.
##
## Cliff's Delta
##
## delta estimate: -0.5589569 (large)
## 95 percent confidence interval:
## lower upper
## -0.7253693 -0.3308168
Negatiivne delta näitab, et esimeses grupis (antud juhul infoküsimustel) on uuritaval tunnusel väiksemad väärtused kui teises grupis. Kui oleks vastupidi, oleks delta positiivne Teisisõnu: infoküsimused on keskmiselt lühema kestusega kui üllatusküsimused. Cliffi delta absoluutväärtus näitab põhimõtteliselt kahe tõenäosuse vahet P(y > x) - P(y < x): tõenäosus, et juhuslikult 2. grupist valitud vaatlus on suurem kui juhuslikult 1. grupist valitud vaatlus, miinus tõenäosus, et juhuslikult 2. grupist valitud vaatlus on väiksem kui juhuslikult 1. grupist valitud vaatlus.
Kuna tegemist on tõenäosuste erinevusega, saab Cliffi delta absoluutväärtus olla 0 ja 1 vahel. Mida lähemal 0-le, seda väiksem mõju (tõenäosus, et ühest grupist juhuslikult valitud väärtus on suurem kui teisest grupist juhuslikult valitud väärtus on sama suur kui tõenäosus, et see on väiksem), mida lähemal 1-le, seda suurem mõju.
R-is on Cliffi delta skaala määratud nii: |d| < 0.147 “negligible” |d| < 0.33 “small” |d| < 0.474 “medium” |d| >= 0.474 “large”
(Vaata näiteks ?effsize::cliff.delta
.)
Kontrolli kursuse osalejate hulgas tehtud küsimustikust, kas ülikoolis õpitud aeg võiks olla erinev üliõpilastel, kelle on või ei ole varasemat kogemust kvantitatiivsete meetoditega. Alustame eelmises praktikumis jutuks olnud hüpoteeside seadmisest:
Kontrollime jaotust. Kas andmed on normaaljaotusega või kas neid annab normaliseerida? Mis testi peaks kasutama?
Tee vastavalt kas t.test või wilcox.test
Leiame mõju suuruse, vastavalt siis kas Coheni D (parameetriline, kui eelmises sammus t-test) või Cliffi Delta (mitteparameetriline, kui eelmises sammus wilcox).
set.seed()
- annab juhuslikkude arvude genereerijale
seemne (et juhuslikke tulemusi saaks samade väärtustega korrata)rnorm()
- genereerib normaaljaotusega hulga juhuslikke
arvet.test()
- t-testwilcox.test()
- Wilcoxoni (või Mann-Whitney) testvar()
- dispersioonvar.test()
- dispersiooni test (kas rühmades on võrdne
dispersioon)effsize::cohen.d()
- Coheni D, efekti suurus
parameetrilise testi (t-testi) korraleffsize::cliff.delta()
- Cliffi delta, efekti suurus
mitteparameetrilise testi korralformat(x, scientific=F)
- teisendab e-astmetena
esitatud väärtuse kümnendmurruks.