DataCamp: t-eloszlás és t-próba

A t-eloszlásról, t-próbáról, p-value-ról van egy jó fejezet a DataCamp Inference for Numerical Data in R című kurzusában (Introducing the t-distribution), illetve ugyanebben a kurzusban az Inference for difference in two parameters fejezet témája a hipotézis vizsgálat t-próbával.

t-próba variánsai

Egymintás egyoldali t-próba (ismétlés)

Korábban már volt róla szó, hogy nem csak egyenlőséget tesztelhetünk. Egyoldali esetben a hipotéziseink így módosulnak: H0:μμ0vs.H1:μ>μ0 vagy: H0:μμ0vs.H1:μ<μ0

Fontos, hogy ez nem fog változtatni a kiszámolt statisztika értékén, csak az elfogadási intervallum fog kibővülni az egyik irányba (az első esetben balra felé, míg a második esetben jobbra felé). Hiszen azzal, hogy az egyik irányú kilengés μ0-hoz képest átkerül a H0-ba, ezek a kilengések már nem számítanak nekünk “extrémnek”, csak a másik irányba esők. Ez a p-érték fenti egyoldali definícióiból is látszik.

Kétmintás kétoldali t-próba (ismétlés)

Független kétmintás t-próba (ismétlés)

Először azt a változatát nézzük a t-próbának, ahol két egymástól független, akár különböző nagyságú, mintánk van, és ezek várható értékeit akarjuk összehasonlítani.

Azonos szórású eloszlások

A következő teszt/próba akkor használható, ha feltehetjük, hogy a két minta háttéreloszlásának a szórása azonos.

Tekintsük a következő háttéreloszlásokat és az azokból vett n1 és n2 elemű mintákat:

  • XN(μX,σ), minta: X1,,Xn1
  • YN(μY,σ), minta: Y1,,Yn2

Fontos, hogy a minták egymástól is függetlenek.

Hipotézisek

H0:μX=μYvs.H1:μXμY

Itt a t próbastatisztika a két minta átlag különbségén és úgynevezett pooled (közös, összevont) variancián alapszik, lásd ezen az oldalon.

Próbastatisztika t=X¯n1Y¯n2(n11)sX2+(n21)sY2n1+n22n1n2n1+n2

Ez a próbastatisztika is t-eloszlású, df=n1+n22.

Különböző szórású eloszlások (Welch-próba)

Ebben az esetben nem tesszük fel, hogy az X1,,Xn1 és Y1,,Yn2 minták szórása megegyezik. Ezt a próbát Welch-próbának is nevezik.

Ekkor a következő háttéreloszlásaink és független mintáink vannak:

  • XN(μX,σX), X1,,Xn1
  • YN(μY,σY), Y1,,Yn2

A Welch-próba próbastatisztikája szintén a minta átlagok különbségén alapszik, de itt már nem használhatunk összevont varianciát:

Próbastatisztika t=X¯n1Y¯n2sX2n1+sY2n2

Ez a próbastatisztika is t-eloszlású, a szabadsági foka komplikáltabb, lásd itt, ahol lenn az f jelöli a szabadságfokot.

Független kétmintás egyoldali t-próba (ismétlés)

A kétmintás t-próba mindkét fenti változatára létezik egyoldali változat is. A próbastatisztikák értéke ismét nem fog változni, csak az elfogadási/kritikus intervallum, és ezáltal a p-érték. Az iménti betegek vs. egészséges példára, először legyen: H0:μXμYvs.H1:μX>μY Vagyis azt tesztelnénk, hogy az egészségeseknél magasabb a koleszterinszint. Megjegyezzük, hogy nem ez a természetes feltételezés a példában, de ettől függetlenül tesztelhető.


Összetartozó kétmintás t-próba

Az összetartozó kétmintás t-próbát akkor használjuk, amikor a minták összefüggnek, azaz egy mintát/populációt kétszer tesztelünk (repeated measures), vagy amikor két mintánk van, amik összetartoznak (paired/matched). Az első esetre egy példa: amikor ugyanazoknak a betegeknek mérjük meg a koleszterinszintjüket mondjuk 2 és 4 nappal szívinfarktus után. A másodikra példa a hallgatók matematika és fizika érettségi eredményei.

Ekkor a következő háttéreloszlásunk és mintánk van:

  • (X,Y) kétdimenziós háttérváltozó,
    • E(X)=μX,E(Y)=μY léteznek,
  • Z=XY különbség változó normális eloszlású

Hipotézisek

H0:μX=μYvs.H1:μXμY Látjuk, hogy a hipotéziseink ugyanazok, mint a független kétmintás esetben, de könnyen látható, hogy valójában egymintás tesztet végzünk: H0:μXμY=0vs.H1:μXμY0, ami a várható érték linearitása miatt: H0:μZ=0vs.H1:μZ0. Tehát látható, hogy valójában a Z különbségváltozóra kell sima egymintás t-próbát végeznünk.

