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