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.
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")
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 = "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.
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.
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
Simulasi ini memodelkan pendapatan bulanan karyawan dengan distribusi normal. Rata-rata pendapatan simulasi mendekati mean yang diberikan (Rp 10.000.000). 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
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.
# Parameter distribusi binomial
n <- 100 # Jumlah percobaan (produk per hari)
p <- 0.05 # Probabilitas sukses (produk cacat)
hari <- 30 # Jumlah hari
# Simulasi jumlah produk cacat per hari
set.seed(123) # Untuk hasil yang reproducible
produk_cacat <- rbinom(hari, n, p)
# Menampilkan hasil simulasi
print(produk_cacat)
## [1] 4 7 4 8 9 2 5 8 5 5 9 5 6 5 2 8 3 2 4 9 8 6 6 11 6
## [26] 6 5 5 4 3
# Visualisasi hasil simulasi
hist(produk_cacat, breaks = 10, main = "Distribusi Jumlah Produk Cacat per Hari",
xlab = "Jumlah Produk Cacat", ylab = "Frekuensi", col = "lightblue")
Distribusi Binomial:
Akan menghasilkan vektor dengan 30 nilai, masing-masing mewakili jumlah produk cacat per hari.
Histogram akan menunjukkan distribusi frekuensi jumlah produk cacat.
# Parameter distribusi normal
mean <- 160 # Rata-rata
sd <- 10 # Standar deviasi
n_siswa <- 200 # Jumlah siswa
# Simulasi tinggi badan siswa
set.seed(123) # Untuk hasil yang reproducible
tinggi_badan <- rnorm(n_siswa, mean, sd)
# Menampilkan hasil simulasi
print(tinggi_badan)
## [1] 154.3952 157.6982 175.5871 160.7051 161.2929 177.1506 164.6092 147.3494
## [9] 153.1315 155.5434 172.2408 163.5981 164.0077 161.1068 154.4416 177.8691
## [17] 164.9785 140.3338 167.0136 155.2721 149.3218 157.8203 149.7400 152.7111
## [25] 153.7496 143.1331 168.3779 161.5337 148.6186 172.5381 164.2646 157.0493
## [33] 168.9513 168.7813 168.2158 166.8864 165.5392 159.3809 156.9404 156.1953
## [41] 153.0529 157.9208 147.3460 181.6896 172.0796 148.7689 155.9712 155.3334
## [49] 167.7997 159.1663 162.5332 159.7145 159.5713 173.6860 157.7423 175.1647
## [57] 144.5125 165.8461 161.2385 162.1594 163.7964 154.9768 156.6679 149.8142
## [65] 149.2821 163.0353 164.4821 160.5300 169.2227 180.5008 155.0897 136.9083
## [73] 170.0574 152.9080 153.1199 170.2557 157.1523 147.7928 161.8130 158.6111
## [81] 160.0576 163.8528 156.2934 166.4438 157.7951 163.3178 170.9684 164.3518
## [89] 156.7407 171.4881 169.9350 165.4840 162.3873 153.7209 173.6065 153.9974
## [97] 181.8733 175.3261 157.6430 149.7358 152.8959 162.5688 157.5331 156.5246
## [105] 150.4838 159.5497 152.1510 143.3206 156.1977 169.1900 154.2465 166.0796
## [113] 143.8212 159.4444 165.1941 163.0115 161.0568 153.5929 151.5030 149.7587
## [121] 161.1765 150.5253 155.0944 157.4391 178.4386 153.4805 162.3539 160.7796
## [129] 150.3814 159.2869 174.4455 164.5150 160.4123 155.7750 139.4675 171.3134
## [137] 145.3936 167.3995 179.0910 145.5611 167.0178 157.3780 144.2786 144.8533
## [145] 143.9846 154.6909 145.3824 166.8792 181.0011 147.1297 167.8774 167.6904
## [153] 163.3220 149.9162 158.8055 157.1960 165.6299 156.2756 169.7697 156.2542
## [161] 170.5271 149.5082 147.3984 192.4104 155.8314 162.9823 166.3657 155.1622
## [169] 165.1686 163.6896 157.8462 160.6529 159.6593 181.2845 152.5866 149.0400
## [177] 160.3779 163.1048 164.3652 155.4163 149.3667 172.6319 156.5035 151.3449
## [185] 157.6372 158.0282 171.0992 160.8474 167.5405 155.0071 162.1445 156.7531
## [193] 160.9458 151.0464 146.8920 179.9721 166.0071 147.4873 153.8883 148.1452
# Visualisasi hasil simulasi
hist(tinggi_badan, breaks = 20, main = "Distribusi Tinggi Badan Siswa",
xlab = "Tinggi Badan (cm)", ylab = "Frekuensi", col = "lightgreen")
Distribusi Normal:
Akan menghasilkan vektor dengan 200 nilai, masing-masing mewakili tinggi badan siswa.
Histogram akan menunjukkan distribusi frekuensi tinggi badan siswa.