eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingjeden generator liczb losowych do testowania drugiego? › Re: jeden generator liczb losowych do testowania drugiego?
  • 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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


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


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: