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)
Elsőre talán nem egyértelmű de a (1) egyben meg is oldja a problémát, hogy nem tudjuk az egyes egyedek és
é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) |
1 | 1 | 80 | 80 | 0 |
2 | 1 | 75 | 75 | 0 |
3 | 1 | 85 | 85 | 0 |
4 | 0 | 60 | 60 | 0 |
5 | 1 | 76 | 76 | 0 |
6 | 0 | 81 | 81 | 0 |
7 | 0 | 100 | 100 | 0 |
8 | 0 | 83 | 83 | 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)
Most állítsuk elő az összes lehetséges kontroll-teszt csoport beosztást a megfigyelt adatainkon. Összesen 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
, vagyis 70, lehetséges kombináció létezik. Valami ilyesmi:
| | | | | | | Y(1)-Y(0) | |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | -10 |
1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | -2 |
1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0,5 |
| | | | | | | | |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 10 |
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
- Ezt angolul “sharp null” hipotézisnek nevezik.
Irodalom
- Imbens és Rubin: Fisher’s Exact Test in Completely Randomized Experiments
- Imbens és Rubin: Causal Inference for Statistics, Social, and Biomedical Sciences — Fisher’s Exact P-values in CompletelyRandomized Experiments
“Fisher egzakt p-érték” bejegyzéshez 2 hozzászólás