Membangkitkan Bilangan Acak Metode
Linear Congruential Generator (LCG)
Pembangkitan Bilangan Acak
Pembangkitan bilangan acak adalah konsep penting analisis statistik dan
teori peluang, umumnya untuk simulasi
- Bilangan acak yang dibangkitkan merupakan pseudorandom (acak
semu), karena pembangkitannya menggunakan operasi-operasi
matematika - Bilangan acak yang dibangkitkan memenuhi sebaran statistik tertentu
(pdf/pmf, cdf)
Fungsi-Fungsi Peluang Suatu Sebaran
Fungsi density/mass (pdf/pmf) dimulai huruf d diikuti dengan nama sebarannya
- dnormΒ
- dunif
Fungsi peluang sebaran kumulatif (cdf) dimulai huruf p diikuti dengan nama
sebarannya
- pnorm
- punif
Fungsi quantile/invers cdf dimulai huruf q diikuti dengan nama sebarannya
- qnorm
- qunif
R telah menyiapkan banyak fungsi untuk membangkitkan data berdasarkan
sebaran
Fungsi umumnya dimulai dengan huruf r diikuti dengan nama sebaran
Contoh:
Data sebaran pseudo seragam :runif
Pembangkit bilangan menggunakan seed yang umumnya mengambil waktu
di komputer
Pembangkitan Pseudorandom menghasilkan barisan peubah acak Uniform
(0,1)
- Linear congruential generator adalah salah satu algoritma tertua dan
terkenal untuk membangkitkan bilangan pseudorandom - Distribusi lainnya umumnya dibangkitkan berdasarkan barisan bilangan
ini
Sebagai contoh :
Jika π ~ Unif 0,1 maka
π½ ln 1 β π ~ πΈπ₯π(π½)
CONTOH : runif ()
runif () adalah fungsi membangkitkan barisan peubah acak Uniform yang tersedia di R
Linear Congruential Generator
Bilangan acak yang dihasilkan dengan rumus-rumus matematika adalah bilangan acak semu (pseudo),
karena pembangkitannya dapat diulang kembali. Pembangkit deret bilangan acak semacam itu disebut
pseudorandom number. Linear congruential generator adalah salah satu algoritma tertua dan terkenal
untuk membangkitkan bilangan pseudorandom dengan rumus :
Langkah-langkah membangkitkan bilangan acak pada interval 0 dan 1:
- Tentukan seedΒ
- Untuk i = 1, 2, …… , n hitungΒ Β
- Selanjutnya tentukanΒ
Contoh :
Hasil yang diperoleh hanya berupa barisan bilangan 1 dan 2 seperti berikut:
Program membangkitkan bilangan acak bulat antara (0,m) di R
Keacakan U akan semakin baik jika kita bisa mengambil nilai m bilangan prima sebesar mungkin.
Berikut adalah 30 bilangan acak antara (0,1) yang diperoleh dengan m =97, a=98, x0=2, c=5.
Dari hasil yang diperoleh terlihat bahwa ketiga puluh bilangan tersebut tidak ada yang merupakan
pengulangan dari bilangan sebelumnya
Coddington n.d memberi daftar pasangan pilihan a,c, dan m yang telah dicoba untuk berbagai
mesin sebagaimana yang ditulis dalam tabel berikut