Fisher egzakt p-érték

Az előző részben bemutattam, a kontrollált vizsgálat alapjait, és eljutottam annak felismeréséig, hogy az Átlagos kezelési hatás naiv alkalmazása teljesen rossz eredményt produkálhat bizonyos esetekben. Most megnézzük mit lehet tenni ezzel a problémával.


Régi jó barátunk Ronard Fisher is felismerte a problémát, amivel mi találkoztunk. De volt két fontos különbség közte és a mi alapállásunk között.

Az első, hogy mi feltételezzük, hogy a teszt és a kontroll csoport egy közös populációból származik és végső soron mi erről a populációról akarunk valamit megtudni. Ezzel szemben Fisher nem foglalkozott ezzel a közös populációval. Őt konkrétan az adott csoportra vonatkozó kezelés hatása érdekelte. Vegyük észre, hogy ez kizár egy jelentős bizonytalanságot a tesztből. Nevezetesen, hogy Fisher esetén a mintavétel kérdése nem fontos, mivel a csoport minden egyes egyedét ismerjük. A vicc, hogy Fisher megközelítése teljen megfelel a mostanában divatos “big data” alkalmazások elvárásainak. Míg egy gyógyszergyár általában arra törekszik, hogy bizonyos nagy populációkra, mint gyermekek, terhes nők, férfiak stb, nézve állapítson meg valamit, addig a technológiai óriásokat ez nem érdekli. Ők nem azt akarják tudni, hogy általában mi érdekes az embereknek, hanem, hogy adott, jól körülhatárolt célcsoportokat hogyan lehet manipulálni (“kezelni”).

A második különbség, hogy Fishert más kérdés érdekelte. Míg mi az átlagos hatását keressük a kezelésnek, Fisher egy hipotézis vizsgálatot végzett. Mégpedig a null hipotézise az volt, hogy a kezelés nem jár semmiféle hatással egyik egyedre sem:1

(1)  H_0: Y_i(0) =  Y_i(1)

Elsőre talán nem egyértelmű de a (1) egyben meg is oldja a problémát, hogy nem tudjuk az egyes egyedek Y_i(0) és Y_i(1) értékét egyszerre. Ha a kettő egyforma, akkor feltölthetjük a hiányzó mezőket az ismert adatokkal. Vagyis az előző részben ismertetett táblázat így fog alakulni:

Sorszám
i
Kapott kezelést?
W
Végső állapot
Kezeléssel
Y(1)
Végső állapot
Kezelés nélkül
Y(0)
Kezelés hatása
Y(1)-Y(0)
1180800
2175750
3185850
4060600
5176760
608181 0
70100100 0
808383 0

Rendben, de mire jó ez? Úgy tűnik, hogy csak lenulláztuk a Kezelés hatását.

Fisher rámutatott, hogy ha előállítjuk az összes lehetséges teszt-kontroll csoport beosztást, és kiszámítjuk mindegyikre a teszt statisztikát, akkor megkapjuk a fenti Null hipotézis eloszlását. Ennek segítségével pedig döntést hozhatunk arról, hogy a valóságban használt teszt-kontroll beosztás eredménye menyire valószínű.

Rendben, nézzük meg ezt a konkrét számpéldával: először is számoljuk ki a megfigyelt csoportok Átlagos Kezelési Hatását:

(1)  ATE =   E[Y_i| W_i = 1] -   E[Y_i| W_i = 0]  = -2

Most állítsuk elő az összes lehetséges kontroll-teszt csoport beosztást a megfigyelt adatainkon. Összesen \binom{n+m}{n} lehetőség van, ahol n a teszt csoport mintanagysága, míg az m a kontroll csoport mintanagysága. Jelen esetben mindkettő 4, szóval \binom{8}{4} , vagyis 70, lehetséges kombináció létezik. Valami ilyesmi:

W_1 W_2 W_3 W_4 W_5 W_6 W_7 W_8 Y(1)-Y(0)
11110000-10
11101000-2
1 11001000,5
\vdots \vdots \vdots \vdots \vdots \vdots \vdots \vdots \vdots
0000111110

