Bagaimana saya dapat secara manual menghasilkan nomor acak dari distribusi yang diberikan, seperti misalnya, 10 realisasi dari distribusi normal standar?
30
Bagaimana saya dapat secara manual menghasilkan nomor acak dari distribusi yang diberikan, seperti misalnya, 10 realisasi dari distribusi normal standar?
Jawaban:
Jika "secara manual" termasuk "mekanis" maka Anda memiliki banyak opsi yang tersedia untuk Anda. Untuk mensimulasikan variabel Bernoulli dengan setengah probabilitas, kita dapat melempar koin: tetapi jika kita ingin memvariasikan parameter probabilitas Bernoulli atau variabel binomial ke nilai selain p = 0,5 , jarum Georges-Louis Leclerc, Comte de Buffon akan izinkan kami untuk melakukannya. Untuk mensimulasikan distribusi seragam diskrit pada { 1 , 2 , 3 , 4 , 5 , 6 } untuk ekor, 1 untuk kepala. Untuk mensimulasikan distribusi geometris kita dapat menghitung berapa banyak lemparan koin yang dibutuhkan sebelum kita mendapatkan kepala. Untuk mensimulasikan distribusi binomial, kita dapat melempar koin kita n kali (atau hanya melemparkankoin n ) dan menghitung kepala. The"quincunx" atau "mesin kacang" atau "kotak Galton"adalah alternatif yang lebih kinetik - mengapa tidakmenetapkan satu ke dalam tindakan dan lihat sendiri? Sepertinyatidak ada yang namanya "koin tertimbang"0 1 n n p=0.5 {1,2,3,4,5,6} kita menggulung dadu enam sisi. Penggemar permainan peran akan menghadapi dadu yang lebih eksotis , misalnya dadu tetrahedral untuk mencicipi secara seragam dari {1,2,3,4} , sementara dengan roda pemintal atau roulette orang bisa melangkah lebih jauh lagi. ( Kredit gambar )
Apakah kita harus marah untuk menghasilkan angka acak dengan cara ini hari ini, ketika itu hanya satu perintah pada konsol komputer - atau, jika kita memiliki tabel nomor acak yang tersedia, satu perayapan ke sudut-sudut yang lebih berdebu dari rak buku? Yah mungkin, meskipun ada sesuatu yang menyenangkan mengenai percobaan fisik. Tetapi bagi orang yang bekerja sebelum Zaman Komputer, memang sebelum tersedia tabel angka acak skala besar (yang lebih belakangan), mensimulasikan variabel acak secara manual memiliki kepentingan praktis yang lebih praktis. Ketika Buffon menyelidiki paradoks St. Petersburg- permainan lempar koin yang terkenal di mana jumlah pemain menang dua kali lipat setiap kali kepala dilemparkan, pemain kalah pada ekor pertama, dan yang diharapkan pembayarannya kontra-intuitif tak terbatas - dia perlu mensimulasikan distribusi geometris dengan . Untuk melakukannya, tampaknya ia mempekerjakan seorang anak untuk melempar koin untuk mensimulasikan 2048 permainan dari permainan St Petersburg, merekam berapa banyak lemparan sebelum permainan berakhir. Distribusi geometrik yang disimulasikan ini direproduksi dalam Stigler (1991) :p=0.5
Dalam esai yang sama di mana ia menerbitkan penyelidikan empiris ini pada paradoks St. Petersburg, Buffon juga memperkenalkan " jarum Buffon " yang terkenal itu . Jika sebuah pesawat dibagi menjadi potongan-potongan dengan garis paralel jarak terpisah, dan jarum dengan panjang ld jatuh ke atasnya, probabilitas jarum melewati salah satu garis adalah 2 ll≤d .2lπd
Jarum Buffon, oleh karena itu, dapat digunakan untuk mensimulasikan variabel acak atauX∼BinomialX∼Bernoulli(2lπd) , dan kita dapat menyesuaikan probabilitas keberhasilan dengan mengubah panjang jarum kita atau (mungkin lebih nyaman) jarak di mana kita mengatur garis. Alternatif penggunaan jarum Buffon adalah sebagai cara yang sangat tidak efisien untuk menemukan perkiraan probabilitas untukX∼Binomial(n,2lπd) . Gambar (kredit) menunjukkan 17 batang korek api, di antaranya 11 melewati batas. Ketika jarak antara garis aturan ditetapkan sama dengan panjang batang korek api, seperti di sini, proporsi yang diharapkan dari persimpangan korek api adalah 2π dan karenanya kita dapat memperkirakan π sebagai dua kali timbal balik dari fraksi yang diamati: di sini kita mendapatkan π =2⋅172π π^ . Pada tahun 1901 Mario Lazzarini mengaku telah melakukan percobaan menggunakan 2,5 jarum cm dengan garis 3 cm, dan setelah 3408 kali lemparan diperoleh π =355π^=2⋅1711≈3.1 . Ini adalah rasional keπ yang terkenal, akurat hingga enam desimal. Badger (1994) memberikan bukti yang meyakinkan bahwa ini adalah penipuan, tidak terkecuali bahwa untuk menjadi 95% percaya diri dari enam tempat desimal akurasi menggunakan peralatan Lazzarini, 134 triliun jarum yang harus dilarutkan dengan sabar harus dilempar! Tentunya jarum Buffon lebih berguna sebagai generator angka acak daripada sebagai metode untuk memperkirakanπ.π^=355113 π π
Generator kami sejauh ini sangat berbeda. Bagaimana jika kita ingin mensimulasikan distribusi normal? Salah satu opsi adalah untuk mendapatkan angka acak dan menggunakannya untuk membentuk perkiraan diskrit yang baik untuk distribusi yang seragam , kemudian melakukan beberapa perhitungan untuk mengubahnya menjadi penyimpangan normal acak. Roda pemintal atau roulette dapat memberikan angka desimal dari nol hingga sembilan; sebuah dadu dapat menghasilkan digit biner; jika kemampuan aritmatika kita dapat mengatasi basis yang lebih lucu, bahkan satu set dadu standar akan berhasil. Jawaban lain telah membahas pendekatan berbasis transformasi semacam ini secara lebih rinci; Saya menunda diskusi lebih lanjut sampai akhir.[ 0 , 1 ]
Pada akhir abad kesembilan belas utilitas dari distribusi normal sudah terkenal, sehingga ada ahli statistik yang ingin mensimulasikan penyimpangan normal acak. Tak perlu dikatakan, perhitungan tangan yang panjang tidak akan cocok kecuali untuk mengatur proses simulasi di tempat pertama. Setelah itu ditetapkan, generasi bilangan acak harus relatif cepat dan mudah. Stigler (1991) mendaftar metode yang digunakan oleh tiga ahli statistik era ini. Semua meneliti teknik penghalusan: penyimpangan normal acak sangat menarik, misalnya untuk mensimulasikan kesalahan pengukuran yang perlu dihaluskan.
Ahli statistik Amerika yang luar biasa, Erastus Lyman De Forest , tertarik untuk merapikan tabel kehidupan, dan menghadapi masalah yang membutuhkan simulasi nilai absolut dari penyimpangan normal. Dalam apa yang akan membuktikan tema berjalan, De Forest benar-benar mengambil sampel dari distribusi setengah normal . Selain itu, daripada menggunakan standar deviasi satu ( kita sebut "standar"), De Forest menginginkan "kemungkinan kesalahan" (deviasi median) salah satunya. Ini adalah formulir yang diberikan dalamtabel "Probabilitas Kesalahan"dalam lampiran "Manual Astronomi Bulat dan Praktis, Volume II" oleh William Chauvenet . Dari tabel ini, De Forest menginterpolasi kuantil dari distribusi setengah normal, dari p = 0,005 ke p =Z∼N(0,12) p=0.005 , yang ia anggap sebagai "kesalahan frekuensi yang sama".p=0.995
Jika Anda ingin mensimulasikan distribusi normal, mengikuti De Forest, Anda dapat mencetak tabel ini dan memotongnya. De Forest (1876) menulis bahwa kesalahan "telah ditorehkan pada 100 bit kartu-papan dengan ukuran yang sama, yang diguncang dalam kotak dan semua ditarik satu per satu".
Astronom dan ahli meteorologi Sir George Howard Darwin (putra naturalis Charles) melakukan hal yang berbeda, dengan mengembangkan apa yang disebutnya "roulette" untuk menghasilkan penyimpangan normal yang acak. Darwin (1877) menjelaskan bagaimana:
"Indeks" harus dibaca di sini sebagai "pointer" atau "indikator" (cf "jari telunjuk"). Stigler menunjukkan bahwa Darwin, seperti De Forest, menggunakan distribusi kumulatif setengah normal di sekitar disk. Selanjutnya menggunakan koin untuk melampirkan tanda secara acak menjadikan ini distribusi normal penuh. Stigler mencatat bahwa tidak jelas seberapa halus skala itu lulus, tetapi menganggap instruksi untuk secara manual menangkap putaran disk adalah "untuk mengurangi bias potensial terhadap satu bagian disk dan untuk mempercepat prosedur".
Sir Francis Galton , yang kebetulan setengah sepupu dari Charles Darwin, telah disebutkan sehubungan dengan quincunx-nya. Sementara ini secara mekanis mensimulasikan distribusi binomial yang, oleh teorema De Moivre-Laplace memiliki kemiripan yang mencolok dengan distribusi normal (dan kadang-kadang digunakan sebagai alat bantu pengajaran untuk topik itu), Galton sebenarnya menghasilkan skema yang jauh lebih rumit ketika ia ingin sampel dari distribusi normal. Bahkan lebih luar biasa daripada contoh-contoh tidak konvensional di bagian atas jawaban ini, Galton mengembangkan dadu yang terdistribusi normal- atau lebih tepatnya, satu set dadu yang menghasilkan perkiraan diskrit yang sangat baik untuk distribusi normal dengan deviasi median. Dadu ini, yang berasal dari tahun 1890, disimpan di Koleksi Galton di University College London.
Dalam sebuah artikel tahun 1890 di Nature Galton menulis bahwa:
Laboratorium untuk Percobaan Statistik Matematika Raazesh Sainudiin termasuk proyek siswa dari University of Canterbury, NZ, yang mereproduksi dadu Galton . Proyek ini mencakup penyelidikan empiris dari menggulirkan dadu berkali-kali (termasuk CDF empiris yang terlihat meyakinkan "normal") dan adaptasi skor dadu sehingga mereka mengikuti distribusi normal standar. Menggunakan skor asli Galton, ada juga grafik dari distribusi normal yang didiskritisasi yang benar-benar diikuti oleh skor dadu.
Dalam skala besar, jika Anda siap untuk meregangkan "mekanis" ke listrik, perhatikan bahwa epik RAND A Juta Digit Acak dengan 100.000 Normal Deviate didasarkan pada semacam simulasi elektronik dari roda roulette. Dari laporan teknis (oleh George W. Brown, awalnya Juni 1949) kami menemukan:
Referensi
Badger, L. (1994). " Perkiraan Keberuntungan Lazzarini dari π ". Majalah Matematika . Asosiasi Matematika Amerika. 67 (2): 83–91.
Darwin, GH (1877). " Pada ukuran yang keliru dari jumlah variabel, dan pada perlakuan pengamatan meteorologis. " Philosophical Magazine , 4 (22), 1–14
De Forest, EL (1876). Interpolasi dan penyesuaian seri . Tuttle, Morehouse dan Taylor, New Haven, Conn.
Galton, F. (1890). "Dadu untuk percobaan statistik". Alam , 42 , 13-14
Stigler, SM (1991). "Simulasi stokastik di abad kesembilan belas". Ilmu Statistik , 6 (1), 89-97.
sumber
Sebagai contoh, pada OS Linux saya, saya dapat memeriksa
Menggunakan CLT untuk memperkirakan normalitas tentu saja bukan metode yang akan saya sarankan sebagai (1) Anda masih perlu variasi lain untuk memberi makan rata-rata, jadi mungkin juga menggunakan seragam dalam algoritma Box-Müller, dan (2) akurasi tumbuh cukup lambat dengan jumlah simulasi. Terutama jika menggunakan variabel acak diskrit seperti hasil dadu, bahkan dengan lebih dari enam wajah . Mengutip dari Thomas et al. (2007), survei tentang pro dan kontra dari generator acak Gaussian:
Berikut ini adalah eksperimen cepat untuk menggambarkan masalahnya: Saya menghasilkan 100 kali rata-rata 30 hasil cetakan:
dies=apply(matrix(sample(1:6,30*100,rep=TRUE),ncol=30),1,mean)
kemudian menormalkan rata-rata tersebut menjadi nol rata-rata satu varian
stdies=(dies-3.5)/sqrt(35/12/30)
dan melihat kecocokan normal [atau ketiadaan] sampel ini:
dies
76/30
122/30
kecocokannya sama baiknya dengan yang diharapkan untuk sampel normal ukuran 200 (hanya plot yang lain untuk sampel normal yang sebenarnya,
norma=rnorm(100)
):sebagaimana ditunjukkan lebih lanjut oleh tes Kolmogorov-Smirnov:
sumber
Ini tidak tepat - acak, tetapi harus cukup dekat, karena Anda tampaknya ingin percobaan kasar.
Gunakan ponsel Anda untuk mengatur kronometer. Setelah 10 detik yang baik, hentikan (Semakin Anda menunggu, semakin Anda mendekati hasil yang benar-benar "acak", tetapi 10 detik baik-baik saja). Ambil digit terakhir (misalnya, 10,67 detik akan memberi Anda 67). Terapkan tabel persentil untuk distribusi normal. Dalam contoh ini, Anda hanya perlu mencari 0,67 dan Anda akan menemukan nomornya. Dalam hal ini, nilai Anda sekitar 0,45. Ini tidak sepenuhnya tepat, tetapi itu akan memberi Anda estimasi yang kuat.
Jika Anda menggulung di bawah 50, lakukan saja 100- [Hasil Anda] dan gunakan tabel. Hasil Anda akan sama, dengan tanda minus, karena simetri N (0,1).
sumber
Mari kita melempar koin yang tidak biasn waktu. Mulai dari nol, kami hitung+ 1 jika kepala, - 1 jika ekor. Setelahn koin membalik, kita membagi konter dengan n--√ . Menggunakan teorema limit pusat , jikan cukup besar, maka kita harus memiliki "perkiraan realisasi" dari Gaussian yang dinormalisasi N( 0 , 1 ) .
Mengapa? Membiarkan
menjadi variabel acak Bernoulli denganP ( Xk= ± 1 ) = 12 . Karenanya,
MembiarkanY: = X1+ X2+ ⋯ + Xn . Karenanya,
Normalisasi,
kami mendapatkan variabel acak dengan varian unit
sumber
Perlu dicatat bahwa setelah Anda dapat menghasilkan seragam (0,1), Anda dapat menghasilkan variabel acak apa pun yang dapat dihitung dengan invers cdf dengan hanya memasukkan variabel acak seragam ke dalam CDF terbalik.
Jadi bagaimana mungkin seseorang menghitung seragam (0,1) secara manual? Nah, seperti yang disebutkan oleh @Silverfish, ada berbagai dadu yang digunakan oleh pemain RPG tradisional. Salah satunya adalah mati bersisi sepuluh. Dengan asumsi ini adalah die fair, kita sekarang dapat menghasilkan seragam diskrit (0, 9).
We can also use this uniform(0,9) to represent a single digit of a random variable. So if we use two dice, we get a uniform random variable that can take on values0.01,0.02,...,0.99,1.00 . With three dice, we can get a uniform distribution on 0.001,0.002,...,0.999,1.000 .
So we can get very close to a continuous uniform(0,1) by approximating it with a finely gridded discrete uniform distribution with a few 10 sided dice. This can then be plugged into an inverse CDF to produce the random variable of interest.
sumber