Pendahuluan

Variabel Random adalah variabel yang nilainya ditentukan oleh hasil dari suatu percobaan acak. Variabel random dapat dibagi menjadi dua jenis:

Simulasi Sederhana: Variabel Random Uniform

Distribusi uniform adalah distribusi di mana semua nilai dalam interval tertentu memiliki probabilitas yang sama.

# Simulasi 1000 variabel random dari distribusi uniform
set.seed(123)  # Set seed untuk reproducibility
n <- 1000
uniform_data <- runif(n, min = 0, max = 1)

# Plot histogram
hist(uniform_data, breaks = 30, main = "Histogram Distribusi Uniform", xlab = "Nilai", col = "lightblue")

runif(n, min, max) digunakan untuk menghasilkan n variabel random dari distribusi uniform dengan rentang min hingga max. Histogram menunjukkan bahwa nilai-nilai tersebar merata antara 0 dan 1, sesuai dengan sifat distribusi uniform.

Simulasi Distribusi Diskrit: Distribusi Binomial

Distribusi binomial menggambarkan jumlah sukses dalam n percobaan independen dengan probabilitas sukses p.

# Simulasi 1000 variabel random dari distribusi binomial
n_trials <- 10  # Jumlah percobaan
p_success <- 0.5  # Probabilitas sukses
binomial_data <- rbinom(n, size = n_trials, prob = p_success)

# Plot histogram
hist(binomial_data, breaks = 30, main = "Histogram Distribusi Binomial", xlab = "Jumlah Sukses", col = "lightgreen")

rbinom(n, size, prob) digunakan untuk menghasilkan n variabel random dari distribusi binomial dengan size percobaan dan probabilitas sukses prob. Histogram menunjukkan distribusi jumlah sukses, yang berbentuk simetris karena p = 0.5.

Simulasi Distribusi Kontinu: Distribusi Normal

Distribusi normal adalah distribusi kontinu yang berbentuk lonceng, dengan mean mu dan standar deviasi sigma.

# Simulasi 1000 variabel random dari distribusi normal
mu <- 0  # Mean
sigma <- 1  # Standar deviasi
normal_data <- rnorm(n, mean = mu, sd = sigma)

# Plot histogram
hist(normal_data, breaks = 30, main = "Histogram Distribusi Normal", xlab = "Nilai", col = "lightpink")

rnorm(n, mean, sd) digunakan untuk menghasilkan n variabel random dari distribusi normal dengan mean mu dan standar deviasi sigma. Histogram menunjukkan distribusi berbentuk lonceng, yang khas untuk distribusi normal.

Distribusi Poisson (Diskrit)

lambda <- 3  # Parameter lambda
poisson_data <- rpois(n, lambda)
hist(poisson_data, breaks = 30, main = "Histogram Distribusi Poisson", xlab = "Jumlah Kejadian", col = "lightyellow")

Distribusi Poisson digunakan untuk memodelkan jumlah kejadian langka dalam interval waktu atau ruang. Histogram menunjukkan distribusi yang miring ke kanan, yang khas untuk distribusi Poisson dengan lambda kecil.

Distribusi Eksponensial (Kontinu)

rate <- 1  # Parameter rate
exp_data <- rexp(n, rate)
hist(exp_data, breaks = 30, main = "Histogram Distribusi Eksponensial", xlab = "Nilai", col = "lightcoral")

Distribusi eksponensial digunakan untuk memodelkan waktu antara kejadian dalam proses Poisson. Histogram menunjukkan distribusi yang miring ke kanan, dengan nilai-nilai yang semakin kecil semakin sering muncul.

Latihan Studi Kasus

Studi Kasus 1: Simulasi Pendapatan Bulanan

# Simulasi pendapatan bulanan
set.seed(123)
n_employees <- 500
mean_income <- 10000000
sd_income <- 2000000
income_data <- rnorm(n_employees, mean = mean_income, sd = sd_income)

# 1. Rata-rata pendapatan simulasi
mean_simulated <- mean(income_data)
cat("Rata-rata pendapatan simulasi:", mean_simulated, "\n")
## Rata-rata pendapatan simulasi: 10069181
# 2. Probabilitas pendapatan di atas Rp 12.000.000
prob_above_12m <- sum(income_data > 12000000) / n_employees
cat("Probabilitas pendapatan di atas Rp 12.000.000:", prob_above_12m, "\n")
## Probabilitas pendapatan di atas Rp 12.000.000: 0.164
  1. Simulasi ini memodelkan pendapatan bulanan karyawan dengan distribusi normal.
  2. Rata-rata pendapatan simulasi mendekati mean yang diberikan (Rp 10.000.000).
  3. Probabilitas pendapatan di atas Rp 12.000.000 dihitung dengan menghitung proporsi data yang melebihi nilai tersebut.