Ez Pythonban így csinálhatjuk meg gyorsan:

y = (80,75,85,60,76,81,100,83)
i = [ index for index in range(len(y)) ]
w = [1,1,1,0,1,0,0,0]

y1 = [ y[index] for index in range(len(y)) if w[index] == 1 ]
y0 = [ y[index] for index in range(len(y)) if w[index] == 0 ]
ATE = sum(y1)/len(y1)-sum(y0)/len(y0)
print("ATE: ", ATE)

import itertools
comb = []
for i1 in itertools.combinations(i, 4):
    y1 = [ y[index] for index in i1 ]
    y0 = [  y[index]  for index in i if index not in i1  ]
    comb.append((y1,y0,sum(y1)/len(y1)-sum(y0)/len(y0) ))

Hogy megkapjuk a pontos p értéket, nem kell mást tenni, mint megnézni, mekkora az esélye az általunk észlelt ATE-nak. Vagyis egyszerűen meg kell néznünk, hogy mennyiszer nagyobb vagy egyenlő a fentebb szimulált teszt-kontroll kiosztások értéke az általunk mért Átlagos Kezelési Hatás abszolút értékénél:


p = len([ szim for szim in comb if abs(szim[2]) >= abs(ATE) ])/len(comb)

Ami a fenti példában 0.8. Mit is mond nekünk ez a szám? Azt, hogy 80%-ban a szimulált eloszlások Átlagos Kezelési Hatása nagyobb, mint amit mi mértünk. Vagyis kicsi a valószínűsége, hogy a Null hipotézist el tudjuk utasítani.

Változatok egy témára

Több kérdés is felmerülhet a fentiekkel kapcsolatban. Pl: Működik ez minden fajta eloszlásra? Mennyire robusztus?

Vegyük észre, hogy az eljárás stabilitása a Átlagos Kezelési Hatástól függ. Vagyis ha ez megfelel az elvárásainknak akkor jól fog működni, ha nem akkor nem. Ennek a felismerése pedig egyenesen vezet ahhoz, hogy az egyszerű átlag helyett, ami az ATE lényegében, valami a céljainknak jobban megfelelő Teszt statisztikát használjunk. A teljesség igénye nélkül néhány:

  • logaritmikus transzformáció — az Y értékeket átengedjük egy ln függvényen. Általában akkor használjuk ha az adatok ferdék, pl: exponenciális eloszlásból származnak.
  • az átlag helyett a mediánt használjuk — a kiugró értékek kezelésére
  • sorba rendezett adatok — egyszerre használható kiugró értékek és ferde eloszlásokra is. Hátránya, hogy a eredmény nem lehet egyből használni a kezelés hatásának bemutatására, szemben az Átlagos Kezelési Hatással vagy a mediánnal.
  • Kolmogorov-Smirnov teszt

A teszt statisztika kiválasztása mellett még egy másik kérdés is fel szokott merülni: Mi van sok megfigyelés esetén? Mint fentebb láttuk, a Null hipotézist az összes lehetséges teszt-kontroll csoport kiosztás kombinációjával állítjuk össze. Ez viszont, ahogy nő a mintaszám, egyre nagyobb számításigényű. Abban az eseten amikor nincs elegendő kapacitásunk az összes lehetőség kiszámítására, Monte-Carlo szimulációt szoktak alkalmazni.

Összegzés

A Fisher egzakt p teszt egy jó és egyszerű módszer „sharp” Null hipotézis vizsgálatára. Ugyanakkor a megfigyelések számának növekedésével a számításigénye ugrásszerűen nő. Ezért sok megfigyelés esetén általában Khí-négyzet próbát szoktak helyette alkalmazni.

Lábjegyzet

  1. Ezt angolul “sharp null” hipotézisnek nevezik.

Irodalom

Hírdetés

Fisher egzakt p-érték” bejegyzéshez 2 hozzászólás

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés /  Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés /  Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés /  Módosítás )

Kapcsolódás: %s