Apakah angka acak secara statistik?

33

Misalkan Anda mengamati urutannya:

7, 9, 0, 5, 5, 4, 8, 0, 6, 9, 5, 3, 8, 7, 8, 5, 4, 0, 0, 6, 6, 4, 5, 5, 3, 3, 7, 5, 9, 8, 1, 8, 6, 2, 8, 4, 6, 4, 1, 9, 9, 0, 5, 2, 2, 0, 4, 5, 5, 2, 8. ..

Tes statistik apa yang akan Anda terapkan untuk menentukan apakah ini benar-benar acak? FYI ini adalah digit ke- dari . Jadi, apakah digit acak secara statistik? Apakah ini mengatakan sesuatu tentang konstanta ?nπππ

masukkan deskripsi gambar di sini

Cam.Davidson.Pilon
sumber
10
Ini adalah pertanyaan yang menarik dan menjengkelkan. Setiap siswa yang telah mengambil kursus pertama dalam probabilitas ukuran-teoretis dapat dengan mudah membuktikan bahwa "hampir semua" bilangan real adalah normal . Tetapi sangat sedikit contoh eksplisit yang diketahui, dan setahu saya, masalah ini belum diselesaikan dengan cara apa pun untuk konstanta matematika irasional yang "terkenal".
kardinal
4
Dalam koneksi (ketat) dengan komentar @ cardinal: Nomor normal
6
Apa grafiknya? Ada sepuluh bilah, spasi aneh, dan semua dengan nilai di atas 10%!
xan

Jawaban:

15

Lembaga Standar Nasional AS telah mengumpulkan serangkaian tes yang harus dilewati oleh generator nomor acak (pseudo-) agar dianggap memadai, lihat http://csrc.nist.gov/groups/ST/toolkit/rng/stats_tests. html . Ada juga tes yang dikenal sebagai rangkaian uji Diehard , yang agak tumpang tindih dengan tes NIST. Pengembang paket statistik Stata melaporkan hasil Diehard mereka sebagai bagian dari proses sertifikasi mereka. Saya membayangkan Anda dapat mengambil blok digit , katakanlah dalam kelompok 15 digit berturut-turut, agar dapat dibandingkan dengan akurasi tipe ganda , dan jalankan uji baterai ini pada angka yang diperoleh dengan demikian.π

Tugas
sumber
5

Menjawab hanya pertanyaan pertama Anda: "Tes apa yang akan Anda terapkan untuk menentukan apakah [urutan] ini benar-benar acak?"

Bagaimana memperlakukannya sebagai rangkaian waktu, dan memeriksa korelasi-otomatis? Berikut adalah beberapa kode R. Pertama beberapa data uji (1000 digit pertama):

digits_string="1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989"
digits=as.numeric(unlist(strsplit(digits_string,"")))

Periksa jumlah setiap digit:

> table(digits)
digits
  0   1   2   3   4   5   6   7   8   9 
 93 116 103 102  93  97  94  95 101 106 

Kemudian ubah menjadi seri waktu, dan jalankan uji Box-Pierce:

d=as.ts( digits )
Box.test(d)

yang memberitahu saya:

X-squared = 1.2449, df = 1, p-value = 0.2645

Biasanya Anda ingin nilai p di bawah 0,05 untuk mengatakan ada korelasi otomatis.

Jalankan acf(d)untuk melihat korelasi otomatis. Saya belum memasukkan gambar di sini karena ini adalah grafik yang membosankan, meskipun anehnya kelambatan terbesar ada di 11 dan 22. Jalankan acf(d,lag.max=40)untuk menunjukkan bahwa tidak ada puncak di lag = 33, dan itu hanya kebetulan!


PS Kita bisa membandingkan seberapa baik 1000 digit pi itu, dengan melakukan tes yang sama pada bilangan acak nyata.

probs=sapply(1:100,function(n){
    digits=floor(runif(1000)*10)
    bt=Box.test(ts(digits))
    bt$p.value
    })

Ini menghasilkan 1000 digit acak, melakukan tes, dan mengulangi ini 100 kali.

