Referencje i najlepsze praktyki dotyczące ustawiania nasion w pseudolosowym generowaniu liczb

11

W tym dokumencie , który dotyczy polecenia „ustaw ziarno”, ludzie Stata omawiają kwestie związane z ustawieniem nasion podczas generowania liczb pseudolosowych.

Znamienne „nie” to „nie używaj szeregowo liczb naturalnych jako nasion, ponieważ ma to wzór i zagraża pseudolosowości”.

Jedyną jedną czwartą żartobliwie godną uwagi „do” jest ustawienie tylko jednego ziarna w trakcie swojego życia , a następnie zapisanie „stanu” wygenerowanego procesu na końcu każdego eksperymentu, aby następny eksperyment był kontynuowany w punkcie gdzie proces się zatrzymał.

Oczywiście powyższa rada zależy od oczekiwanej liczby pseudolosowych liczb, które wygeneruje się w trakcie jego życia badawczego. Być może twister Mersenne zaspokoiłby potrzeby wielu naukowców na całe życie ...

Teraz nie mam dużego doświadczenia w zakresie PRNG w teorii ani w praktyce, więc nie mogę kłócić się o te sugestie - powinny zostać udowodnione, że są ważne lub nieważne na podstawie teoretycznej i twardych statystyk matematycznych.

Więc moje pytania są

1) Czy możesz pomóc w wyjaśnieniu lub unieważnieniu powyższych porad lub wskazać odniesienie do takich problemów?

2) Czy możesz podać referencje, które oferują „najlepsze praktyki” w ustawianiu nasion?

3) Jak sobie z tym radzisz we własnej pracy i dlaczego?

mnPRNGmnmn

Powiązany wątek (choć o wiele bardziej skoncentrowany) to
Ustaw ziarno przed każdym blokiem kodu lub raz na projekt?

Mam wrażenie, że to może być wiki społeczności, mody, proszę, zdecyduj o tym.

Alecos Papadopoulos
źródło
4
Ta strona podręcznika Stata zawiera ważne domniemane założenia dotyczące tego, dlaczego używa się nasion. Głównym powodem, dla którego używam nasion (w moich postach tutaj na CV) jest tworzenie powtarzalnych przykładów. Aby zademonstrować, że nie bawiłem się ziarnem, dopóki mój przykład nie przypadł do gustu (!), (Prawie) zawsze używam tego samego ziarna. Jest to tak rażąco sprzeczne ze wskazówkami Staty, ponieważ mam inny cel, niż muszą mieć na myśli (co jest nieokreślone). Morał polega na tym, że najlepsze praktyki zależą od celu.
whuber
@whuber Mam wrażenie, że rada podana w dokumencie, o którym wspominam, ma na celu zachowanie zarówno „losowości”, jak i odtwarzalności zastosowanej serii (poprzez zapis „stanu” procesu, jak mówią). Cele te wydają się warte realizacji w każdym zestawie, bez względu na cel badań, nie?
Alecos Papadopoulos
1
Pewnie, że są tego warte - ale to nie usprawiedliwia przekształcenia ich w określone „dos” i „nie” wyrażone w tej stronie podręcznika. Problem z takim uncategorical dicta jest to, że inni - tacy jak adwokaci - będzie prowadził do myślenia, że każdy sprzeczna praktyka jest z natury złe, bez względu na cel lub okoliczności. Ważne jest, aby pozostawić miejsce na osąd w praktyce statystycznej! W szczególności nie pomylmy zaleceń dotyczących korzystania z oprogramowania z „najlepszymi praktykami”.
whuber
@whuber Fakt, że użyłem jako „bodźca” dokumentu powiązanego z konkretnym oprogramowaniem, nie powoduje, że moje pytanie dotyczy „zaleceń dotyczących korzystania z oprogramowania”. Zadane pytania dotyczą oczywiście polityk wykorzystywanych przez badaczy przy prowadzeniu badań statystycznych , więc nie widzę tu żadnych wątpliwości.
Alecos Papadopoulos
3
Zakładając, że twój PRNG jest dobry, dlaczego ustawianie nasion za pomocą wzoru miałoby jakąkolwiek różnicę, czy nie o to chodzi w PRNG?
purple51

Odpowiedzi:

3

Co jest warte, jest to oparte na doświadczeniu, a nie na analizie matematycznej:

Myślę, że chyba, że ​​wykonujesz kryptografię, w której subtelne wzorce mogą być bardzo złe, ustawione ziarno nie robi różnicy, o ile korzystasz z akceptowanych dobrych PRNG, takich jak Mersenne Twister, a nie starych, takich jak liniowe generatory kongruencjalne. O ile mi wiadomo, nie ma możliwości, że można powiedzieć, jaki numer losowy wyjdzie z danego materiału siewnego bez faktycznie uruchamiania PRNG (zakładając, że jest to przyzwoity jeden), w przeciwnym razie po prostu przyjąć, że nowy algorytm i wykorzystania , które jako swoje generator liczb losowych.

Inna perspektywa: czy uważasz, że jakiekolwiek subtelne wzorce w symulacji Monte-Carlo będą prawdopodobnie miały większą wielkość niż wszystkie błędy pomiaru, pomyłki i błędy wprowadzane przez inne założenia modelowania?

Po prostu użyłbym jednego losowego materiału siewnego na początku dla odtwarzalności i nie ustawiałem jednego przed każdym wywołaniem, chyba że robię debugowanie, w którym muszę upewnić się, że dwa różne algorytmy dają ten sam wynik dla dokładnie tych samych danych wejściowych.

Uwaga: jeśli symulujesz reaktory jądrowe lub systemy kontroli rakiet lub prognozę pogody, najlepiej skonsultować się z ekspertami w tej dziedzinie, nie biorę w tym przypadku odpowiedzialności.

fioletowy51
źródło