• Nie Znaleziono Wyników

TESTOWANIE DOBRYCH WŠASNO‘CI GENERATORA 31 (bª¡d pierwszego rodzaju α - prawdopodobie«stwo odrzucenia hipotezy

4 Testowanie dobrych wªasno±ci generatora

4. TESTOWANIE DOBRYCH WŠASNO‘CI GENERATORA 31 (bª¡d pierwszego rodzaju α - prawdopodobie«stwo odrzucenia hipotezy

zero-wej, je±li jest ona prawdziwa) i nast¦pnie dla ustalonej statystyki testowej T znajduje sie obszar akceptacji. Najcze±ciej mamy do czynienia z testami jed-nostronnymi z obszarami akceptacji T > x0 lub T ≤ x0 lub |T | ≤ t0. Wtedy x0 jest dobierane tak aby odpowiednio IP(T /∈ obszaru akceptacji) = α.

W przeciwie«stwie do tego co si¦ uczy na statystyce, »e najpierw ustala si¦ poziom istotno±ci testu i obszar akceptacji, do testowania generatorów zalecana jest nast¦puj¡ca procedura. Niech T ma dystrybant¦ G(x) i w za-gadnieniu obszar akceptacji testu jest postaci (−∞, a]. Obliczamy statystyk¦

testow¡ T dla bardzo du»ej liczby prób (na przykªad n = 210) i nast¦pnie je±li T = t0 to obliczamy warto±ci tzw. p-warto±ci12:

p = 1− G(t0) . (4.2)

Czasami spotykamy testy z obszarem akceptacji postaci (a, ∞) i wtedy obli-czamy lew¡ p warto±¢

pl = G(t0) . (4.3)

Je±li jedna z tych warto±ci jest bardzo bliska 0 to mo»e wskazywa¢ jaki±

problem z generatorem. Przez maª¡ liczb¦ L'Ecuyer poleca p = 10−1510−10. Natomiast mamy przypadek podejrzany gdy p s¡ bliskie 0.005. Jednak»e wydaje sie, ze te zalecenia s¡ zbyt ostre.

Ogólnie zalecane jest wygenerowanie m = 1000 − 10000 ci¡gów dªugo±ci n = 220− 232. Mo»na powtarza¢ eksperyment dla róznych n = 2k zwi¦ksza-j¡c k i obserwuzwi¦ksza-j¡c czy nie ma zaªamania si¦ warto±ci p. Po przeprowadzeniu eksperymentu otrzymujemy ci¡g p1, . . . , pmp-warto±ci. Przyjmujemy warto±¢

krytyczn¡, na przykªad zalecane w raporcie NIST [41] α = 1/100 − 1/1000.

W przypadku α = 1/100 to spodziewamy si¦ »e co najwy»ej okoªo 1% ekspe-rymentów obleje test (to znaczy poda maªa p-warto±¢). A wi¦c w przeciwnym przypadku mamy podejrzenie, »e generator jest kiepski.

Powtarzamy ten eksperyment dla n = 2k obserwuj¡c czy nie ma zaªama-nia si¦ warto±ci p.

Zgodno±¢ z rozkªadem jednostajnym; test λ Koªmogorowa

Teraz zajmiemy si¦ testowaniem hipotezy, »e rozkªad brzegowy Ui jest U(0,1).

Do tego sªu»¡ testy zgodno±ci, na przykªad test Koªmogorowa-Smirnowa.

Generujemy liczby U1, . . . , Un, i deniujemy odpowiadaj¡c¡ im

12pvalue

Pami¦taj¡c, »e nasz¡ hipotez¡ jest rozkªad jednostajny U(0, 1), tj. F (t) = t dla t ∈ (0, 1), nasz¡ statystyk¡ testow¡ jest

Dn= sup

0≤t≤1| ˆFn(t)− t| .

Z twierdzenia GliwienkoCantelli mamy, »e je±li Ui s¡ rzeczywi±cie o rozkªa-dzie jednostajnym, to z prawdopodobie«stwem 1 ci¡g Dn zmierza do zera.

Natomiast unormowane zmienne √

nDn zbiegaj¡ wedªug rozkªadu do roz-kªadu λ-Koªmogorowa, tj.

Rozkªad ten jest stablicowany, patrz np tablice Zieli«skich [52]. W szczegól-no±ci mamy λ0.1 = 1.224, λ0.05= 1.358oraz λ0.01= 1.628, gdzie

Innym testem zgodno±ci jest test χ2. Poka»emy jego zastosowanie do sprawdzenia nie tylko zgodno±ci z rozkªadem jednostajnym ale równie» nie-zale»no±ci.

Test cz¦sto±ci par 13 Chcemy przetestowa¢ czy ci¡g u1, u2, . . . ∈ [0, 1]

jest realizacj¡ z próby prostej rozkªadzie jednostajnym na [0, 1] U1, U2, . . .. Zamiast ci¡gu liczb rzeczywistych u1, . . . ∈ [0, 1] przechodzimy do ci¡gu

13Knuth v. ang. str. 60.

4. TESTOWANIE DOBRYCH WŠASNO‘CI GENERATORA 33 y1, y2, . . . ∈ {0, 1, . . . , M − 1} stosuj¡c przeksztaªcenie yj = bMujc. W za-le»no±ci od komputera musimy wybra¢ M = 2k. Na przykªad stosuje si¦

M = 64 = 26 gdy komputer pracuje w systemi dwójkowym, i wtedy yk re-prezentuje 6 najbardziej znacz¡cych bitów w dwójkowej reprezentacji uj. Dla naszego testu par rozpatrujemy ci¡g n elementowy

(y1, y2), (y3, y4), . . . , (y2n−1, y2n).

Wtedy liczymy Xqr liczb¦ powtórze« y2j−1 = q, y2j = r dla ka»dej pary 0 ≤ q, r ≤ M − 1 i stosujemy test χ2 z M2 − 1 stopniami swobody z praw-dopodobie«stwem teoretycznym 1/M2 dla ka»dej pary (q, r).

Test odst¦pów Przykªad pokazuj¡cy nieprawidªowo±ci generatora 'state' w MATLABie (patrz podrozdziaª 3.2 wykorzystywaª odst¦py pomi¦dzy ma-ªymi wielko±ci. Ogólnie test odst¦pów bada odst¦py pomi¦dzy pojawieniem si¦ wielko±ci uj ∈ (α, β], gdzie 0 ≤ α < β ≤ 1. Rozkªad odst¦pu jest geome-tryczny z prawdopodobie«stwem odst¦pu równym j wynosz¡cym p(1 − p)j−1 (j = 1, 2, . . .). Tutaj p = β − α i testujemy zgodno±¢ rozkªadem chi kwadrat.

4.2 Testy oparte na schematach urnowych

Caªa grupa testów jest oparta na schemacie rozmieszczenia n kul w k urnach.

Zdeniujemy najpierw kostk¦ w przestrzeni [0, 1)t. Dzielimy ka»dy z t boków na d (najlepiej d = 2`) równych odcinków [i/d, (i + 1)/d), i = 0, . . . , d − 1, i nast¦pnie produktuj¡c je t razy otrzymujemy dt maªych kostek. Oznaczmy k = dt, i ponumerujmy kostki od 1 do k. To b¦da nasze urny. Teraz generu-jemy nt liczb losowych U1, . . . , Unt i grupujemy je w n wektorów z [0, 1)t:

U1 = (U1, . . . , Ut), U2 = (Ut+1, . . . , U2t),

. . . , Un = (U(n−1)t+1, . . . , Unt) . Ka»dy taki d wymiarowy wektor traktujemy jako kul¦.

Test serii Niech Xj b¦dzie liczba wektorów Ui, które wpadn¡ do kostki j

= 1, . . . , k i zdeniujmy statystyk¦

˜ χ2 =

Xk j=1

(Xj − n/k)2

n/k .

Je±li jest prawdziwa hipoteza H0 mówi¡ca, »e zmienne losowe s¡ niezale»ne o jednakowym rozkªadzie U(0,1), to ˜χ2 ma ±redni¡ IE χ2 = µ = k− 1 oraz Var χ2 = σ2 = 2(k− 1)(n − 1). W przypadku, gdy t = 1 mamy test

zgodno-±ci z rozkªadem brzegowym jednostajnym, bez testowania niezale»nozgodno-±ci. Ze wzgl¦du na du»a liczb¦ kostek gdy t jest du»e, u»ywa si¦ testu dla t = 2, tj. gdy testujemy jednostajno±¢ poszczególnych liczb i parami niezale»no±¢.

Jesli chcemy sprawdzi¢ niezale»no±¢ dla wi¦kszych t to stosujemy inne testy, jak np. test kolizji czy test urodzin. Na czym one polegaj¡ wyja±nimy w nast¦pnym podrozdziale. Wiadomo, »e

• je±li n → ∞ i k jest ustalone to ˜χ2 d¡»y do rozkªadu chi-kwadrat z k− 1 stopniami swobody,

• je±li n → ∞ i k → ∞ tak aby n/k → γ, to T = (˜χ2 − µ)/σ d¡»y do rozkªadu standardowego normalnego. Zalecane jest aby 0 ≤ γ < 5, bo w przeciwnym razie ˜χ2 jest lepiej aproksymowany przez rozkªad chi-kwadrat. 14

Do przyj¦cia lub odrzucenia hipotezy stosujemy test przy k  n, odrzucaj¡c hipotez¡ jesli χ2 jest bardzo maªe lub du»e. 15

Teraz przejdziemy do testów powstaªych na bazie klasycznych zada« kom-binatorycznych rachunku prawdopodobie«stwa.

Test pokerowy Tak jak w te±cie cz¦stotliwo±ci par rozpatrujemy ci¡g liczb y1, y2, . . . , y5n ∈ ¯M, który przy zaªo»eniu hipotezy zerowej, jest realizac¡

ci¡gu zmiennych losowych Y1, Y2, . . . o jednakowym rozkªadzie jednostajnym U( ¯M ). Rozpatrzmy pierwsz¡ pi¡tk¦ Y1, . . . , Y5. Wprowadzamy nast¦puj¡ce wzorce, które s¡ rozs¡dn¡ modykacj¡ klasykacji pokerowych. Chocia» ide¡

byªy wzorce z pokera (patrz zadanie 5.9), ale te wzorce s¡ trudne w imple-mentacji. Deniujemy wi¦c za Knuth'em [23]16

5 ró»nych = wszystkie ró»ne, 4 ró»ne = jedna para,

3 ró»ne = dwie pary lub trójk¦,

14Sprawdzi¢ w ksi¡»kach statystycznych

15Referencje

16w ang wydaniu 1981 sekcja 3.3.2, p. 62

4. TESTOWANIE DOBRYCH WŠASNO‘CI GENERATORA 35