Megj.: Ennek a kétmintás próbának az egyoldali esete ugyanígy átírható a különbségváltozóra nézett egymintás próbára.

Megj.: Vegyük észre, hogy a szórásokra a fentiek miatt nincs és nem is kell semmilyen feltevés.

cholestr <- read.delim("./cholestr.txt") 

t.test(cholestr$Day2, cholestr$Day4, paired = TRUE)
## 
##  Paired t-test
## 
## data:  cholestr$Day2 and cholestr$Day4
## t = 3.2189, df = 27, p-value = 0.003337
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##   8.442836 38.128593
## sample estimates:
## mean of the differences 
##                23.28571

Manuálisan elkészítve a különbségváltozót, és arra futtatva a t-próbát, láthatjuk, hogy az output a hipotézis szöveges leírásán kívül ugyanaz.

cholestr$Day2diff4 <- cholestr$Day2 - cholestr$Day4
t.test(cholestr$Day2diff4)
## 
##  One Sample t-test
## 
## data:  cholestr$Day2diff4
## t = 3.2189, df = 27, p-value = 0.003337
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##   8.442836 38.128593
## sample estimates:
## mean of x 
##  23.28571

Összetartozó mintás tesztnél a két minta elemszáma szükségszerűen megegyezik, de a legtöbb program valahogy kezeli ezt a problémát. Az R ebben az esetben annyit tesz, hogy csak azokat a párokat veszi figyelembe, ahol mindkét változóra van mérés. Ha most a 2. napi koleszterinszintet a 14. napival akarjuk most összehasonlítani, akkor csak azokat veszi figyelembe, akik visszamentek a 14. napi mérésre is, ez látható lent, ha a szabadsági fokra nézünk, de a dokumentáció is írja.

t.test(cholestr$Day2, cholestr$Day14, paired = TRUE)
## 
##  Paired t-test
## 
## data:  cholestr$Day2 and cholestr$Day14
## t = 3.2883, df = 18, p-value = 0.004085
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  13.7215 62.2785
## sample estimates:
## mean of the differences 
##                      38

A variancia vizsgálata

Több kétmintás tesztnél is alapfeltevés, hogy a szórások megegyeznek. Ez is olyan feltevés, amit többnyire nem tudunk, de (elő)tesztelni lehet.

F-próba a varianciák egyezésére

Azt teszteli, hogy két független, normális eloszlású minta (X1,,Xn és Y1,,Ym) háttérváltozóinak szórása (σX,σY) megegyezik-e. Az eddigi jelölésekkel a hipotézisek: H0: σX=σYvs.H1: σXσY A próbastatisztika és annak eloszlása H0 esetén: F=(sX)2(sY)2H0F(n1,m1), ahol F(n1,m1) az n1 és m1 szabadsági fokú F-eloszlás. Itt n az X-hez tartozó, míg m az Y-hoz tartozó minta mérete.

Most végezzünk F-tesztet a betegek 2. napi és a kontrollcsoport koleszterinszintjei között a szórásokra.

cholestg<-read.delim("http://www.statsci.org/data/general/cholestg.txt")
kontrol<-subset(cholestg,group==2)
beteg2<-subset(cholestg,group==1 & day==2)
var.test(kontrol$cholest, beteg2$cholest)
## 
##  F test to compare two variances
## 
## data:  kontrol$cholest and beteg2$cholest
## F = 0.21847, num df = 29, denom df = 27, p-value = 0.0001168
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.1019903 0.4631656
## sample estimates:
## ratio of variances 
##          0.2184659

A p-érték alapján 0.05, 0.01 és 0.001 szignifikancia mellett is elutasíthatjuk a H0-t, tehát kijelenthető, hogy a betegek (2. napi) és a kontrollcsoport koleszterinszintjének szórásai különböznek (a próba feltételeinek fennállása esetén).

Megjegyzés: Az F-statisztika ugyan függ attól, hogy melyik korrigált empirikus szórás kerül a számlálóba és melyik a nevezőbe, de ez az F-eloszlás két paraméterét is megcseréli, így a p-érték végül nem fog változni:

var.test(beteg2$cholest, kontrol$cholest)
## 
##  F test to compare two variances
## 
## data:  beteg2$cholest and kontrol$cholest
## F = 4.5774, num df = 27, denom df = 29, p-value = 0.0001168
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  2.159055 9.804853
## sample estimates:
## ratio of variances 
##           4.577373