Studi Kasus 2: Simulasi Jumlah Pelanggan

# Simulasi jumlah pelanggan
set.seed(123)
n_days <- 30
lambda_customers <- 50
customers_data <- rpois(n_days, lambda_customers)

# 1. Rata-rata jumlah pelanggan simulasi
mean_customers <- mean(customers_data)
cat("Rata-rata jumlah pelanggan simulasi:", mean_customers, "\n")
## Rata-rata jumlah pelanggan simulasi: 48.96667
# 2. Probabilitas jumlah pelanggan lebih dari 60
prob_above_60 <- sum(customers_data > 60) / n_days
cat("Probabilitas jumlah pelanggan lebih dari 60:", prob_above_60, "\n")
## Probabilitas jumlah pelanggan lebih dari 60: 0.03333333

Tugas Tambahan

1. Buat simulasi untuk distribusi diskrit dan distribusi kontinu.

  1. Simulasi Distribusi Diskrit: Distribusi Geometrik Distribusi geometrik memodelkan jumlah percobaan sampai sukses pertama dalam percobaan Bernoulli berulang. Misalnya, dalam sebuah toko, pelanggan berhasil melakukan pembelian dengan probabilitas 0.3.
set.seed(123)
n <- 1000
p_success <- 0.5  # Probabilitas sukses
geo_data <- rgeom(n, prob = p_success)

# Plot histogram
hist(geo_data, breaks = 50, main = "Histogram Distribusi Geometrik", xlab = "Jumlah Percobaan hingga Sukses", col = "lightpink")

Histogram menunjukkan bahwa sebagian besar pelanggan langsung melakukan pembelian pada percobaan pertama (nilai 0 dalam distribusi geometrik berarti sukses terjadi pada percobaan pertama). Semakin besar jumlah percobaan hingga sukses, semakin jarang terjadi, yang terlihat dari ekor panjang ke kanan. Hal ini sesuai dengan sifat distribusi geometrik yang bersifat monoton menurun, dengan probabilitas keberhasilan terbesar pada percobaan pertama.

  1. Simulasi Distribusi Kontinu: Distribusi Gamma Distribusi gamma sering digunakan untuk memodelkan waktu hingga terjadi beberapa kejadian dalam proses Poisson. Misalnya, waktu hingga seorang pelanggan melakukan 5 pembelian di toko online jika rata-rata pembelian terjadi setiap 7 hari.
set.seed(123)
n <- 1000
shape <- 5  # Jumlah kejadian yang diharapkan
scale <- 7  # Waktu rata-rata antar kejadian
gamma_data <- rgamma(n, shape = shape, scale = scale)

# Plot histogram
hist(gamma_data, breaks = 50, main = "Histogram Distribusi Gamma", xlab = "Waktu hingga 3 Pembelian", col = "lightblue")

Histogram menunjukkan bahwa waktu hingga pelanggan mencapai 3 pembelian memiliki distribusi yang asimetris dengan ekor ke kanan. Nilai mode berada di sekitar 3 × skala (5), yaitu sekitar 15 menit, tetapi ada variabilitas karena distribusi gamma tidak simetris. Untuk shape besar, distribusi gamma semakin menyerupai distribusi normal, tetapi dengan shape 3, distribusi masih cukup miring ke kanan.

2. Buat studi kasus sendiri yang melibatkan simulasi variabel random dari distribusi yang telah dipelajari.

Studi Kasus: Simulasi Waktu Pelayanan di Restoran Sebuah restoran ingin memodelkan waktu pelayanan setiap pelanggan, yang diasumsikan mengikuti distribusi eksponensial dengan rata-rata 7 menit.

set.seed(123)
n_customers <- 100  # Jumlah pelanggan yang disimulasikan
rate_service <- 1/7  # Rata-rata waktu pelayanan 7 menit
service_times <- rexp(n_customers, rate = rate_service)

# 1. Rata-rata waktu pelayanan simulasi
mean_service <- mean(service_times)
cat("Rata-rata waktu pelayanan simulasi:", mean_service, "menit\n")
## Rata-rata waktu pelayanan simulasi: 7.320031 menit
# 2. Probabilitas pelayanan lebih dari 8 menit
prob_above_8 <- sum(service_times > 8) / n_customers
cat("Probabilitas pelayanan lebih dari 8 menit:", prob_above_8, "\n")
## Probabilitas pelayanan lebih dari 8 menit: 0.36
# Plot histogram
hist(service_times, breaks = 30, main = "Histogram Waktu Pelayanan", xlab = "Menit", col = "lightcoral")

Histogram menunjukkan bahwa distribusi bersifat memoryless, yang berarti peluang seorang pelanggan memerlukan waktu tambahan untuk dilayani tidak dipengaruhi oleh berapa lama mereka sudah menunggu.