> summary(probs)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
0.006725 0.226800 0.469300 0.467100 0.709900 0.969900 
> sd(probs)
[1] 0.2904346

Jadi hasil kami nyaman dalam standar deviasi pertama, dan pi dukun seperti bebek acak. (Saya menggunakan set.seed(1)jika Anda ingin mereproduksi angka-angka yang tepat.)

Darren Cook
sumber
0

Itu pertanyaan aneh. Angka tidak acak.

Sebagai deret waktu dari basis 10 digit, benar-benar diperbaiki.π

Jika Anda berbicara tentang memilih secara acak indeks untuk deret waktu, dan memilih nomor itu, yakin itu acak. Namun demikian, angka membosankan dan rasional . Dalam kedua kasus, "keacakan" berasal dari memilih sesuatu secara acak, seperti menggambar nama dari topi.0.1212121212

Jika apa yang Anda bicarakan lebih bernuansa, seperti pada "Jika saya secara berurutan mengungkapkan urutan angka yang acak, dapatkah Anda memberi tahu saya jika itu adalah subset tetap dari ? Dan dari mana asalnya?". Yah pertama-tama, meskipun tidak berulang, urutan acak yang berbeda setidaknya akan menyelaraskan secara lokal untuk menjalankan kecil. Itu hasil teori bilangan, bukan statistik. Segera setelah Anda istirahat, Anda harus memindai ke instance penyelarasan berikutnya. Secara komputasional, itu tidak dapat diluruskan untuk menyejajarkan urutan acak apa pun karena dapat cocok dengan tempat ke- . Heck bahkan jika urutannya sejajar denganπππ2222+1πsuatu tempat, tidak berarti itu tidak acak. Misalnya, saya dapat memilih 3 secara acak, bukan berarti itu adalah digit pertama dari .π

AdamO
sumber
Tepatnya apa "hasil teori bilangan" yang Anda maksud? AFAIK, tidak ada yang tahu apakah adalah angka normal. π
whuber
@whuber yang saya maksudkan adalah apakah benar-benar berisi setiap kemungkinan nomor berikutnya tidak diketahui (perbaiki saya jika saya salah) dan bahwa bukti / temuan tidak ada hubungannya dengan keacakan / probabilitasπ
AdamO
2
Saya tidak benar-benar mengikuti jawaban ini. Ya, pi sudah diperbaiki, tetapi serangkaian digit masih bisa berperilaku seperti serangkaian angka acak. Saya tidak melihat bagaimana 0,1212 ... mewakili keacakan berdasarkan definisi apa pun. Dan seperti yang Anda tunjukkan dalam komentar Anda, apakah pi mengandung beberapa urutan angka yang sewenang-wenang memiliki sedikit pengaruh pada sifat acak dari digit-digitnya. Jadi mengapa fokus pada hal itu?
Nuclear Wang
@NuclearWang Hanya karena urutan urutan digit tidak dapat dipahami oleh pikiran naif kita tidak berarti itu "sebagus acak". Berikut adalah contoh angka yang tidak berulang yang mungkin memenuhi beberapa persyaratan keacakan tetapi tidak yang lain: 0.12112211122211112222 ... Meskipun demikian, saya dapat mengambil bagian dari sejarah nomor sebelumnya dan memprediksi seluruh masa depan. Hal yang sama dapat dikatakan tentang , itu hanya mengharuskan saya tahu semua sejarah deret waktu. π
AdamO
@ Adamo Anda hanya dapat membuat prediksi itu jika Anda tahu sebelumnya bahwa nomor yang Anda gambarkan adalah pi, yang sepertinya curang. Digit dalam 3.141592 tidak memberikan indikasi bahwa digit berikutnya adalah 6; satu-satunya cara Anda tahu itu adalah karena kami secara khusus menggambarkan pi. Kecuali Anda sudah menghitung pi ke N digit, tidak ada alasan untuk mengharapkan digit N menjadi angka tertentu. Anda tampaknya menyiratkan bahwa tidak ada urutan angka acak, karena begitu Anda menuliskannya, angka itu tetap.
Nuclear Wang