-
X-Received: by 10.31.48.213 with SMTP id w204mr209715vkw.12.1513661963774; Mon, 18
Dec 2017 21:39:23 -0800 (PST)
X-Received: by 10.31.48.213 with SMTP id w204mr209715vkw.12.1513661963774; Mon, 18
Dec 2017 21:39:23 -0800 (PST)
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit
0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.
iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!m31no37
08311qtf.0!news-out.google.com!t48ni1515qtc.1!nntp.google.com!m31no3708307qtf.0
!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Mon, 18 Dec 2017 21:39:23 -0800 (PST)
In-Reply-To: <7...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=77.254.46.188;
posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 77.254.46.188
References: <1...@g...com>
<d...@g...com>
<b...@g...com>
<7...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <0...@g...com>
Subject: Re: jeden generator liczb losowych do testowania drugiego?
From: "M.M." <m...@g...com>
Injection-Date: Tue, 19 Dec 2017 05:39:23 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 253
Xref: news-archive.icm.edu.pl pl.comp.programming:211927
[ ukryj nagłówki ]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#Examp
le_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/tufte
sts.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
Następne wpisy z tego wątku
- 19.12.17 07:22 M.M.
- 20.12.17 00:46 AK
- 20.12.17 01:52 M.M.
- 20.12.17 08:30 M.M.
- 20.12.17 19:40 M.M.
- 21.12.17 00:46 M.M.
- 21.12.17 09:25 M.M.
- 21.12.17 20:33 M.M.
- 21.12.17 22:53 AK
- 22.12.17 00:05 M.M.
- 22.12.17 09:55 AK
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-03-03 a Ty jak się zachowasz w godzinie próby?
- 2025-03-03 nie naprawiam więcej telewizorów
- 2025-03-03 Białystok => Gen AI Engineer <=
- 2025-03-03 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-03 Olsztyn => Sales Specialist <=
- 2025-03-03 Gdy ministrowie sa golodupcami
- 2025-03-03 Pruszków => Specjalista ds. public relations <=
- 2025-03-03 Białystok => System Architect (Java background) <=
- 2025-03-03 Białystok => System Architect (background deweloperski w Java) <=
- 2025-03-03 China-Kraków => Senior PHP Symfony Developer <=
- 2025-03-03 China-Kraków => Senior PHP Symfony Developer <=
- 2025-03-03 Warszawa => Data Engineer (Tech Lead) <=
- 2025-03-03 Gliwice => Ekspert IT (obszar systemów sieciowych) <=
- 2025-03-03 Gliwice => IT Expert (Network Systems area) <=
- 2025-03-03 Mińsk Mazowiecki => Area Sales Manager OZE <=