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 = "paleturquoise")
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.
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 = "red4")
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.
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 = "red")
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.
lambda <- 3 # Parameter lambda
poisson_data <- rpois(n, lambda)
hist(poisson_data, breaks = 30, main = "Histogram Distribusi Poisson", xlab = "Jumlah Kejadian", col = "lightblue")
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.
rate <- 1 # Parameter rate
exp_data <- rexp(n, rate)
hist(exp_data, breaks = 30, main = "Histogram Distribusi Eksponensial", xlab = "Nilai", col = "red2")
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.
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
## 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
## Probabilitas pendapatan di atas Rp 12.000.000: 0.164
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
## 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
## Probabilitas jumlah pelanggan lebih dari 60: 0.03333333
n <- 100 # Jumlah percobaan
p <- 0.3 # Probabilitas sukses
set.seed(123)
data_binomial <- rbinom(n, size = 10, prob = p)
hist(data_binomial, main="Distribusi Binomial", col="lightyellow", border="red3")
n <- 1000 # Jumlah sampel
mu <- 50 # Mean
sigma <- 10 # Standard Deviasi
set.seed(123)
data_normal <- rnorm(n, mean = mu, sd = sigma)
hist(data_normal, main="Distribusi Normal", col="lightgreen", border="black", probability=TRUE)
lines(density(data_normal), col="red4", lwd=2)
Misalkan sebuah perusahaan logistik ingin mensimulasikan waktu pengiriman paket yang mengikuti distribusi normal dengan rata-rata 3 hari dan standar deviasi 1 hari. Berapa kemungkinan paket akan tiba dalam waktu kurang dari 2 hari?
n_sim <- 10000
mean_delivery <- 3
sd_delivery <- 1
set.seed(123)
delivery_times <- rnorm(n_sim, mean = mean_delivery, sd = sd_delivery)
prob_under_2_days <- mean(delivery_times < 2)
cat("Probabilitas paket tiba dalam waktu kurang dari 2 hari:", prob_under_2_days)
## Probabilitas paket tiba dalam waktu kurang dari 2 hari: 0.1612
hist(delivery_times, main="Simulasi Waktu Pengiriman Paket", col="paleturquoise4", border="black", probability=TRUE)
lines(density(delivery_times), col="blue", lwd=2)
abline(v=2, col="red4", lwd=2, lty=2)
legend("topright", legend=c("Density Curve", "2 Days Cut-off"), col=c("paleturquoise2", "red"), lwd=2, lty=c(1,2))