Örneğin, standart normal dağıtımdan 10 gerçekleştirme gibi, belirli bir dağıtımdan rastgele bir sayıyı manuel olarak nasıl oluşturabilirim?
Örneğin, standart normal dağıtımdan 10 gerçekleştirme gibi, belirli bir dağıtımdan rastgele bir sayıyı manuel olarak nasıl oluşturabilirim?
Yanıtlar:
"El ile" "mekanik" içeriyorsa, size sunulan birçok seçenek vardır. Olasılık yarısı olan bir Bernoulli değişkenini simüle etmek için yazı tura atabiliriz: kuyruklar için , kafalar için 1 . Geometrik bir dağılımı simüle etmek için, kafaları almadan önce kaç tane para fırlatıcısının gerekli olduğunu sayabiliriz. Bir binom dağılımını simüle etmek için, bizim para atmak olabilir n kez (veya basitçe atmak n madeni paralar) ve kafaları saymak. "Beş noktanın düzeni" ya da "fasulye makinesi" veya "Galton kutusu" neden - Daha kinetik alternatif olan eyleme birini ayarlayın ve kendiniz görün ? Görünüşe göre "ağırlıklı para" diye bir şey yokfakat eğer Bernoulli veya binom değişkenimizin olasılık parametresini dışındaki değerlere değiştirmek istiyorsak , Georges-Louis Leclerc, Comte de Buffon iğnesi bunu yapmamıza izin verecektir. { 1 , 2 , 3 , 4 , 5 , 6 } ' daki ayrık düzgün dağılımı simüle etmek için altı taraflı bir kalıbı yuvarlıyoruz. Rol yapma oyunları hayranları daha egzotik bir zarla karşılaşacaklar , örneğin { 1 , 2 , 3 , 4 }, bir eğirici veya rulet tekerleği ile bir kişi daha ileri gidebilir. ( Resim kredisi )
Bugün bu şekilde rasgele sayılar üretmemiz gerekecek, bir bilgisayar konsolunda sadece bir komut uzakta olduğunda veya uygun bir rastgele sayılar tablosu varsa, kitaplığın daha tozlu köşelerine bir kez basacak mıyız? Belki de, fiziksel bir deneyle ilgili hoş bir dokunsal şey olsa da. Ancak, Bilgisayar Çağından önce çalışan, gerçekten yaygın olarak bulunan büyük ölçekli rasgele sayı tablolarından (daha sonraları) önce çalışan insanlar için, rastgele değişkenleri manuel olarak simüle etmek daha pratik bir öneme sahipti. Buffon, St. Petersburg paradoksunu araştırdığında- Bir oyuncu kafaları her attığında kazandığı miktarın ikiye katlandığı, oyuncu ilk kuyruklarda kaybeder ve beklenen kazancı karşı sezgisel olarak sonsuz olan ünlü jeton atma oyunu - ile geometrik dağılımını simüle etmesi gerekiyordu = 0.5 . Bunu yapmak için, 2048 oyununu simüle etmek için bir çocuğa para verdi, oyun bitmeden önce kaç tane fırlattığını kaydetti. Bu simüle geometrik dağılım Stigler'de (1991) çoğaltılmıştır :
Tosses Frequency
1 1061
2 494
3 232
4 137
5 56
6 29
7 25
8 8
9 6
St. Petersburg paradoksuna bu ampirik araştırmayı yayınladığı makalede, Buffon ayrıca ünlü " Buffon iğnesini " tanıttı . Düzlemsel bir paralel çizgiler bir mesafe ile şerit halinde bölündüğü takdirde ayrı ve uzunluk bir iğne l ≤ d bunun üzerine damlatılır, iğne hatlarının bir sahasına olasılığıdır 2 l .
Buffon'la iğne bu nedenle, bir rastgele değişken simüle etmek için kullanılabilir veyaX∼Binom(n,2l, ve belki de daha uygun bir eden iğne veya uzunlukları () 'in çizgileri kural ettiği mesafe değiştirilmesiyle başarı olasılığını ayarlayabilir. Buffon iğnelerin kullanılmasına bir alternatif için olasılık yaklaşımının bulunması için bir müthiş verimsiz bir şekilde gibidirtt. Resim (kredi), 11 çizgiyi geçen 17 kibrit çöpü gösterir. Çizilen çizgiler arasındaki mesafe, kibrit çöpünün uzunluğuna eşit olarak ayarlandığında, burada olduğu gibi, kibrit çöplerinin beklenen oranı2'dir. ve dolayısıyla tahmin edebilir π gözlenen fraksiyonunun iki karşılıklı olarak: burada elde π =2⋅17. 3408 fırlatır elde sonra 1901 Mario Lazzarini 3 cm aralıklı çizgilerle 2.5 cm iğneler kullanılarak deney gerçekleştirilmiştir iddia ve π =355 . Bu,dec, altı ondalık basamağa kadar kesin olarakbilinen bir rasyoneldir. Porsuk (1994), bunun sahte olduğu konusunda ikna edici kanıtlar sunmakta,Lazzarini'nin aparatını kullanarak altı ondalık kesinlikten% 95 emin olacağına inanıyor, 134 trilyon iğneye atılmalı! Kesinlikle Buffon'un iğnesi,πtahmin yönteminden daha rasgele bir sayı üreteci olarak daha kullanışlıdır.
Jeneratörlerimiz şimdiye kadar hayal kırıklığı yarattı. Ya normal bir dağılımı simüle etmek istiyorsak? Bir seçenek rastgele rakamlar elde etmek ve onları üzerindeki düzgün bir dağılıma iyi ayrık yaklaşımlar oluşturmak için kullanmak , ardından bunları rastgele normal sapmalara dönüştürmek için bazı hesaplamaları yapmaktır. Bir döndürücü veya rulet tekerleği sıfırdan dokuza kadar ondalık basamak verebilir; bir zar ikili rakamlar üretebilir; Eğer aritmetik becerilerimiz daha eğlenceli bir temelle başa çıkabiliyorsa, standart bir zar seti bile yapardı. Diğer cevaplar bu dönüşüme dayalı yaklaşımları daha ayrıntılı olarak ele almıştır; Bunun sonuna kadar daha fazla tartışmayı erteliyorum.
On dokuzuncu yüzyılın sonlarına doğru normal dağılımın faydası iyi biliniyordu ve bu nedenle rastgele normal sapmaları taklit etmek isteyen istatistikçiler vardı. Söylemeye gerek yok, uzun el hesaplamaları, ilk önce simülasyon sürecinin kurulması dışında uygun olmazdı. Bu bir kez kurulduktan sonra rasgele sayıların üretilmesi nispeten hızlı ve kolay olmak zorundaydı. Stigler (1991) bu dönemin üç istatistikçisinin kullandığı yöntemleri listeler. Hepsi pürüzsüzleştirme teknikleri araştırıyordu: rastgele normal sapmalar, örneğin düzeltilmesi gereken ölçüm hatasını simüle etmek için açık bir ilgi alanıydı.
Olağanüstü Amerikalı istatistikçi Erastus Lyman De Forest , yaşam tablolarını düzeltmekle ilgilendi ve normal sapmaların mutlak değerlerinin simülasyonunu gerektiren bir sorunla karşılaştı. Çalışan bir temayı kanıtlayacak olan şeyde, De Forest gerçekten yarı normal bir dağıtımdan örnek alıyordu . Dahası, bir standart sapma kullanmak yerine ( biz "standart" olarak adlandırıyoruz), De Forest bir "olası hata" (medyan sapma) istedi. Bu, “Küresel ve Pratik Astronomi El Kitabı, Cilt II” ekindeki "Hataların Olasılığı" tablosunda verilen formdu.William Chauvenet . Bu tablodan De Forest, yarı-normal dağılımın miktarlarını, ile p = 0.995 arasında “eşit frekansta hatalar” olarak kabul etti.
Normal dağılımı simüle etmek istiyorsanız, De Forest'ı takip ederek bu tabloyu yazdırabilir ve kesebilirsiniz. De Forest (1876) , hataların "bir kutuda sallanan ve hepsinin birer birer çizildiği 100 bitlik bir karta yazıldığı" yazdığını yazdı .
Gökbilimci ve meteorolog Sir George Howard Darwin (doğa bilimci Charles'ın oğlu) rastgele normal sapmalar oluşturmak için "rulet" dediği şeyi geliştirerek, şeylere farklı bir dönüş yaptı. Darwin (1877) nasıl yapılacağını açıklar:
Kartın bir dairesel parçası bitirme işaretli böylece, radyal bitirdi oldu 720sabit bir yarıçapı uzak derece. Kart, merkezini sabit bir endekse yakın döndürmek için yapıldı. Daha sonra birkaç kez döndürüldü ve durdurulduğunda dizinin karşısındaki sayı okundu. [Darwin bir dipnotta ekliyor: Diski o kadar hızlı döndüğünde diskin durdurulması, mezuniyetin görünmemesi yerine, ilerlemesini sağlamaktan daha iyidir.] Mezuniyetin doğasından elde edilen sayılar tam olarak ortaya çıkacaktır. gözlem hataları gibi pratikte ortaya çıkar; ancak önceden eklenmiş toplama veya çıkarma işaretleri yoktur. Sonra tekrar tekrar bir jeton atarak ve kafaları+ve kuyrukları-çağırarakişaretler veya - bu hata dizisine şans eseri verilir.
"Dizin" burada "işaretçi" veya "gösterge" (cf "işaret parmağı") olarak okunmalıdır. Stigler, De Forest gibi Darwin'in disk çevresinde yarı normal kümülatif bir dağılım kullandığını belirtti. Daha sonra rastgele bir işaret eklemek için bir bozuk para kullanarak bu tam bir normal dağılım sağlar. Stigler, terazinin ne kadar iyi bir şekilde mezun olduğunu belirsiz olduğunu, ancak diskin orta eğimini manuel olarak durdurma talimatının "diskin bir bölümüne yönelik potansiyel önyargının azaltılması ve prosedürün hızlandırılması" olduğunu varsayıyor.
Bu arada, Charles Darwin'in yarı kuzeni olan Sir Francis Galton , quincunx'iyle bağlantılı olarak çoktan bahsedildi. Bu mekanik olarak, De Moivre-Laplace teoremi tarafındannormal dağılıma çarpıcı bir benzerlik taşıyanbir binom dağılımını simüle ederken(ve bazen bu konu için bir öğretim yardımı olarak kullanılır), Galton aslında istediği zaman çok daha ayrıntılı bir şema üretti. normal bir dağılıma ait örnek. Bu cevabın başındaki sıra dışı örneklerden daha olağanüstü olan Galton normal olarak dağıtılmış zar geliştirdi- ya da daha doğrusu, medyan sapma ile normal dağılıma mükemmel ayrık bir yaklaşım sağlayan bir zar seti. 1890'dan kalma bu zarlar, University College London'daki Galton Koleksiyonunda saklandı.
Nature Galton'da 1890 tarihli bir makalede şunu yazdı:
Rastgele seçim yapmak için bir araç olarak, zardan üstün bir şey bulamadım. Her ardışık çizim arasında kartları iyice karıştırmak çok zahmetlidir ve işaretli topları bir torbaya karıştırma ve karıştırma yöntemi hala daha sıkıcıdır. Bunlara bir teetotum veya bir tür rulet tercih edilir, ancak zar hepsinden daha iyidir. Bir sepet içinde sallandıklarında ve fırlatıldıklarında birbirlerine karşı ve çılgınca takla attıkları kaburga kaburgalarının kaburgalarına karşı çeşitli şekillerde incinirler ve başlangıçtaki pozisyonları daha sonra ne olacağına dair hiçbir belirgin ipucu vermez. tek iyi çalkalama ve atma. Bir kalıbın sağladığı şans, genelde tahmin edilenden daha çeşitlidir; 24 eşit olasılık var ve sadece 6 değil, çünkü her yüzün gösterebileceğim gibi kullanılabilecek dört kenarı var.
Galton'ın hızlı bir şekilde normal sapma dizisi üretebilmesi önemliydi . Her bir rulodan sonra Galton zarları tek dokunuşla hizaya sokar, ardından skorları ön kenarları boyunca kaydeder. Başlangıçta De Forest'ın kartlarına benzeyen, ancak kenarları yarı normal sapma olan birçok I tipi zar attı, ancak 24'ü 100 olmayan kuaför kullandı. En büyük sapmalar için (aslında I zarının tipinde boşluklar olarak işaretlenmiştir), sekansındaki boşlukları doldurmak için ihtiyaç duyduğu kadar daha hassas tip II zarlardan (sadece büyük sapmalar gösteren daha hassas bir dereceye kadar) yuvarlayacaktır. . Yarı-normalden normal sapmalara dönüşmek için tahsis edecek olan III.
Raazesh Sainudiin'in Matematiksel İstatistiksel Deneyler Laboratuvarı, Galton'ın zarını yeniden üreten , NZ, Canterbury Üniversitesi'nden bir öğrenci projesi içermektedir . Proje, zarları defalarca yuvarlamanın deneysel incelemesini (güven verici şekilde "normal" görünen ampirik bir CDF dahil) ve zar puanlarının uyarlanmasını ve böylece normal normal dağılıma uymalarını sağlayan ampirik bir incelemeyi içermektedir. Galton'un orijinal puanlarını kullanarak, zar puanlarının gerçekte takip ettiği ayrık normal dağılımın bir grafiği de var.
Büyük ölçekte, eğer "mekanik" i elektriksel olarak uzatmaya hazırsanız , RAND'ın 100.000 Normal Sapma ile destansı bir Milyon Rastgele Rakamının bir rulet çarkının bir tür elektronik simülasyonuna dayandığını unutmayın. Gönderen teknik raporda buluruz (George W. Brown, 1949 aslen Haziran ayına):
Böylece, RAND çalışanları, Douglas Aircraft Company mühendislik personelinin yardımıyla, Cecil Hastings tarafından yapılan bir teklifin çeşitliliğine dayanan bir elektro rulet çarkı tasarladı. Bu konuşmanın amaçları için kısa bir açıklama yeterli olacaktır. Rasgele bir frekans darbesi kaynağına, yaklaşık bir saniyede ortalama 100.000 darbe sağlayan, yaklaşık saniyede bir kez sabit frekanslı bir darbeyle giriş yapıldı. Darbe standardizasyon devreleri, darbeleri beş basamaklı bir ikili sayıcıya geçirdi, böylece prensipte makine, her bir turda ortalama 3000 devir yapan, 32 pozisyonlu bir rulet çarkı gibidir. 32 konumdan 12'sini atıp, onluk dönüşümden oluşan bir ikili kullanıldı ve elde edilen rastgele sayı, rastgele basamakların delikli kart tablolarını veren bir IBM zımbaya verildi.
Tek ve çift basamaklı frekansların testleri, bazı partilerin hafif bir dengesizliğe sahip olduğunu gösterdi. Bu, bazı gruplarda diğerlerine göre daha kötüydü, "makinenin ayarından bu yana ay içinde çalıştığını ... göstergeler bu makinede olduğu için, uç şeklini korumak için aşırı bakım gerektirdiğini" belirtti. Ancak, bu sorunları çözmenin istatistiksel bir yolu bulundu:
Bu noktada orjinal milyon hanemiz, bir karta 50 basamaklı 20.000 IBM kartımız vardı, istatistiksel analizde açıklanan küçük ama algılanan tek taraflı önyargılar. Şimdi masayı yeniden düzenlemeye karar verdim ya da en azından tek bir yanlılığı gidermek için onunla oynayarak küçük bir ruletle değiştirmeye karar verildi. Her bir karttaki rakamları, önceki kartın ilgili rakamlarına rakam bazında ekledik (mod 10). Bir milyon haneden türetilmiş tablo daha sonra çeşitli standart testlere, sıklık testlerine, seri testlere, poker testlerine vb. Tabi tutulmuştur. Bu milyon basamak temiz bir tasarıma sahiptir ve RAND'ın modern rasgele basamak tablosu olarak kabul edilmiştir.
Elbette, ekleme işleminin iyi olacağına inanmak için iyi bir sebep vardı. Genel olarak, altta yatan mekanizma, rastgele değişkenlerin toplamının sınırlayıcı yaklaşımıdır, birim dağılımını dikdörtgen dağılımda modüle eder, aynı şekilde sınırsız sayıda rastgele değişken toplamı normallik yaklaşır. Bu yöntem, Eyaletlerarası Ticaret Komisyonu'ndan Horton ve Smith tarafından, rasgele olmayan büyük sayıdaki rasgele sayıların bazı iyi rasgele sayı gruplarını elde etmek için kullanılmıştır.
Referanslar
Porsuk, L. (1994). " Lazzarini'nin Lucky Şanslı Yaklaşımı ". Matematik Dergisi . Amerika Matematik Derneği 67 (2): 83–91.
Darwin, GH (1877). “ Değişken büyüklükteki hatalı ölçümler ve meteorolojik gözlemlerin işlenmesi üzerine. ” Philosophical Magazine , 4 (22), 1-14
De Orman, EL (1876). Serilerin enterpolasyonu ve ayarlanması . Tuttle, Morehouse ve Taylor, New Haven, Conn.
Galton, F. (1890). "İstatistiksel deneyler için zar". Doğa , 42 , 13-14
Stigler, SM (1991). "Ondokuzuncu yüzyılda stokastik simülasyon". İstatistiksel Bilim , 6 (1), 89-97.
“Rastgele rakam üretmenin aritmetik yöntemlerini düşünen herhangi biri elbette günah durumundadır. Çünkü, birkaç kez belirtildiği gibi, rastgele sayılar diye bir şey yoktur - rastgele sayılar üretmek için sadece yöntemler vardır. ve elbette kesin bir aritmetik işlem böyle bir yöntem değildir. "
Örneğin, Linux işletim sistemimde kontrol edebilirim
$ date +%s.%N
1479733744.077762986
$ date +%s.%N
1479733980.615056616
dolayısıyla ayarlandı
> sqrt(-2*log(.077762986))*cos(2*pi*.615056616)
[1] -1.694815
Zeyilname: Hesaplama logaritmaları ve kosinüsler yeterince manuel sayılmazsa , Box-Müller'in bu aşkın işlevleri kullanmaktan kaçınan bir varyantı vardır (bakınız Monte Carlo İstatistiksel Yöntemler kitabında Alıştırma 2.9 ):
Şimdi, Üstel değişkenlerinden dolayı bu sürüme karşı çıkılabilir. Ancak , Luc Devroye'nin Tekdüze Olmayan Rastgele Değişkenlerinden üretilen bu algoritmada özetlendiği gibi, von Neumann'dan ötürü, aşkın işlevlere çağrı yapmadan bu değişkenleri simüle etmenin çok zekice bir yolu var :
Kuşkusuz, 1 / e'nin hesaplanmasını gerektirir, ancak yalnızca bir kez.
Bu saate erişemiyorsanız, bu tek biçimli jeneratörü , çok sayıda ünite karesi olan bir yüzeye dart atmak gibi, mekanik bir tek tip jeneratör ile değiştirebilirsiniz. veya bir birim aralığında bir top yuvarlama Yeteri kadar [Thomas Bayes kavramsal bilardo deneyde olduğu gibi] sıçramalar veya ünite genişlik plakalar ile ahşap zemin üzerinde sonuç atma ve [olarak yakın en soldaki ayırma mesafesinde sayma ile Buffon'la deney] ya da daha başka bir numarası olan bir rulet çarkı başlamak 1 en düşük ve 1 başlangıç açısı ile tekdüze dönüş açısı elde edin. çekmek.
Normalliğe yaklaşmak için CLT kullanmak kesinlikle değildir. tavsiye edeceğim bir yöntem (1) ortalamayı beslemek için hala başka değişkenlere ihtiyaç duyarsınız, bu yüzden Box-Müller algoritmasında üniformaları kullanabilir ve (2) doğruluk oldukça büyür. simülasyon sayısı ile yavaşça. Özellikle, altıdan fazla yüzü olsa bile, bir zarın sonucuna benzer ayrı bir rasgele değişken kullanıyorsanız . Dan alıntı Thomas ve ark. (2007), Gaussyalı rasgele jeneratörlerin artıları ve eksileri üzerine bir araştırma:
Tabii ki merkezi limit teoremi “yaklaşık” bir yönteme örnektir - mükemmel aritmetik kullanılsa bile, sonlu K için çıkış Gaussian olmayacaktır.
Sorunu açıklamak için hızlı bir deneme: 30 ortalama sonuçtan 100 kat fazla ürettim:
dies=apply(matrix(sample(1:6,30*100,rep=TRUE),ncol=30),1,mean)
daha sonra bu ortalamaları, bir değişkenlik ortalama sıfır varyansa dönüştürdü.
stdies=(dies-3.5)/sqrt(35/12/30)
ve bu numunenin normal uyumuna [veya eksikliğine] baktığımızda:
Birincisi, özellikle kuyruklarda uyum mükemmel değildir ve ikincisi, daha açık bir şekilde, resim, numunenin aldığı değer sayısının utanç verici derecede sınırlı olduğunu onaylar. (Bu özel deneyde, dies
arasında 76/30
ve arasında yalnızca 34 farklı değer vardı 122/30
.) Karşılaştığımda, aynı 3000 kalıp sonucundan faydalanırsam Bir takma üniforma yeterli rakam oluşturmak için
dies=matrix(apply(matrix(sample(0:5,15*200,rep=TRUE),nrow=15)/6^(1:15),2,sum),ncol=2)
norma=sqrt(-2*log(dies[,1]))*c(cos(2*pi*dies[,2]),sin(2*pi*dies[,2]))
Uygun boyut 200 Normal bir numune için beklendiği kadar iyidir (sadece gerçek bir normal numune için bir tane daha çiziniz norma=rnorm(100)
):
Kolmogorov-Smirnov testi tarafından da gösterildiği gibi:
> ks.test(norma,pnorm)
One-sample Kolmogorov-Smirnov test
data: norma
D = 0.06439, p-value = 0.3783
alternative hypothesis: two-sided
Bu tam olarak rastlantısal değil , ancak kaba bir deney istiyormuş gibi yeterince yakın olmalı.
Bir kronometre ayarlamak için telefonunuzu kullanın. İyi bir 10 saniyeden sonra, durdurun (Ne kadar beklerseniz, gerçekten "rastgele" bir sonuçla o kadar yaklaşırsınız, ancak 10 saniye iyidir). Son haneleri alın (örneğin, 10.67 sn size 67 verecektir). Normal dağılım için yüzde tablosunu uygulayın. Bu örnekte, sadece 0,67 aramanız gerekir ve sayıyı bulacaksınız. Bu durumda, değeriniz yaklaşık 0,45. Bu tam olarak kesin değildir, ancak size sağlam bir tahmin verecektir.
Eğer 50'nin altına inerseniz, sadece 100- [Sonunuz] yapın ve masayı kullanın. Sonuçunuz, N'nin (0,1) simetrisi nedeniyle eksi işareti ile aynı olacaktır.
Tarafsız bir yazı tura atalım zamanlar. Sıfırdan başlayarak, biz sayarız eğer kafaları kuyrukları varsa. Sonra para çevirir, sayacı böleriz . Merkezi limit teoremini kullanarak , eğer yeterince büyük, o zaman normalize Gaussian'ın "yaklaşık gerçeklenmesini" sağlamalıyız. .
Niye ya? let
Bernoulli ile rasgele değişkenler koymak . Bu nedenle,
let . Bu nedenle,
Normalizasyon,
birim değişkenli rastgele bir değişken elde ediyoruz
Bir üniforma (0,1) oluşturabildiğiniz zaman, üniform rastgele değişkeni ters CDF'ye basitçe takarak ters cdf'ın hesaplanabildiği herhangi bir rasgele değişkeni oluşturabileceğinizi belirtmekte fayda var.
Peki bir üniforma (0,1) manüel olarak nasıl hesaplanabilir? @Silverfish tarafından bahsedildiği gibi, geleneksel RPG oyuncuları tarafından kullanılan çeşitli zarlar vardır. Bunlardan biri on taraflı bir kalıptır. Bunun adil bir kalıp olduğunu varsayarsak, şimdi ayrı bir üniforma oluşturabiliriz (0, 9).
Bu üniformayı (0,9) rastgele bir değişkenin tek bir basamağını temsil etmek için de kullanabiliriz. Yani iki zar kullanırsak, değerleri alabilen düzgün bir rastgele değişken elde ederiz.. Üç zarla, üzerinde düzgün bir dağılım elde edebiliriz..
Böylece, sürekli bir forma (0,1) çok yaklaştırabiliriz, birkaç 10 yüzlü zarla ince ızgaralı ayrık forma dağılımı ile yaklaştırabiliriz. Bu daha sonra ilgilenilen rastgele değişkeni üretmek için ters bir CDF'ye takılabilir.