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 apapun 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.
Studi Kasus: Jumlah Pelanggan Harian di Minimarket diasumsikan jumlah pelanggan per hari mengikuti distribusi Poisson.
# SIMULASI DISTRIBUSI DISKRIT
# Distribusi Poisson
set.seed(123)
n_days <- 30 #jumlah hari
lambda <- 41 #rata-rata pelanggan per hari
#Simulasi data
customers <- rpois(n_days,lambda)
customers
## [1] 37 48 30 41 51 43 32 29 48 43 43 41 37 49 46 40 35 34 38 36 47 40 33 33 38
## [26] 39 46 46 46 45
# Rata-rata simulasi
mean_customers <- mean(customers)
cat("Rata-rata pelanggan:", mean_customers, "\n")
## Rata-rata pelanggan: 40.46667
# Probabilitas pelanggan > 50
prob_gt_50 <- sum(customers > 50) / n_days
cat("Probabilitas pelanggan > 50:", prob_gt_50, "\n")
## Probabilitas pelanggan > 50: 0.03333333
#Visualisasi
hist(customers, breaks = 15, col = "lightgreen", main = "Histogram Jumlah Pelanggan Harian", xlab = "Jumlah Pelanggan")
Simulasi ini memodelkan jumlah pelanggan yang datang ke Minimarket tiap harinya dengan menggunakan distribusi Poisson.
Rata-rata jumlah pelanggan simulasi sebesar 40.46667 mendekati lambda (41).
Probabilitas jumlah pelanggan > 50 tergolong kejadian yang jarang dalam model ini, dengan peluang hanya sekitar 3,33%.
Studi Kasus: Waktu Tunggu Pelanggan di Loket diasumsikan waktu tunggu mengikuti distribusi eksponensial.
# SIMULASI DISTRIBUSI KONTINU
# Distribusi Eksponensial
set.seed(123)
n <- 500
rate <- 0.2 #rata-rata waktu tunggu = 1/rate = 5 menit
#Simulasi data
waiting_time <- rexp(n, rate)
waiting_time
## [1] 4.217286305 2.883051354 6.645274339 0.157886796 0.281054880
## [6] 1.582506082 1.571136461 0.726334020 13.631182322 0.145767235
## [11] 5.024150288 2.401073638 1.405068138 1.885589155 0.941420204
## [16] 4.248930649 7.816017698 2.393802082 2.954674177 20.205058557
## [21] 4.215748656 4.829356055 7.426378970 6.740222429 5.842644921
## [26] 8.029261715 7.483714344 7.853262734 0.158838720 2.989248456
## [31] 10.839198727 2.533078643 1.297789087 12.984460582 6.145128659
## [36] 3.953408794 3.146400389 6.273205015 2.943423211 5.646450169
## [41] 2.101824014 36.055037880 4.228609826 1.127710033 5.501694088
## [46] 11.241528462 6.818671496 2.881958340 13.626379249 6.560815213
## [51] 0.452956751 1.531019250 5.336065348 1.567581280 4.873200753
## [56] 9.439116576 2.822943013 12.884806645 5.238478740 5.122206709
## [61] 5.139348078 1.423342303 7.815259443 0.210441465 0.493154449
## [66] 0.492846561 1.401925807 1.478934793 4.862148245 4.620136120
## [71] 8.212022634 8.099563838 12.680727699 7.607748117 1.900071015
## [76] 1.192564834 2.332437118 0.211357258 1.598384497 3.218054601
## [81] 2.862815517 1.080277513 22.493366989 9.285452766 3.427293189
## [86] 7.197263131 8.655769918 6.223916500 7.316502800 7.686969893
## [91] 0.022995633 5.543827340 1.499851588 5.960015035 5.574643519
## [96] 0.336879455 2.403343604 7.852271695 1.299730535 9.284611437
## [101] 2.316098104 1.180178733 5.910497107 0.298356859 2.016192207
## [106] 4.714699201 2.082903222 3.766092025 0.943431940 4.384269356
## [111] 0.950189103 4.895391031 1.616879136 6.602387768 1.592303242
## [116] 8.025336479 0.728670582 9.015646593 0.150297272 6.517202747
## [121] 0.998961224 8.757281210 8.818341661 4.215217891 1.743763881
## [126] 16.489123999 2.008530875 5.503508672 6.644615861 3.209513240
## [131] 0.979168577 2.283944283 1.863750820 17.317974455 6.370138596
## [136] 5.407425753 1.484795804 0.420803672 14.767004586 9.841261273
## [141] 3.319275628 8.046960719 3.034185420 0.468261566 1.623176420
## [146] 8.799411561 1.330553598 4.703130838 2.245543464 6.444532396
## [151] 0.891445313 7.858630438 0.310703989 2.852916713 8.653904227
## [156] 6.553719523 6.474364831 2.336553545 0.164448943 0.765190213
## [161] 5.192360021 5.412228531 18.736455691 0.028130456 0.021836853
## [166] 8.499920805 2.703340743 2.351843058 0.257797078 2.585931695
## [171] 7.415715046 6.397427795 7.132340870 10.591471707 7.120801870
## [176] 4.420571555 13.454934293 11.149535486 2.614022301 0.343252824
## [181] 2.845752665 21.829554679 2.790658828 2.293906519 1.301318528
## [186] 3.494208725 4.815941943 3.657397774 5.561397853 3.028122729
## [191] 3.357088370 8.158294151 0.509630658 2.039920613 13.701742766
## [196] 14.259387291 0.120866861 2.377974030 3.340543092 4.751151511
## [201] 5.688875013 0.413825433 8.214538524 0.794502074 7.393079688
## [206] 0.565158695 1.120628352 3.352553200 7.684153551 9.644109681
## [211] 1.067861002 2.839464787 9.666619002 18.013739315 6.597893229
## [216] 4.653820675 1.577284312 0.723910260 4.641472557 1.291712330
## [221] 2.691939112 0.376771830 0.642188531 12.994200764 10.350954970
## [226] 1.026905087 13.830627398 7.281713857 13.814611489 7.414170662
## [231] 1.370521309 3.751668631 5.251987506 1.807875512 4.804720864
## [236] 3.315685980 7.888187067 9.612404555 1.115015747 19.226029448
## [241] 0.962635446 4.904483417 1.049788440 6.229829178 8.350475505
## [246] 1.953443616 5.056684171 0.374918213 13.352873576 8.378102313
## [251] 4.125593318 0.838723360 2.317076589 8.552308250 2.455730827
## [256] 7.814836148 5.626875171 1.733324814 0.238226017 5.461771758
## [261] 7.133149203 2.590694156 8.127940837 10.970087203 0.849365573
## [266] 3.881296292 7.911763522 3.103980662 12.910536276 3.220300712
## [271] 5.761389134 3.467348680 7.677182029 3.139337213 4.621013389
## [276] 1.877426857 0.401261741 1.782238574 6.357549329 11.036325925
## [281] 3.767047564 0.171687135 2.869273527 5.537857422 5.794564802
## [286] 4.207738517 11.795040694 5.774821294 9.052024390 0.360537206
## [291] 0.039487120 1.182929428 11.999702239 1.371255285 8.801208045
## [296] 3.682864251 3.150814951 4.488586392 5.759156463 4.707991741
## [301] 14.842137992 0.188049234 1.790134157 0.088468795 4.523488395
## [306] 1.549312163 3.164781388 15.182815268 2.390316855 5.440125777
## [311] 3.292508235 0.355413917 3.956643175 3.009482119 12.728783292
## [316] 3.321077742 4.002837352 2.531100996 0.282341582 3.022382171
## [321] 6.169207995 5.017683883 10.129019925 0.693826627 1.835849145
## [326] 1.657351425 0.298924586 0.098428994 17.500033405 16.496541201
## [331] 0.696892311 1.502615004 1.537666824 6.370811132 3.123048285
## [336] 0.470234177 1.917640152 0.874613670 5.923074021 6.731844065
## [341] 18.205186305 0.667340828 6.282868647 5.823654858 0.524498134
## [346] 1.667051578 0.210655139 0.306243865 0.083706297 5.215635849
## [351] 0.110805219 1.864903511 7.534453766 3.014295837 7.782754125
## [356] 3.227173917 5.085692475 5.949123660 1.297454238 13.127907151
## [361] 19.366668415 2.023777822 2.548654536 0.153002078 2.754075914
## [366] 6.002064240 15.600231401 5.753957536 3.940761299 1.055239610
## [371] 2.591353394 3.448346243 3.826444968 9.537835313 3.189553833
## [376] 6.821277938 0.938384931 2.988235578 0.313032490 1.257436371
## [381] 2.456362173 12.227484295 4.476088127 1.145621573 2.529320579
## [386] 1.648825608 2.366203461 0.195405903 0.029083041 5.476631364
## [391] 3.455561229 3.064351638 11.212587436 11.393747804 0.544702174
## [396] 8.872181652 18.752362457 0.213138463 12.299439171 4.125782824
## [401] 6.874433923 0.872781242 3.066944296 10.011280160 5.018881582
## [406] 2.147548106 3.312219789 1.908292142 0.223357661 8.759402018
## [411] 3.603605085 1.348005098 0.395609140 7.535613803 4.139971440
## [416] 0.830305952 8.532507494 13.101296564 4.698711534 3.668385376
## [421] 19.734917012 1.159593510 0.464262587 5.994625767 9.366392409
## [426] 5.270837939 1.596213372 2.293609313 3.478504463 0.373907434
## [431] 2.106709817 2.123732430 19.642178220 6.804026896 2.243533793
## [436] 8.820475647 4.781991686 3.042562793 0.004129869 7.865567477
## [441] 16.761231161 0.973534826 4.892304772 0.279290003 2.954220204
## [446] 10.911815455 1.950206973 0.864377357 8.308891011 11.127612190
## [451] 0.574375831 3.592943520 10.081224348 0.137811392 8.602850364
## [456] 0.693526887 7.697564410 7.759822309 6.711398163 1.830102825
## [461] 1.534278204 2.342456244 3.074991093 7.054048590 3.481306582
## [466] 5.096675735 6.611121702 1.353675770 3.086120449 3.641759930
## [471] 3.194671399 22.393398271 10.068155871 18.334509012 4.128389847
## [476] 1.880271292 8.627699318 6.618349058 13.694133059 4.077039398
## [481] 5.695060314 3.650632724 3.886032815 16.381932496 3.721661987
## [486] 1.656004964 1.676402313 16.769439093 1.951052444 5.730967237
## [491] 0.482443058 4.365921328 6.974783223 0.899016238 0.616756089
## [496] 1.887211201 4.691152083 1.055868415 0.262900780 15.039753347
# Probabilitas waktu tunggu > 10 menit
prob_gt_10 <- sum(waiting_time > 10) /n
cat("Probabilitas waktu nunggu > 10 menit:", prob_gt_10, "\n")
## Probabilitas waktu nunggu > 10 menit: 0.124
# Visualisasi
hist(waiting_time, breaks = 30, col = "lightgrey", main = "Histogram Waktu Tunggu Pelanggan", xlab = "Waktu Tunggu (menit)")
Secara visual, kejadian waktu tunggu > 10 menit berada di bagian ekor kanan histogram, yang luas areanya relatif kecil, konsisten dengan probabilitas 12,4% sehingga hasil simulasi menunjukkan bahwa mayoritas pelanggan dapat dilayani dalam kurang dari 10 menit. Sekitar 12,4% pelanggan masih berpotensi mengalami waktu tunggu yang cukup lama. Hal ini mengindikasikan adanya risiko antrean panjang pada kondisi tertentu.
Studi Kasus: Simulasi Jumlah Mahasiswa dengan IPK ≥ 3,50 dalam Satu Angkatan
# Simulasi 1000 variabel random dari distribusi binomial
# Studi Kasus Distribusi Diskrit: IPK Mahasiswa
set.seed(123)
n_sim <- 1000 #Jumlah simulasi
n_students <- 40 #Jumlah mahasiswa
p_high_ipk <- 0.25 #peluang IPK ≥ 3.50
# Simulasi jumlah mahasiswa ber-IPK tinggi
high_ipk <- rbinom(n_sim, size = n_students, prob = p_high_ipk)
# Rata-rata hasil simulasi
mean_high_ipk <- mean(high_ipk)
cat("Rata-rata mahasiswa IPK >= 3.50:", mean_high_ipk, "\n")
## Rata-rata mahasiswa IPK >= 3.50: 9.96
# Probabilitas jumlah mahasiswa IPK >= 3.50 lebih dari 15
prob_gt_15 <- sum(high_ipk > 15) / n_sim
cat("Probabilitas mahasiswa IPK >= 3.50 > 15:", prob_gt_15, "\n")
## Probabilitas mahasiswa IPK >= 3.50 > 15: 0.026
# Visualisasi
hist(high_ipk, breaks = 20, col = "lightblue", main = "Jumlah Mahasiswa dengan IPK ≥ 3.50", xlab = "Jumlah Mahasiswa")
Jumlah mahasiswa dengan IPK ≥ 3,50 dalam satu angkatan dimodelkan menggunakan distribusi binomial. Hasil simulasi menunjukkan bahwa rata-rata terdapat sekitar 10 mahasiswa berprestasi tinggi, sedangkan kejadian dengan jumlah lebih dari 15 mahasiswa relatif jarang.