Megjegyzés: A legtöbb olyan hipotézistesztet, ahol a próbastatisztika eloszlása F-eloszlású egységesen F-tesztnek nevezünk, így mindig hozzátesszük, mit is tesztelünk, lásd fenn.

Az F-próba módosítható úgy, hogy a tesztelendő hipotézis ne az egyezés, hanem a a varianciák hányadosának egy konstanssal való egyezése legyen. (Az egyezés vizsgálatánál azt teszteljük, hogy ez a konstans 1-e.) Ezt itt most nem részletezzük, de az R fv. ratio paraméterével kipróbálható, pl.:

var.test(beteg2$cholest, kontrol$cholest, ratio = 5)
## 
##  F test to compare two variances
## 
## data:  beteg2$cholest and kontrol$cholest
## F = 0.91547, num df = 27, denom df = 29, p-value = 0.8206
## alternative hypothesis: true ratio of variances is not equal to 5
## 95 percent confidence interval:
##  2.159055 9.804853
## sample estimates:
## ratio of variances 
##           4.577373

Itt a p-érték alapján elfogadható az az új nullhipotézis, hogy a betegek 2. napi koleszterinjének varianciája 5-szöröse a kontrollcsoporténak.

A tesztek alapfeltevéseit sokszor nem tudjuk teljes magabiztossággal elfogadni, ezért mindig szükséges az adatok grafikus vizsgálata is valamilyen ábrával, mint a korábbi laborokon már szereplő box-plot.

datatoplot<-rbind(beteg2, kontrol)
boxplot(cholest~group, data = datatoplot)

A ggplot2 boxplot megoldása talán kicsit szebb. Megjegyzés: ez igényli, hogy a változót (beteg/kontroll), amely szerint az adott kimenetet (koleszterinszint) összehasonlítjuk, azt factor-rá alakítsuk. Így tudja az R, hogy az adott változó diszkrét/kategorikus.

library(ggplot2)
ggplot(datatoplot, aes(x=as.factor(group), y=cholest)) + 
geom_boxplot()

Ez alapján szemléletesebben is látható a fenti szignifikáns különbség a varianciában.

Ez F-próbák nagyon érzékenyek a normalitásra. Vannak más komplexebb tesztek is a szórások vizsgálatára, amelyek erre nem annyira érzékenyek, pl. a Brown–Forsythe-test

t-próba nemparaméteres megfelelői/alternatívái

A nemparaméteres statisztika (nonparametric statistics) a statisztikának egy olyan ága, ami nem csak parametrizált eloszláscsaládokra fókuszál (például tipikus paraméterek az átlag és a szórás). A nemparaméteres statisztika olyan módszerekre támaszkodik, amik

Mann–Whitney próba

Más néven: Mann–Whitney U próba, Mann–Whitney–Wilcoxon (MWW), vagy Wilcoxon-féle rangösszegteszt (Wilcoxon rank-sum test).

A Mann–Whitney próba a független kétmintás t-próba nemparaméteres megfelelője, amivel azt lehet vizsgálni, hogy két független minta ugyanabból az eloszlásból (vagy azonos eloszlású populációkból) származnak-e.

Feltételek

  • Legyenek X és Y folytonos FX és FY eloszlásfüggvényű háttérváltozók (megjegyzés: folytonosság helyett az is elég, hogy adatok legalább ordinálisak, azaz két megfigyelésről el lehet dönteni hogy melyik a nagyobb).
  • X1,X2,,Xn1 és Y1,Y2,,Yn2 független minták.

Hipotézisek

H0: A két minta azonos eloszlásból származik
H1: A két minta különböző eloszlásból származik

Többféle valid megfogalmazása/interpretációja van a nullhipotézisnek, a leggyakoribb értelmezésben azt jelenti, hogy ugyanakkora valószínűséggel (50-50%) lesz egy véletlenszerűen kiválasztott X megfigyelés kisebb vagy nagyobb mint egy véletlenül kiválasztott Y megfigyelés, azaz:

H0:P(X>Y)=P(Y>X)=12
H1:P(X>Y)P(Y>X) (azaz az egyik eloszlás sztochasztikusan nagyobb mint a másik)

ahol a P(X>Y)-t úgy értjük, hogy X-t és Y-t függetlennek vesszük.

Megjegyzés:

Egy másik interpretációban szigorúbb feltételek mellett: folytonos eloszlás függvények, és a két eloszlás függvény a egymásnak az eltoltja (shift in location), azaz FX(x)=FY(x+δ), a hipotézisek a következők: H0:δ=0 és H1:δ0.

