Variabel Random adalah variabel yang nilainya ditentukan oleh hasil dari suatu percobaan acak. Variabel random dapat dibagi menjadi dua jenis: - Variabel Random Diskrit: Variabel yang hanya dapat mengambil nilai-nilai tertentu (biasanya bilangan bulat). Contoh: jumlah pelanggan yang datang ke restoran dalam sehari. - Variabel Random Kontinu: Variabel yang dapat mengambil nilai apa pun dalam suatu interval. Contoh: tinggi badan seseorang, pendapatan bulanan. Dalam pemodelan statistika dan simulasi, variabel random digunakan untuk memodelkan fenomena acak. Simulasi variabel random membantu kita memahami distribusi data, menghitung probabilitas, dan membuat prediksi berdasarkan model yang telah dibuat.
Distribusi uniform adalah distribusi di mana semua nilai dalam interval tertentu memiliki probabilitas yang sama.
# Simulasi 1000 variabel random dari distribusi uniform
set.seed(777) # 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.
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.
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.
lambda <- 3 # Parameter lambda
poisson_data <- rpois(n, lambda)
hist(poisson_data, breaks = 30, main = "Histogram Distribusi Poisson", xlab = "Jumlah Kejadian", col = "cyan")
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 = "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.
# Simulasi pendapatan bulanan
set.seed(777)
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: 10036094
# 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.162
# Simulasi jumlah pelanggan
set.seed(777)
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: 50.93333
# 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.1
Simulasi ini memodelkan jumlah pelanggan yang datang ke restoran setiap hari dengan distribusi Poisson.
Rata-rata jumlah pelanggan simulasi mendekati lambda (50).
Probabilitas jumlah pelanggan lebih dari 60 dihitung dengan menghitung proporsi data yang melebihi nilai tersebut.
# Set seed untuk reproducibility
set.seed(777)
# Simulasi Distribusi Diskrit: Poisson
lambda <- 4
poisson_data <- rpois(1000, lambda = lambda)
hist(poisson_data, breaks = 30, main = "Histogram Distribusi Poisson",
xlab = "Jumlah Kejadian", col = "salmon")
# Simulasi Distribusi Kontinu: Normal
normal_data <- rnorm(1000, mean = 0, sd = 1)
hist(normal_data, breaks = 30, main = "Histogram Distribusi Normal",
xlab = "Nilai", col = "skyblue")
#### Keterangan: Distribusi Poisson digunakan untuk memodelkan jumlah
kejadian dalam interval waktu atau ruang tertentu. Dengan nilai λ = 4,
distribusi masih sedikit condong ke kanan, tetapi sudah mulai mendekati
bentuk simetris. Histogram menunjukkan bahwa sebagian besar nilai
berkumpul di sekitar angka 4, sesuai nilai ekspektasinya.
Distribusi Normal digunakan untuk memodelkan fenomena alami seperti tinggi badan, nilai ujian, atau kesalahan pengukuran. Histogram menunjukkan bentuk distribusi simetris berbentuk lonceng (bell-shaped), dengan sebagian besar nilai berkumpul di sekitar mean = 0.
Studi Kasus: Simulasi Tingkat Kepuasan Pelanggan Layanan Internet Distribusi kepuasan pelanggan disimulasikan dari data diskrit (jumlah pelanggan puas dalam survei) dan data kontinu (skor kepuasan dari 1 sampai 10).
# Studi Kasus: Simulasi Kepuasan Pelanggan Layanan Internet
# Set seed untuk konsistensi hasil
set.seed(777)
# Distribusi Diskrit: Jumlah pelanggan puas dari 100 pelanggan, p = 0.7
n_customers <- 100
p_satisfied <- 0.7
satisfied_customers <- rbinom(1000, size = n_customers, prob = p_satisfied)
hist(satisfied_customers, breaks = 30,
main = "Simulasi Jumlah Pelanggan Puas",
xlab = "Jumlah Puas", col = "lightcoral")
# Distribusi Kontinu: Skor kepuasan (1 sampai 10) dari pelanggan
satisfaction_scores <- runif(1000, min = 1, max = 10)
hist(satisfaction_scores, breaks = 30,
main = "Skor Kepuasan Pelanggan",
xlab = "Skor (1-10)", col = "palegreen")
# Nilai rata-rata dari kedua simulasi
mean_satisfied <- mean(satisfied_customers)
mean_score <- mean(satisfaction_scores)
cat("Rata-rata pelanggan puas:", mean_satisfied, "\n")
## Rata-rata pelanggan puas: 70.015
cat("Rata-rata skor kepuasan:", mean_score, "\n")
## Rata-rata skor kepuasan: 5.471387
Distribusi binomial digunakan untuk mensimulasikan jumlah pelanggan yang puas dari total 100 pelanggan, dengan probabilitas kepuasan sebesar 70%. Histogram menunjukkan bahwa sebagian besar observasi berkumpul di sekitar nilai 70, yang sesuai dengan rata-rata simulasi sebesar 70.015. Hal ini mencerminkan bahwa probabilitas kepuasan cukup tinggi dan distribusi mendekati simetris karena ukuran percobaan besar.
Distribusi uniform digunakan untuk mensimulasikan skor kepuasan pelanggan pada skala 1 sampai 10, di mana setiap skor memiliki kemungkinan yang sama untuk muncul. Histogram menunjukkan sebaran yang relatif merata, namun dengan rata-rata skor kepuasan sebesar 5.47, menunjukkan bahwa tingkat kepuasan pelanggan secara umum berada di tengah rentang skala.
Simulasi menunjukkan bahwa sebagian besar pelanggan merasa puas dengan layanan, terlihat dari jumlah pelanggan puas yang mendekati ekspektasi. Skor kepuasan rata-rata yang berada di tengah rentang skala menunjukkan persepsi kepuasan yang cukup stabil, meskipun masih ada ruang untuk peningkatan kualitas layanan.