Membangkitkan 100 bilangan acak menggunakan Inverse Transform Method dari distribusi binomial dengan rumus distribusi kumulatif \(F(k) = P(X \leq k)\), dengan langkah-langkah, algoritma, dan sintaks dalam R.
Berikut merupakan cara menggunakan Inverse Transform Method untuk membangkitkan bilangan acak dari distribusi binomial:
Input: - Parameter distribusi binomial: \(n\) (jumlah percobaan) dan \(p\) (probabilitas sukses). - \(N\): jumlah bilangan acak yang akan dihasilkan.
Menentukan parameter distribusi binomial:
Menghitung probabilitas binomial \(P(X = k)\) untuk setiap \(k\) dari 0 hingga \(n\):
Menghitung distribusi kumulatif \(F(k)\):
Membangkitkan bilangan acak \(u\) dari distribusi seragam \(U(0, 1)\):
Menemukan nilai \(k\) yang memenuhi \(F(k-1) < u \leq F(k)\):
Mengulangi proses dari langkah 2-6 hingga \(N\) bilangan acak \(k\) telah dibangkitkan.
Output:
Implementasi Inverse Transform Method untuk distribusi Binomial dalam kasus ini melibatkan proses iteratif untuk setiap bilangan acak uniform yang dihasilkan. Metode ini bekerja dengan menghitung fungsi distribusi kumulatif (CDF) Binomial secara bertahap, dimulai dari k=0, dan membandingkannya dengan bilangan acak uniform. Proses ini berlanjut, meningkatkan nilai k, hingga CDF melebihi atau sama dengan bilangan acak uniform. Nilai k terakhir yang memenuhi kondisi ini (dikurangi satu) menjadi sampel yang dihasilkan dari distribusi Binomial. Implementasi ini efisien untuk distribusi diskrit dalam hal ini adalah Distribusni Binomial, memungkinkan generasi sampel yang akurat sesuai dengan parameter n dan p yang ditentukan, meskipun dapat menjadi komputasional intensif untuk nilai n yang sangat besar. Metode ini diulang 100 kali untuk menghasilkan set sampel yang diinginkan, memberikan representasi yang baik dari distribusi Binomial yang mendasarinya.
Contoh Misalkan kita memiliki parameter distribusi binomial atau mendefinsikan nilai parameter distribusi binomial dengan \(n = 5\) dan \(p = 0.4\):
Langkah tersebut dilakukan iterasi.
Input: n (jumlah percobaan), p (probabilitas sukses), N (jumlah bilangan acak) Output: K (daftar bilangan acak dari distribusi binomial)
Tentukan parameter n dan p
Hitung probabilitas binomial P(X = k) untuk k = 0 hingga n: P(X = k) = binomial(n, k) * p^k * (1 - p)^(n - k)
Hitung distribusi kumulatif F(k) untuk setiap k: F(k) = sum(P(X = i) untuk i dari 0 hingga k)
Buat daftar K untuk menyimpan bilangan acak dari distribusi binomial
Untuk i = 1 hingga N (mengulangi sebanyak N kali):
Output daftar K
NIM 1035, maka digunakan set.seed(1035).
# Parameter distribusi binomial
n <- 10 # contoh jumlah percobaan
p <- 0.5 # contoh probabilitas sukses3 dan 4. Hitung probabilitas binomial P(X = k) untuk k = 0 hingga dan Menghitung distribusi kumulatif F(k) tetapi menentukan dl fungsinya
# Membuat fungsi distribusi kumulatif untuk distribusi binomial
binom.cdf <- function(k, n, p) {
return(pbinom(k, n, p)) # Fungsi distribusi kumulatif
}5 dan 6. Membuat daftar K untuk menyimpan bilangan acak dari distribusi binomial dan Untuk i = 1 hingga N (mengulangi sebanyak N kali):
# Membuat 100 bilangan acak menggunakan metode invers
generate_random_binom <- function(n, p, size) {
random_values <- numeric(size) # Vektor untuk menyimpan nilai acak
for (i in 1:size) {
u <- runif(1) # Bangkitkan bilangan acak seragam
k <- 0
while (binom.cdf(k, n, p) < u) {
k <- k + 1
}
random_values[i] <- k
}
return(random_values)
}
# Menghasilkan 100 bilangan acak
random_numbers <- generate_random_binom(n, p, 100)## [1] 4 4 2 4 4 3 5 8 8 6 6 5 2 4 4 6 4 8 3 6 4 6 7 3 6 6 5 6 5 4 5 7 4 6 6 2 5
## [38] 3 3 5 5 4 7 4 4 5 8 9 4 4 3 5 4 5 2 5 4 5 6 4 3 5 5 4 4 8 3 3 2 7 3 3 8 5
## [75] 4 2 4 7 7 7 5 4 5 4 4 4 4 4 6 5 2 7 6 5 2 6 1 6 9 5