Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.programming > #31103
| Newsgroups | pl.comp.programming |
|---|---|
| Date | 2017-12-18 21:39 -0800 |
| References | <1d92e1fb-113f-4be9-96a7-6dcc1d439fc4@googlegroups.com> <df89446d-9f33-4313-aa65-2ecbe99c2585@googlegroups.com> <b2214f68-1e85-4335-a2c2-69dddbf375f4@googlegroups.com> <7c77eae7-0600-4ebe-9428-783b16fe069d@googlegroups.com> |
| Message-ID | <08871785-d6ca-40a2-bca8-d750fac09cfb@googlegroups.com> (permalink) |
| Subject | Re: jeden generator liczb losowych do testowania drugiego? |
| From | "M.M." <mmarszik@gmail.com> |
On Tuesday, December 19, 2017 at 5:11:43 AM UTC+1, bartekltg wrote: > On Tuesday, December 19, 2017 at 2:24:09 AM UTC+1, M.M. wrote: > > On Tuesday, December 19, 2017 at 12:48:30 AM UTC+1, bartekltg wrote: > > > On Monday, December 18, 2017 at 5:33:04 AM UTC+1, M.M. wrote: > > > > Co by było, gdyby rozkład wzorcowy wygenerować innym generatorem, > > > > > > Powinno być w miarę dobrze, tyle, że to test na to, że oba generatory > > > daj ten sam rozkład, nie na to, że generatory sa dobre! > > Oczywiście, to tak naprawdę test na to, że oba dają ten sam rozkład. > > Można tym też testować ten sam z innym zarodkiem. > > > > > > > Do Twoich celów musiałbyś więc założyć, że jeden z nich jest dobry;-) > > > a to może zostać odebrane jako mętne. > > Tak. > > > > > Pamiętaj, że te testy mają test i chi^2. > > 1) Najpierw jest test urodzinowy. Zliczane jest w kubełkach jak często > > było zero powtórzeń, jedno powtórzenie, dwa... N-1. > > OK > > > 2) Potem jest liczone chi-kwadrat. > > 3) Potem chi-kwadrat podstawiane jest do rozkładu - co w sumie nie jest > > tutaj przydatne. > > Pewien jesteś, że chi^2 z kubełków? A nie liczba trafień podwójnych, > potrójnych... w porównaniu do teoretycznej liczby? O ile rozumiem, właśnie to miałem na myśli. W kubełkach mam właśnie liczbę trafień. Może niepotrzebnie używam tutaj słowa 'kubełek', bo zazwyczaj o kubełkach mówi się gdy zmienną ciągłą dzieli się na przedziały. W zmiennej 'sums' mam liczbę: sums[0] - bez powtórzeń sums[1] - z jednym powtórzeniem sums[N-1] - z N-1 powtórzeniami Potem robię: sum( (sums[i] - e[i])^2 / e[i] ) > To też będzie chi^2, ale kubełkami będzie liczba dni z jednym, > dwoma, trzema, ...k, "wiecej niż k" trafieniami. > k dobrane tak, ze nie ma żadnych zer. Czyli żeby kubełki bliskie zeru połączyć z sobą? Myślę, że dobry pomysł. > Nie wiem, czy tam nie ma jeszcze innego testu, takiego, co > bierze dużo liczb, sortuje i patrzy na rozkład różnic. > Tam też nie powinno być zer. Hmmm formalnie zer nie może być w rozkładzie wzorcowym/teoretycznym. Jeśli jest zero, to mamy: ( wynik_testu - 0 )^2 / 0 Z poissona nigdy zero nie wyjdzie, ale może wyjść 0.001. Jeśli generator akurat trafi jedynkę a nie zero, to mamy: ( 1 - 0.001)^2 / 0.001 = 998 <- rozwali każdy test. > > 4) Ostatecznie jest liczona całka rozkładu (dystrybuanta) od zera do > > chi-kwadrat - wychodzi p-value. > > I test powtarza się wieloktornie i robi chi^2 na rozkład tego p, > powinien być jednostajny. Tego póki co w ogóle nie robiłem. > > > > > Rozumiem, że mówisz o zastąpieniu właśnie tego pierwszego testu? > > > Czy drugiego? > > Chyba pierwszego, bo nie bardzo rozumiem jak można zastąpić drugi. > > W pierwszym teście dwa generatory budują jakiś rozkład, tutaj konkretnie > > rozkład dla testu urodzinowego. W drugim, jeden generator jest traktowany > > tak, jakby był teoretycznie idealny i są liczone powyższe punkty od 2 do 4. > > > Nie wchodzc w szczgoły. Unikałbym pisania, że zakładasz idealność > jakiegoś rozkładu, czy, ze przetestowałeś tak jakiś generator > i jest on dobry. Wspomnij o tym raz w trybie przypuszczającym, > a pisz o tym, ze test stwierdził brak różnic w rozkłądach generowanych > oboma genratorami. W ten sposób nie odstraszysz czytelników;-) Nie chciałem powiedzieć, że wierzę aby generator był doskonały. Po prostu algorytm działa tak, jakby jeden generator był doskonały. W ten sposób chciałem tylko opisać działanie algorytmu. > > https://pl.wikipedia.org/wiki/Test_Birthday_Spacings > > > O, to ten drugi. To o rozkładzie poissona to tylko przybliżenia > dla dłygiego roku;-) O czym masz w referencjach na tej stronie. No tak, ale rok w moim teście, podobnie jak w referencjach, też miał np. 2^24 dni i też nie przechodziło testu. W deiharderze też nie przechodzi jak da się duże m. Gdy porównuję z rozkładem ranluxa, to nagle przechodzi. Coś mi tutaj się nie podoba... > > > > > > > > > Chyba standardowy chi^2 na porównanie wystarczy (ten, gdzie się porównuje > > > do rozkładów brzegowych > > > https://en.wikipedia.org/wiki/Chi-squared_test#Example_chi-squared_test_for_categorical_data > > > ) > > To chyba robię dobrze, bo testy dla dwóch różnych generatorów udają się. > > Eeee, to tak nie działa, to, że dało wynik OK to kiepska przesłanka;-) Ale nie jedyna przesłanka, jeszcze wolfrma i arkusz kalkulacyjny dla kilku przykładów dały te same wyniki. > Chyba też nie robisz dokłądnie tak, bo wtedy byś nie miał problemu > z tym, że jeden generator dał 0 w danym kukbełku, bo dzieli się > przez sumę z obu. Hmmm na wiki jest że dzieli się przez wartość oczekiwaną: https://wikimedia.org/api/rest_v1/media/math/render/svg/f709dc014d7ced59a61000b58cb0ea19ba5926f6 > > > > > > albo tym samym z innym zarodkiem? > > > > > > Bardzo zły pomysł. Ten sam generator dla róznych seedów pewnie ma > > > ten sam rozkład. Niekoniecznie dobry. Nic takim testem nie wykryjesz, > > > poza bardzo złymi generatorami;-) > > Hmmm, muszę spróbować i przemyśleć na spokojnie. > > Jeśli generator G zasedowany s będzie miał nny rozkłąd niż > zaseedowany s', to jest to oczywiście generator zepsuty. > Ale generator G może mieć ten sam rozkład niezależnie od > seede s, a być ujowym generatorem. Tak, to działa tylko w jedną stronę. Jeśli test nie wyjdzie, to przynajmniej jeden z generatorów jest zepsuty. Wnioskowanie w drugą stronę jest ryzykowne. > Weż dobry genrator h i zrób z niego kiepski: > Niech G daje liczbę będącą średnią dwuch odpaleń > generatora h. G nie jest nawet w przybliżeniu jednorodny. > A Twój test przejdzie. Pewnie by przeszedł. > > > To źle dobrane kubełki. > > > Dobór kubełków powinien być dobrany do oczekiwanej liczby > > > pomiarów. > > > > Hmmm ale przy teście urodzinowym ilość kubełków jest zawsze > > równa ilości pierwszych urodzin. > > Nie. Czemu. > > Klasycznie bierzesz np 1024 urodzin i rok na 2^24. > > To daje średnią 16. Masz coś, co z grubsza wygląda jak rozkład > poissona o średniej 16 i ma 1023 punkty. > Rozsądne kubełki to tak 7-25. Pozostałe połączyłbym w jeden > to tego typu testów Odpalę taki test, tamten kod można łatwo dostosować. Z tego co sobie przypominam wyniki, też nie przejdzie, bo różnice były nawet w maksimum rozkładu. > > BTW, moze sie przydać > https://www.jstatsoft.org/article/view/v007i03/tuftests.pdf Wygląda ciekawie, dzięki. > > Mnie się zdaje, że albo źle robię test urodzinowy, albo rozkład > > poissona słabo przybliża rozkład testu urodzinowego. Może trzeba > > wziąć bardzo długi rok (np. miliard dni) i tylko kilka > > najczęstszych kubełków... Nie wiem. > > Tak. Piszą o tym w przypisach artykułu, który wysłałes;-) Ale co tak? Źle robię test, czy rozkład poissona tak źle przybliża Birthday Spacings Test ? Pozdrawiam
Back to pl.comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
jeden generator liczb losowych do testowania drugiego? "M.M." <mmarszik@gmail.com> - 2017-12-17 20:33 -0800
Re: jeden generator liczb losowych do testowania drugiego? "M.M." <mmarszik@gmail.com> - 2017-12-18 08:37 -0800
Re: jeden generator liczb losowych do testowania drugiego? "AK" <nobody@nowhere.net> - 2017-12-20 00:46 +0100
Re: jeden generator liczb losowych do testowania drugiego? "M.M." <mmarszik@gmail.com> - 2017-12-19 16:52 -0800
Re: jeden generator liczb losowych do testowania drugiego? "AK" <nobody@nowhere.net> - 2017-12-21 22:53 +0100
Re: jeden generator liczb losowych do testowania drugiego? "M.M." <mmarszik@gmail.com> - 2017-12-21 15:05 -0800
Re: jeden generator liczb losowych do testowania drugiego? "AK" <nobody@nowhere.net> - 2017-12-22 09:55 +0100
Re: jeden generator liczb losowych do testowania drugiego? bartekltg <bartekltg@gmail.com> - 2017-12-18 15:48 -0800
Re: jeden generator liczb losowych do testowania drugiego? "M.M." <mmarszik@gmail.com> - 2017-12-18 17:24 -0800
Re: jeden generator liczb losowych do testowania drugiego? bartekltg <bartekltg@gmail.com> - 2017-12-18 20:11 -0800
Re: jeden generator liczb losowych do testowania drugiego? "M.M." <mmarszik@gmail.com> - 2017-12-18 21:39 -0800
Re: jeden generator liczb losowych do testowania drugiego? "M.M." <mmarszik@gmail.com> - 2017-12-18 22:22 -0800
Re: jeden generator liczb losowych do testowania drugiego? "M.M." <mmarszik@gmail.com> - 2017-12-19 23:30 -0800
Re: jeden generator liczb losowych do testowania drugiego? "M.M." <mmarszik@gmail.com> - 2017-12-20 10:40 -0800
Re: jeden generator liczb losowych do testowania drugiego? "M.M." <mmarszik@gmail.com> - 2017-12-20 15:46 -0800
Re: jeden generator liczb losowych do testowania drugiego? "M.M." <mmarszik@gmail.com> - 2017-12-21 00:25 -0800
Re: jeden generator liczb losowych do testowania drugiego? "M.M." <mmarszik@gmail.com> - 2017-12-21 11:33 -0800
csiph-web