Käesoleva kirjatüki eesmärk on anda ülevaade p-väärtuse ühest valust. Põgusa ülevaate p-väärtuse sisust ja statistilisest testimisest saab siit. Nii palju ütlen, et tegemist on endiselt suhteliselt populaarse näitajaga, mille väärtuse põhjal järeldatakse näiteks, kas mingi näitaja erinevus kahe grupi vahel on statistiliselt oluline või mitte (nt kas mehed on keskmiselt pikemad kui naised).
Mina keskendun käesolevas artiklis p-väärtusega seotud ühele konkreetsele probleemile. Nimelt sõltub p-väärtus katse läbiviija kavatsustest, mis võib ühtede ja samade andmete korral p-väärtuse muuta erinevaks. Asume aga kohe asja kallale ilma rohkem jahu ajamata.
Me viime läbi katse, mille abil tahame välja selgitada, kas münt on “ebaaus”. Konkreetsemalt tahame teada, kas münt on selline, et viskamisel tuleb kirja vähem, kui juhuslikult see juhtuks (umbes 50% visetest). Meie nullhüpteesiks on, et kiri tuleb ette 50% juhtudest. Me planeerime katse nii, et viskame münti 24 korda (mitte just üliväga suur katsete arv, kuid käib kah). Oletame, et katse käigus saime seitse korda kirja. Mis on selle p-väärtus? (ehk tõenäosus, et juhuslikult saaksime seitse kirja, kui viskaksime ausat münti) Arvutame:
N=24 #visete arve
z=7 #kirjade arv
theta=1/2 #tõenäosus, et tuleb kiri
lowTailZ=0:z
lowTailP=sum(choose(N, lowTailZ)*theta^lowTailZ*(1-theta)^(N-lowTailZ))
lowTailP
## [1] 0.03195733
Paneme selle ka kohe joonisele (reaalsete andmetega, peaksid jooned olema sujuvamad):
#vajalik plottimiseks
zN=(0:N)/N
lowTailP=choose(N, 0:N)*theta^(0:N)*(1-theta)^(N-(0:N))
cointoss=data.frame(zN, lowTailP)
library(ggplot2)
sevenheads=zN[8] #zn, kus tuli 7 kirja täis
ggplot(cointoss, aes(x=zN, y=lowTailP))+
geom_line()+
geom_area(fill="lightblue", alpha=0.2)+
geom_area(data=cointoss[cointoss$zN<=sevenheads,],fill="red", alpha=0.2)+
theme_minimal()+
xlab("z/N")+
ylab("p(z/N)")
Y-telg (p(z/N)) tähistab konkreetse z/N väärtuse tõenäosust. z/N suhe näitab kirjade suhet täringu viskamise kordadega (z-kirjade arv, N-mitu korda täringut visati). z/N väärtus 1 tähendab, et iga viskega (meil on 24 viset) tuli kiri, väärtus null, et ühtegi kirja ei tulnud. Käesoleval juhul on visete arv (N) fikseeritud (24). Kuid kirjade arv (z) ei ole fikseeritud. Ehk siis joonisel x-teljel z/N näitaja kasvab, kuna z muutub (z/N=0, kui ühtegi kirja 24 viske jooksul ei tulnud, z/N=1, kui kõik 24 viset andsid tulemuseks kirja).
Nagu näha on p-väärtuse üle 0.025 (2.5%, joonisel punane ala, käesoleval juhul on tegemist ühepoolse hüpoteesiga, kuna meid huvitavad tulemused, mis on tavalisest väiksemad), mida vaikimisi loetakse üheks piiriks statistilise olulisuse määramisel. Seega selle testi tulemusel me nullhüpoteesi ei kummuta.
Oletame, et me endiselt tahame teada saada, kas mündil tuleb kirja külg vähem ette, kui ausal mündil. Kuid seekord planeerime katse nii, et peatame mündiviske siis, kui meil on seitse korda kiri tulnud. Mis on p-väärtus sellisel juhul? Sama? Arvutame:
N=50 #suvaline arv, mille juures arvame, et võiks 7 kirja täis tulla (teoreetiliselst on piiriks lõpmatus,
#praktikas "ausa" mündi puhul mõni väiksem arv)
zn=z/(z:N)
complN = z:(N-1)
complP = (z/complN)*choose(complN,z) * theta^z * (1-theta)^(complN-z)
cointoss2=data.frame(zN=zn[1:43], complP=complP)
sum(complP[18:43])
## [1] 0.0173448
See kord on p-väärtus aga alla 0.025 ning me kummutame nullhüpoteesi - sellel mündil tuleb kiri vähem kordi ette kui “ausal” mündil. Vaatme olukorda ka joonisel:
ggplot(cointoss2, aes(x=zN, y=complP))+
geom_line()+
geom_area(fill="lightblue", alpha=0.2)+
geom_area(data=cointoss2[18:43,],fill="red", alpha=0.2)+
theme_minimal()+
xlab("z/N")+
ylab("p(z/N)")+
coord_cartesian(xlim=c(0,1))
Joonis on sarnane eelnevale joonisele. Seekord kasvab x-teljel z/N kuna näitaja N (visete arv) muutub. Eesmärk on kätte saada seitse kirja. Minimaalselt kulub selleks seitse viset (z/N=1), maksimaalselt võib selleks kuluda lõpmatu arv kordi viskeid. Punane ala on tõesti väiksem, kui eelmine kord, mis näitab, et tõenäosus seitset kirja saada on väiksem.
Asja point oli väga lühidalt näidata ühte p-väärtuse nõrkust - sõltuvus sellest, kuidas andmete kogumine peatati. Andmed on mõlemal juhul identsed, kuid nende kogumise peatamise viis, muudab tulemust. Päris tobe värk. Tegelikult võib reegleid, kuidas andmete kogumine peatada, olla veel. Näiteks võime piirata aega, mis meil on katse läbi viimiseks (näiteks 2 minutit). See annaks aga teistsuguse p-väärtuse (selle kohta vaata kasutatud kirjanduse rubriiki). Keeruliseks osutub see, kuidas teiste arvutatud p-väärtuse puhul kindlaks teha, kuidas andmed koguti. Statistilised paketid kipuvad samuti käsitlema esimest juhtumit (kus katsete arv on fikseeritud), mistõttu on teistel juhtudel p-väärtuse välja arvutamine keeruline.
Sellest, mis võiks p-väärtuse asemel olla (ja kohati ka juba on), kirjutan edaspidi.
Kruschke, J., 2014, Doing Bayesian Data Analysis, Second Edition: A Tutorial with R, JAGS, and Stan 2nd Edition
Kruschke, J., Liddell, T. M., 2016, The Bayesian New Statistics: Hypothesis testing, estimation, meta-analysis, and planning from a Bayesian perspective