Pembangkit Bilangan Acak Bilangan Acak Pseudo • Bilangan Acak Pseudo – Dibangkitkan dengan komputer – Komputer itu deterministik – bilangan acak dibangkitkan dengan menggunakan suatu algorithma – Efisien – Algoritma yang baik lulus untuk semua uji statistik Bilangan Acak Sebenarnya • Beberapa gejala alam muncul sebagai fenomena acak – Peluruhan Radio active, Dadu, Koin, Sumber Gangguan suatu WebCam CCD chip (LavaRnd.com) – Masalah: Tingkat Output Lambat Penggunaan Bilangan Acak • Simulasi – – – – Chaotic molecular behavior Nuclear detonations User behavior in network simulation … • Gambling Bilangan Acak Palsu (Pseudo) • Berasal dari pembangkitan peuabah acak yang menyebar seragam (uniform) dengan rentang (0,1) X ~ U (0, 1) • Peubah-peubah acak lainnya dapat dibangkitkan dari peubah acak ini – U dipakai untuk notasi peubah acak yang menyebar uniform (0,1) Sifat-sifat bilangan acak yang baik • Mendekati kondisi statistik yang ideal – Menyebar uniform (0, 1) – Rataannya sekitar 1/2, Ragamnya sekitar 1/12 – … (Akan kita pelajari kemudian) • Mudah dan cepat dalam membangkitkannya • Mempunyai siklus yang cukup panjang • Dapat diulangi hasilnya untuk tujuan debugging Teknik membangkitkan bilangan Acak • Metode Kongruensial Linear (Linear Congruential Method, LCG) – Sangat populer – Efisien Metode LCG • Xi+1=(aXi+c) mod m – X0 : Bibit (Seed) – a: Konstanta pengganda – c: Penambah (Increment) • Mixed congruential method: c>0 • Multiplicative congruential method: c=0 – m: Modulus – Ui = Xi/m bilangan acak ke-i Teladan • X0 = 27 • a = 17 • c = 43 • m = 100 Berapa panjang siklusnya? Metode LCG • bilangan-bilangan yang dibangkitkan diskret – I = { 0,1/m,2/m,…,m-1/m } • bilangan acak ini baik, jika m cuku besar (232) Siklus terpanjang • Bilamana m = 2b, siklus terpanjang adalah m, jika c < m and a = 1+4k, dimana k adalah bulat (integer) • Teladan: – m = 24 = 16 –c=3 –a=1 Siklus terpanjang (2) • Bila m = 2b, siklus terpanjangnya adalah m/4, jika c = 0 dan a = 3+8k atau a = 5+8k, dimana k adalah integer dan X0 merupakan bilangan ganjil • Teladan: – m = 64 – a = 13 – X0 = 3 Siklus terpanjang (3) • Bila m dalah bilangan prima dan c=0, siklus terpanjang yang dapat dicapai adalah m-1, ak-1 habis dibagi oleh m dand bilangan bulat terkecil k adalah m-1 • Teladan: – m = 231-1 = 2,147,485,647 (siklusnya mencapai 2 milyar) – a = 75 Siklus terpanjang (4) • Dari penjelasan di atas dapat disimpulkan bahwa: – Sekuens bilangan acak yang dihasilkan akan memiliki siklus, dengan maksimum siklus adalah m – Bilangan a dan c harus dipilih hati-hati agar diperoleh pembangkit dengan panjang siklus maksimum, dan menghasilkan bilangan acak dengan sifatsifat statistik yang baik Siklus terpanjang (5) • Tabel berikut ini memberikan kombinasi nilai-nilai m, a dan c Metode Midsquare (Von Neumann dan Metropolis, 1945) • Dimulai dengan bilangan 4-digit sebagai bibit (X0) • Kuadratkan bilangan itu untuk memperoleh 8-digit (bila perlu tambahkan 0 pada digit paling kiri, agar diperoleh persis 8-digit) • Ambil 4-digit ditengah-tengah untuk memperoleh bilangan 4 digit berikutnya X1, kemudian kuadratkan X1 dan ambil kembali 4-digit ditengah-tengah dan seterusnya dilakukan dengan cara yang sama Metode Midsquare (2) • Bilangan acak Ui diperoleh dengan menambahkan titik desimal disebelah kiri setiap nilai Xi (atau membaginya dengan 10000) Uji-uji untuk Bil. Acak • Uji Frequensi – Apakah bilangan acaknya uniform? – Menggunakan uji Kolmorov-Smirnov atau uji chikuadrat • Uji Runs – Semakin menaik dan semakin menurun? – Menggunakan uji chi-kuadrat • Uji Autokorelasi – Menguji korelasi diantara bilangan-bilangan itu Uji-uji untuk Bil. Acak (2) • Uji Gap – Menghitung banyaknya digit antar digit yang muncul berulang untuk suatu digit tertentu (gap) dan kemudian menggunakan uji Kolmogorv-Smirnov untuk membandingkan dengan nilai harapan gaps tersebut • Poker test – Menguji terjadinya pengulangan dari bilangan-bilangan yang dibangkitkan – Rangkain bilangan berikut memiliki banyaknya pengulangan yang tidak biasa • 0.255 0.577 0.331 0.414 0.828 0.909 Uji Keseragaman: KolmogorovSmirnov test • Secara teoritis F(x) = x, 0<x<1 • Suatu sampel n bilangan acak: U1,U2,…,Un, fungsi sebaran komulatif empirisnya (empirical cdf) adalah: • Sn(x)=(banyaknya U1,U2,…,Un yang x)/n • Sn(x) semestinya mendekati x bila n besar Uji-uji untuk Bil. Acak (3) • Untuk menguji keseragaman, bentuk hipotesisnya adalah H0: Ui ~ U[0,1] H1: Ui U[0,1] • Hipothesis nol, H0, dibaca sebagai bilangan-bilangan tersebut menyebar seragam pada interval [0,1]. Uji-uji untuk Bil. Acak (4) • Pada uji kebebasan (independence), bentuk hipothesisnya adalah; H0: Ui ~ independently H1: Ui independently • hipothesis, H0, dibaca bahwa bilanganbilangan tersebut menyebar secara bebas. Kegagalan menolak hipothesis nol berarti bahwa tidak ada cukup bukti menunjukkan adanya ketakbebasan yang terdeteksi berdasarkan uji ini. Uji Bil. Acak (5) Tingkat nyata (level of significance) a a = P(tolak H0 | H0 benar) biasanya, a sama dengan 0.01 atau 0.05 (Hipothesis nol) Sebenarnya Benar Terima 1-a Tolak a (Type I error) Sebenarnya Salah b (Type II error) 1-b Uji Bil. Acak (6) • Uji Gap menghitung banyaknya digit antar pemunculun digit yang sama berturutan. (Teladan) panjang gap yang bersesuaian dengan digit 3. 4, 1, 3, 5, 1, 7, 2, 8, 2, 0, 7, 9, 1, 3, 5, 2, 7, 9, 4, 1, 6, 3 3, 9, 6, 3, 4, 8, 2, 3, 1, 9, 4, 4, 6, 8, 4, 1, 3, 8, 9, 5, 5, 7 3, 9, 5, 9, 8, 5, 3, 2, 2, 3, 7, 4, 7, 0, 3, 6, 3, 5, 9, 9, 5, 5 5, 0, 4, 6, 8, 0, 4, 7, 0, 3, 3, 0, 9, 5, 7, 9, 5, 1, 6, 6, 3, 8 8, 8, 9, 2, 9, 1, 8, 5, 4, 4, 5, 0, 2, 3, 9, 7, 1, 2, 0, 3, 6, 3 Note: ada delapan belas digit 3 pada barisan di atas ==> 17 gap, gap pertama panjangnya 10 Uji Bil. Acak (7) Kita akan hitung frekuensi gap, -contoh frekuensi gap dengan panjang 10 untuk digit 3P(gap 10) = P(tak 3) ××× P(tak 3) P(3) , note: ada 10 bentuk P(tak 3), = (0.9)10 (0.1) Sebaran frekuensi teoritis untuk suatu urutan yang bersifat acak diberikan oleh F(x) = 0.1 (0.9)n = 1 - 0.9x+1 Note: amati frekuensi untuk semua digit bandingkan dengan frekuensi teoritis dan gunakan uji Kolmogorov-Smirnov. Uji Bil. Acak (8) (Teladan) Berdasarkan frekuensi kemunculan gap-gap, analisis 110 digits di atas untuk menguji apakah barisannya bebas (independent). Gunakan a= 0.05. Total # gaps diberikan oleh banyaknya digit minus 10, jadi 110-10=100. Banyaknya gap bersesuaian dengan berbagai digit (0-9) adalah: Digit 0 1 2 3 4 5 6 7 8 9 # Gaps 7 8 8 17 10 13 7 8 9 13 total 100 Uji Bil. Acak (9) Contoh Uji Gap Relative Cum. Relative Panjang Gap Frequency Frequency Frequency F(x) |F(x) - SN(x)| 0-3 4-7 8-11 12-15 16-19 20-23 24-27 28-31 32-35 36-39 40-43 44-47 35 22 17 9 5 6 3 0 0 2 0 1 0.35 0.22 0.17 0.09 0.05 0.06 0.03 0.00 0.00 0.02 0.00 0.01 0.35 0.57 0.74 0.83 0.88 0.94 0.97 0.97 0.97 0.99 0.99 1.00 0.3439 0.5695 0.7176 0.8147 0.8784 0.9202 0.9497 0.9657 0.9775 0.9852 0.9903 0.9936 0.0061 0.0005 0.0224 0.0153 0.0016 0.0198 0.0223 0.0043 0.0075 0.0043 0.0003 0.0064 Uji Bil. Acak (10) Nilai kritis D adalah D0.05 = 1.36 / 100 = 0.136 karena D = max |F(x) - SN(x)| = 0.0224 adalah kurang dari D0.05, hipotesis nol yang menyatakan barisan digit tersebut bebas tidak ditolak, berdasarkan pada uji ini. Uji Kebebasan Bil Acak • Uji Run (Menaik dan Menurun) Perhatikan40 bilangan berikut; uji Kolmogorov-Smirnov dan Chi-square akan mengindikasikan bahwa bilangan-bilangan tersebut adalah seragam (uniformly distributed). Tetapi tidak demikian sebenarnya. 0.08 0.11 0.02 0.12 0.09 0.16 0.09 0.13 0.23 0.18 0.30 0.29 0.29 0.31 0.32 0.36 0.42 0.41 0.45 0.38 0.55 0.53 0.47 0.54 0.58 0.71 0.69 0.68 0.72 0.73 0.74 0.86 0.89 0.74 0.91 0.88 0.91 0.84 0.95 0.91 Uji Kebebasan Bil Acak •Sekarang bila urutannya adalah seperti di bawah ini, adakah sedikit alasan untuk mempertanyakan kebebasaanya (independence). 0.41 0.09 0.88 0.31 0.68 0.72 0.91 0.42 0.89 0.86 0.95 0.73 0.84 0.08 0.69 0.12 0.74 0.54 0.09 0.74 0.91 0.02 0.38 0.45 0.55 0.11 0.23 0.13 0.71 0.29 0.32 0.47 0.36 0.16 0.91 0.58 0.30 0.18 0.53 0.29 Uji Kebebasan Bil Acak • Perhatikanlah: • Banyaknya runs • Panjang runs • 0.41 0.68 0.89 0.74 0.36 0.54 • Banyaknya runs adalah 3, masing-masing panjangnya 2 runs menaik, 2 runs menurun dan 1 runs menaik, dilambangkan dengan ++--+ • Jadi runs adalah sekuens menaik atau menurun dari suatu barisan Uji Kebebasan Bil Acak • Note: Jika N adalah banyaknya bilangan-bilangan dalam barisan, maksimum banyaknya runs adalah N-1, dan minimum banyaknya runs adalah satu. • Jika “a” adalah total banyaknya runs pada suatu sekuens, rata-rata dan ragam (variance) untuk “a” diberikan oleh Uji Kebebasan Bil Acak ma = (2n - 1) / 3 s a2 = (16N - 29) / 90 Untuk N > 20, sebaran “a” akan mendekati sebaran normal, a ~ N(ma , s a2 ). Pendekatan ini dapat digunakan untuk menguji kebebasan bilangan-bilangan yang dibangkitkan dari suatu pembangkit (generator). Z0 = (a - ma) / sa Uji Kebebasan Bil Acak Substitusikan ma and sa ==> Za = {a - [(2N-1)/3]} / {(16N-29)/90}, dimana Z ~ N(0,1) Daerah penerimaan untuk hipothesis kebebasan adalah -Za/2 Z0 Za/2 a / 2 a / 2 -Za / 2 Za / 2 Uji Kebebasan Bil Acak (Teladan) Berdasarkan runs menaik dan menurun, tentukan apakah barisan 40 bilanganbilangan berikut ini menolak hipothesis kebebasan, gunakan a = 0.05. 0.41 0.19 0.18 0.31 0.68 0.72 0.01 0.42 0.89 0.75 0.95 0.73 0.94 0.08 0.69 0.04 0.74 0.54 0.18 0.83 0.91 0.02 0.47 0.45 0.55 0.01 0.23 0.13 0.62 0.36 0.32 0.57 0.36 0.16 0.82 0.63 0.27 0.28 0.53 0.29 Uji Kebebasan Bil Acak Barisan menaik dan menurunnya adalah sebagai berikut: +++-+-+---++-+--+-+--+--+-++- -++-+--++- Ada 26 runs dalam barisan ini. Dengan N=40 dan a=26, ma = {2(40) - 1} / 3 = 26.33 dan 2 s a = {16(40) - 29} / 90 = 6.79 Maka, Z0 = (26 - 26.33) / -013 Nilai kritisnya adalah Z0.025 = 1.96, jadi kebebasan bilangan-bilangan itu tidak dapat ditolak, berdasarkan uji ini. Uji Kebebasan Bil Acak • Uji Poker – didasarkan pada seberapa sering suatu digit berulang. Contoh: 0.255 0.577 0.331 0.414 0.828 0.909 • Note: sepasang digit yang serupa muncul pada setiap bilangan yang dibangkitkan. Uji Kebebasan Bil Acak Pada bilangan 3-digit, hanya ada 3 kemungkinan. P(3 digit berbeda) = P(2nd berbeda dari 1st) * P(3rd berbeda dr 1st & 2nd) = (0.9) (0.8) = 0.72 P(3 digit sama) = P(2nd digit sama dg 1st) * P(3rd digit sama dg 1st) = (0.1) (0.1) = 0.01 P(tepat sepasang) = 1 - 0.72 - 0.01 = 0.27 Uji Kebebasan Bil Acak (Teladan) Suatu barisan 1000 bilangan tiga-digit yang telah dibangkitkan dan hasil analisis menunjukkan 680 diantaranya mempunyai tiga digit berbeda, 289 mempunyai tepat sepasang digit sama, and 31 ketiga digitnya sama. Berdasarkan uji poker, apakah bilangan-bilangan ini bebas? Gunakan a = 0.05. Uji ini diringkaskan pada tabel berikut. Uji Kebebasan Bil Acak Combination, i Three different digits Three like digits Exactly one pair Observed Frequency, Oi 680 31 289 -----1000 Expected Frequency, Ei 720 10 270 -----1000 (Oi - Ei)2 ----------Ei 2.24 44.10 1.33 ------47.65 Derajat bebas yang bersesuaian adalah banyaknya kelas dikurang satu. Karena c20.05, 2 = 5.99 < 47.65, berdasarkan uji ini kebebasan bilangan-bilangan itu ditolak. Uji Auto Korelasi • Menguji Korelasi setiap m bilangan. • Ri, Ri+m, Ri+2m, Ri+3m …