STK 572 Manajemen Data Statistik Pertemuan 12 Tim Dosen: Dr. Farit Muhammad Affendi Dr. Agus M Soleh
Pembangkitan Bilangan Acak Dr. Agus M Soleh agusms@apps.ipb.ac.id 2
Pendahuluan Pembangkitan bil. acak merupakan alat yang diperlukan dalam komputasi statistik umumnya untuk simulasi Bilangan acak yang dibangkitkan merupakan pseudorandom (acak yang semu) Bilangan acak yg dibangkitkan diharapkan memenuhi sebaran statistik tertentu (pdf/pmf, cdf) Semua metode pembangkitkan bil. acak tergantung dari pembangkitan bil. acak uniform
Pembangkitan Bil. Acak Uniform Metode sederhana untuk bangkitkan bil. acak Uniform (0,1) Misal m bil. bulat yg besar dan b bil. bulat b<m Nilai b dipilih biasanya dekat akar dari m Langkah awal memilih seed: x0 antara 1 dan m Generator bil. acak : x1 = b x0 (mod m) u1 = x1/m u1 adalah bil. acak semu pertama Uniform(0,1)
Pembangkitan Bil. Acak Uniform Bil. acak berikutnya diulang x2 = b x1 (mod m) u2 = x2/m Secara umum: x n = b x n-1 (mod m) un = xn/m
Pembangkitan Bil. Acak Uniform Ilustrasi: m=30269 b=171 x0=23121 OUTPUT:
Pembangkitan Bil. Acak Uniform Bangkitkan data sebanyak 100: m=7 b=3 x0=2 m=29241 b=171 x0=3
Membangkitkan Bilangan Acak SAS telah menyiapkan banyak fungsi untuk membangkitkan data berdasarkan sebaran Fungsi RAND diikuti dengan nama sebaran atau nama sebarannya Contoh: Pembangkit bilangan menggunakan seed yang umumnya mengambil waktu di komputer, selainnya call streaminit(seed)
Peluang Sebaran Fungsi density/mass (pdf/pmf) : PDF ( sebaran ) Fungsi kumulatif (cdf) CDF( sebaran ) Fungsi quantile/invers QUANTILE( sebaran )
Sebagian Fungsi sebaran dalam SAS
Bagaimana jika belum ada fungsi pembangkit bil. acak?
Teknik Pembangkitan Bil. Acak Teknik umum dalam pembangkitan bil. acak Inverse-transform method Acceptance-rejection method Other Special techniques Direct Transformation, Convolution
Inverse Transform Method Berdasarkan teori Probability Integral Transformation: Jika X adalah peubah acak kontinu dengan cdf F(x), maka U = F(X) ~ Uniform(0,1). Menerapkan transformasi integral peluang. Didefiniskan transformasi invers: F -1 (u) = inf{x : F(x) = u}, 0 < u <1 Jika U ~ uniform(0,1), maka untuk semua x anggota R P(F -1 X(u) x) = P(inf{t : F X (t)= U} x) = P(U F X (x)) = F U (F X (x)) = F X (x) Akhirnya F -1 X(u) memiliki sebaran yang sama dengan X
Inverse Transform Method Konsep: Untuk fungsi cdf : r = F(x) Bangkitkan data dari uniform (0,1) Maka x: x = F -1 (r) r r = F(x) 1 x 1 14
Inverse Transform Method Ilustrasi: Diketahui pdf : f(x) = 3x 2, 0 < x < 1 F X (x) = x 3, 0 < x < 1 F -1 X(u) = u 1/3, Dalam SAS (misal membangkitkan 1000):
Inverse Transform Method Latihan: X dari sebaran eksponensial dengan mean 1/λ Jika X ~ Exp(λ), maka untuk x > 0 cdf dari X adalah F X (x) = 1-e -λx Bangkitkan X ~ Exp (λ) sebanyak 1000
ITM: Sebaran Diskret Jika X ~ p.a. diskret dan < x i-1 < x i < x i+1 < adalah titik tidak kontinu dari F X (x), maka transformasi inversnya adalah F -1 X(u)=x i dimana F X (x i-1 ) < u < F X (x i ). Langkah: Bangkitkan uniform (0,1) Tentukan x i dimana F X (x i-1 ) < u < F X (x i )
ITM: Sebaran Diskret Ilustrasi: Membangkitkan bil. acak ~ Bernoulli (0.4) F X (0) = f x (0) = 1-p dan F X (1) = 1. F -1 X(u) = 1 jika u > 0.6 F -1 X(u) = 0 jika u <= 0.6 Dalam SAS 600 500 400 Frequency 300 200 100 0 0 1 X
ITM: Kasus Sebaran Diskret Ilustrasi: Misal banyaknya pengiriman, x, dari suatu perusahaan adalah 0, 1, atau 2 kali Data Sebaran Peluang: x p(x) F(x) 0 0.50 0.50 1 0.30 0.80 2 0.20 1.00 Metode Diberikan U, Skema pembangkit: x 0, 1, 2, U 0.5 0.5 U 0.8 U 0.8 1.0 Perhatikan U 1 = 0.73: F(x i-1 ) < U <= F(x i ) F(x 0 ) < 0.73 <= F(x 1 ) Maka, x 1 = 1 19
Bagaimana jika sulit untuk mendapatkan cdf?
Acceptance-Rejection method Misalkan X dan Y adalah peubah acak dengan pdf/pmf f dan g dan terdapat konstanta c sehingga f(t) / g(t) c. Untuk semua t: f(t) > 0 Teknik: 1. Tetapkan peubah acak Y dengan density g yg memehuni f(t)/g(t) c. Untuk semua t: f(t) > 0. 2. Untuk setiap satu bil. acak: a. Bangkitkan y acak dari sebaran dengan density g b. Bangkitkan u acak dari sebaran Uniform(0,1). c. Jika u < f(y)/(c g(y)) terima y dan x=y; selainnya tolak y dan ulangi langkah 2(a)
Acceptance-Rejection method Ilustrasi: Membangkitkan bil. acak sebaran beta (shape1=2, shape2=2) Pdf dari beta(2,2) : f(x) = 6x(1-x), 0 < x < 1. Tahap: 1. Ambil g(x) dari sebaran Uniform(0,1) 2. Maka f(x)/g(x) 6 untuk 0 < x < 1. 3. Sebuah x acak dari g(x) diterima jika f(x)/ [c g(x)] = 6x(1-x) / [6(1)] = x(1-x) > u
Acceptance-Rejection method Dalam SAS: 10 Distribution of x 8 6 Percent 4 2 0 0.03 0.09 0.15 0.21 0.27 0.33 0.39 0.45 0.51 0.57 0.63 0.69 0.75 0.81 0.87 0.93 0.99 x
Metode Lain: Direct Transformation Beberapa transformasi dari tranformasi invers sebaran dapat digunakan untuk membangkitkan bil. acak: Jika Z ~ N(0,1), maka V = Z 2 ~ χ 2 (1) Jika U ~ χ 2 (m), V ~ χ 2 (n), U dan V bebas, maka F = (U/m ) / ( V/n) ~ F (m,n) Jika Z ~ N(0,1) V ~ χ 2 (n) dan U dan V bebas, maka T = Z / sqrt(v/n) ~ t-student (n) dst
Selesai