Dalam dokumen ini , yang berkaitan dengan perintah "set seed", orang-orang Stata mendiskusikan masalah yang terkait dengan pengaturan benih ketika menghasilkan angka pseudo-acak.
Yang penting "jangan" adalah "jangan gunakan secara berurutan urutan bilangan asli sebagai biji, karena ini memiliki pola dan membahayakan keacakan semu".
Satu-satunya "do" bercanda seperempat bercanda , adalah untuk menetapkan hanya satu benih selama masa hidup Anda , dan kemudian merekam "keadaan" dari proses yang dihasilkan pada akhir setiap percobaan, sehingga percobaan berikutnya akan berlanjut pada titik dimana proses telah berhenti.
Jelas, saran di atas tergantung pada jumlah yang diharapkan dari angka pseudo-acak yang akan dihasilkan dalam penelitiannya seumur hidup. Mungkin twister Mersenne akan memenuhi kebutuhan seumur hidup banyak peneliti ...
Sekarang, saya tidak terlalu berpengalaman mengenai PRNG dalam teori atau dalam praktik, jadi saya tidak dapat berdebat tentang saran-saran ini - mereka harus terbukti valid atau tidak valid dengan alasan teoretis dan statistik matematika yang keras.
Jadi, pertanyaan saya adalah
1) Dapatkah Anda membantu menjelaskan atau membatalkan saran yang diberikan di atas, atau menunjuk ke referensi yang berkaitan dengan masalah seperti itu?
2) Dapatkah Anda memberikan referensi yang menawarkan "praktik terbaik" dalam menetapkan benih?
3) Bagaimana Anda melakukannya dalam pekerjaan Anda sendiri, dan mengapa?
Utas terkait (meskipun jauh lebih fokus) adalah
Menetapkan seed sebelum setiap blok kode atau sekali per proyek?
Saya merasa ini mungkin harus menjadi komunitas wiki, para mod harap putuskan.
sumber
Jawaban:
Untuk apa nilainya, ini didasarkan pada pengalaman dan bukan pada analisis matematika:
Saya pikir bahwa kecuali Anda melakukan kriptografi, di mana pola-pola halus bisa sangat buruk, benih mana yang Anda tetapkan tidak membuat perbedaan, selama Anda menggunakan PRNG baik yang diterima seperti Mersenne Twister dan bukan yang lama seperti generator congruential linear. Sejauh yang saya tahu, tidak ada cara bahwa Anda dapat memberitahu apa nomor acak akan keluar dari benih yang diberikan tanpa benar-benar berjalan PRNG yang (dengan asumsi itu satu yang layak), jika tidak, anda hanya akan mengambil bahwa algoritma baru dan penggunaan yang sebagai Anda generator nomor acak.
Perspektif lain: apakah Anda berpikir bahwa ada pola halus dalam simulasi Monte-Carlo Anda yang kemungkinan besarnya lebih besar dari semua kesalahan pengukuran, perancu, dan kesalahan diperkenalkan oleh asumsi pemodelan lain?
Saya hanya akan menggunakan satu seed acak di awal untuk reproduktifitas, dan tidak menetapkan satu sebelum setiap panggilan, kecuali saya melakukan debugging, di mana saya perlu memastikan dua algoritma yang berbeda menghasilkan hasil yang sama untuk data input yang sama persis.
Penafian: jika Anda mensimulasikan reaktor nuklir atau sistem kendali rudal atau prakiraan cuaca, sebaiknya berkonsultasi dengan pakar domain, saya tidak bertanggung jawab dalam kasus itu.
sumber