ustalonej tabeli

Transkrypt

ustalonej tabeli
Algorytm Monte-Carlo dla testu
Freemana-Haltona
Rafał Topolnicki
Algorytm dla macierzy r × c
Test Fishera
Załóżmy, że w pewnej populacji badamy dwie cechy oraz że każda z tych cech może
przyjmować jedną z dwóch wartości. Test Fishera jest testem w których sprawdzamy
hipotezę H0 mówiącą że cechy te są od siebie niezależne. Przykładowo, możemy
zapytać czy w grupie nastolatków odchudzanie się jest zależne od płci. Każda osoba scharakteryzowana przez dwie cechy - płeć oraz to czy się odchudza - i każda
z cech może przyjmować tylko dwie wartości. Okazuje się, że bardzo naturalne
uogólnienie, na większą ilość kategorii w każdej z cech, powoduje że problem jest
niemożliwy do rozwiązania analitycznie. Do niedawana nie istniały nawet żadne
przybliżone metody numeryczne. W pracy przedstawiony zostanie algorytm [1] do
generowania tabel wielodzielczych o zadanych licznościach brzegowych. Algorytm
ten został wykorzystany do napisania programu komputerowego służącego do wyznaczania poziomu krytycznego, dla dowolnej macierzy uzyskanej doświadczalnie,
metodą Monte-Carlo.
1. Ustalamy {πij } oraz t. Następnie kładziemy mij = 0, bi+ = µi+ oraz
b+j = µ+j , (i = 1, . . . , r; j = 1, . . . c).
2. Dla i = 1, . . . , (r − 1) wykonujemy kroki od 3 do 9,
3. Dla j = 1, . . . , (c − 1) wykonujemy kroki od 4 do 8,
4. Jeżeli πij = 0 zostawiamy mij = 0 i przechodzimy do roku 8,
Pc
5. Jeżeli πij 6= 0 obliczamy ξ11 = πij , ξ12 = l=j+1 πil, ξ21 =
Pr
Pr
Pc
k=i+1 = πkj , ξ22 =
k=i+1
l=j+1 πkl
6. Obliczamy rozkłady
brzegowe
dla
podmacierzy
2
×
2
n
=
b
,
n
=
1+
i+
+1
Pc
b+j , n+2 = l=j+1 b+l, n++ = n+1 + n+2, n2+ = n++ − n1+,
7. Używamy Algorytmu 1 do znalezienia elementu mij = a11. Jako dane
wejściowe podajemy liczności brzegowe n1+, n2+, n+1, n+2 obliczone w
punkcie 6,
Pj
8. Uaktualniamy liczności brzegowe bi+ = µi+ − l=1 mil oraz
Pi
b+j = µ+j − k=1 mkj ,
Teoria
9. Uzupełniamy ostatnią
komórkę
w
i-tym
wierszu
m
=
b
,
b
=
0
oraz
ic
i+
i+
Pi
b+c = µ+c − k=1 mkc,
Niech r i c oznaczają odpowiednio liczbę wierszy i kolumn tabeli wielodzielczej a
t liczebność próby. Niech µij oznacza oczekiwaną liczność kategorii, a mij obser- 10. Uzupełniamy ostatni wiersz tabeli - mrj = b+j (j = 1, . . . , c)
Po zakończeniu działania algorytmu {mij } jest przykładową macierzą spełniającą
wowaną liczność. Niech
żądane warunki brzegowe.
Γ0 = {m ∈ Mr×c : m++ = t}
oznacza zbiór tabel z rozkładu MULT. Tabele z rozkładu MXH (multivariate extended hypergeometric) mają dodatkowo zadane liczności brzegowe:
Γ0 ⊃ Γ1 = {m ∈ Γ0 : {mi+ = µi+}, {m+j } = {µ+j }}
Prawdopodobieństwo wylosowania ustalonej tabeli m ∈ Γ0 wynosi
r Y
c
Y
mij
PM U LT (m) = PM U LT ({mij }) = t
πij /mij !
i=1 j=1
podczas gdy wylosowania tabeli m∗ ∈ Γ1:
PM XH (m∗) = PM U LT (m∗)/
X
PM U LT (m)
Symulacja Monte-Carlo
Wartość poziomu krytycznego p-value szacujemy korzystając z metody MonteCarlo. W tym celu generujemy odpowiednio dużą liczbę tabel MXH przy zadanych licznościach brzegowych. Dla każdej z tabel {mij } obliczamy, korzystając
ze wzoru (1), prawdopodobieństwo wylosowania jej P ({mij }), które porównujemy z prawdopodobieństwem wylosowania tabeli {Oij } obserwacji P ({Oij }).
Jeśli P ({mij }) ¬ P ({Oij }) to uznajemy, że doświadczenie losowe zakończyło się sukcesem. Zliczamy liczbę sukcesów k w n próbach. Wynikiem testu jest
pvalue = k/n. Dokładność metody jest tym większa im większe jest n.
m∈S1
Gdy rozkłady populacji są niezależne, tzn. {πij = πi+π+j } powyższy wzór można
zapisać w postaci