A próba számítása

  1. A két mintát együtt rangsoroljuk, azaz csoporttól függetlenül határozzuk meg a rangszámokat 1-gyel kezdve (mint mikor rang korrelációt számolunk, csak itt nem külön külön a két mintára, hanem egyesítjük a két mintát).
  2. Összeadjuk külön az egyik és külön a másik megfigyelés csoport rangszámait (ezért hívják rangösszeg/rank-sum tesztnek).
  3. Ha igaz a nullhipotézis (azaz ugyanabból az eloszlásból származnak a minták), akkor ennek a két rangösszegnek közel egyenlőnek kell lennie. Minél jobban eltér az egyik összeg a másiktól, annál több okunk van feltételezni, hogy a két minta eloszlása különböző. A próbastatisztika értéke az egyik csoport rangösszege (általában a kisebb elemszámú csoportét szokták venni), de bármelyik csoport rangösszegét tekinthetjük próbastatisztikának. A próbastatisztika aszimptotikusan normális eloszlású, ami a standardizálva asszimptotikusan standard normális eloszlású (megjegyzés: az angol irodalomban az u-próbát Z próbának hívják).

R példa

Hasonlóan a múltkori kétmintás t-próbához, nézzük meg hogy a betegek negyedik napi koleszterinszintje különbözik-e az egészségesek koleszterinszintjétől. Ehhez használjuk megint a cholestg adatokat (ezen a honlapon az első file).

cholestg <- read.delim("./cholestg.txt") 

Kérjük le a betegek negyedik napi és az egészségesek koleszterinszintjét:

egeszsegesek = cholestg[cholestg$group == 2, "cholest"]

betegek = cholestg[cholestg$group == 1 & cholestg$day == 4, "cholest"]

A Wilcoxon-féle tesztek elvégzéséhez a wilcox.test függvényt kell használni:

wilcox.test(egeszsegesek, betegek)
## Warning in wilcox.test.default(egeszsegesek, betegek): cannot compute exact p-value with
## ties
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  egeszsegesek and betegek
## W = 164, p-value = 6.911e-05
## alternative hypothesis: true location shift is not equal to 0

Látjuk hogy a p-érték rendkívül kicsi, ezért nagyon magas konfidencia szinten is elutasíthatjuk a nullhipotézist, azaz az egészségesek és a betegek negyedik napi koleszterin szintje nem azonos eloszlású.

Egészségesek átlagos koleszterinszintje

mean(egeszsegesek)
## [1] 193.1333

Egészségesek átlagos koleszterinszintje

mean(betegek)
## [1] 230.6429

Wilcoxon-féle előjeles rang próba (Wilcoxon signed-rank test)

A Wilcoxon-féle előjeles rang próba az összetartozó kétmintás t-próba nemparaméteres megfelelője, amivel azt lehet vizsgálni, hogy két összefüggő minta ugyanabból az eloszlásból (vagy azonos eloszlású populációkból) származnak-e.

Feltételek

  • A megfigyelések az (X,Y) kétdimenziós háttérváltozóból származnak (az adatok legalább intervallumskálán vannak, hogy tudjunk különbségváltozót számolni, azaz nem elég ha csak ordinálisak a megfigyelések).
  • A Z=XY különbségváltozó folytonos és szimmetrikus eloszlású mediánja körül.

Hipotézisek

H0: A különbségváltozó a 0 körül szimmetrikus eloszlású
H1: A különbségváltozó a 0 körül nem szimmetrikus eloszlású

H0:P(X>Y)=P(Y>X)=12vs.H1:P(X>Y)12

vagy ekvivalensen

H0:P(Z>0)=12vs.H1:P(Z>0)12

A próba számítása

  1. Kiszámoljuk a Z1=X1Y1,,Zn=XnYn különbségeket
  2. Eldobjuk azokat a Zi-ket amik nullák, és ezután rangsoroljuk a maradékot az abszolútértékük alapján, azaz rangsoroljuk a |Zi|=|XiYi| elemeket.
  3. A próba próbastatisztikája az előjeles rangösszeg, azaz sgn(Zi)rg(|Zi|), ahol rg(|Zi|) jelöli az előbbi pontban számolt rangsorát a Zi abszolútértékének, sgn pedig az előjel függvényt. A próbastatisztika aszimptotikusan normális eloszlású.

R példa

Megint nézzük meg a betegek második és negyedik napi koleszterin szintjüket:

cholestr <- read.delim("./cholestr.txt") 

wilcox.test(cholestr$Day2, cholestr$Day4, paired=TRUE) # Hasonlóan a t.test-hez a paired paramétert kell TRUE-ra állítani
## Warning in wilcox.test.default(cholestr$Day2, cholestr$Day4, paired = TRUE): cannot compute
## exact p-value with ties
## 
##  Wilcoxon signed rank test with continuity correction
## 
## data:  cholestr$Day2 and cholestr$Day4
## V = 324, p-value = 0.006056
## alternative hypothesis: true location shift is not equal to 0