−1
r
c
r Y
c
Y
Y
Y
µ+j ! t!
mij !
(1)
PM XH ({m}) =  µi+!
i=1
j=1
i=1 j=1
Rysunek:
Algorytm dla macierzy 2x2
Zbieżność p-wartości w zależności od liczby tablic wygenerowanych dla każdej z 10 prób
Mamy dane liczności brzegowe µ1+, µ2+, µ+1, µ+2 oraz tabele częstości
{πij = µij /t}
Tabela ma jeden stopień swobodny - powiedzmy a11,
Określamy minimalne i maksymalne możliwe wartości a11,
kmin = max{0, (µ1+ + µ+1 − µ++)}, kmax = min{µ1+, µ+1}
Określamy wagi ∀k = kmin, . . . , kmax
−1
wk
Rysunek:
= [k!(µ1+ − k)!(µ+1 − k)!(µ++ − µ1+ − µ+1 + k)!]
Znajdujemy dystrybuantę cl rozkładu MXH


−1
k
l
max
X
X
cl = 
wk 
wk
(l = kmin, . . . , kmax)
k=kmin
k=kmin
Dyskretną metodą odwracania dystrybuanty znajdujemy a11
u ∼ U [0, 1], a11 = min{u < cl}
a) Czas potrzebny na wygenerowanie 1000 tablic z rozkładu MXH w zależności od rozmiaru tablic, b) Czas potrzebny na
wygenerowanie 1000 tablic w zależności od r czy ustalonej wartości c = 60 w skali logarytmiczno-logarytmicznej. Obliczenia były
prowadzone na nieobciążonym komputerze klasy AMD Phenom(tm) 3GHz
Przykłady zastosowań
Analiza danych klinicznych - wpływ poziomu sodu we krwi, przed przystąpieniem
do leczenia, na korzyść kliniczną wynikającą z stosowania leku.
l
Liczności brzegowe zadają pozostałe elementy macierzowe.
Literatura
1. Craig B. Borkowf, Comp. Stat. & Data Analisys, 44 (2004) 431-449
2. Craig B. Borkowf, Statistica Sinica, 12 (2002), 491-500
3. Y. Chen, et al., 100, No. 469
Rysunek:
Wartość poziomu krytycznego w zależności od podziału populacji na trzy grupy ze względu na zawartość sodu we krwi
Poziom sodu we krwi wahał się od 135 do 143. Poziom p-wartość dla hipotezy H0
zależy od granic podziału populacji na trzy grupy 135 ¬ L < U ¬ 143.
http://www.knf.ifd.uni.wroc.pl
http://www.wfa.uni.wroc.pl

Podobne dokumenty