Simulasi Variabel Random

Pendahuluan

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

  1. Variabel Random Diskrit: Variabel yang hanya dapat mengambil nilai-nilai tertentu (biasanya bilangan bulat). Contoh: jumlah pelanggan yang datang ke restoran dalam sehari.
  2. 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.

Simulasi Sederhana: Variabel Random Uniform

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

set.seed(123)
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.

STUDI KASUS

Studi Kasus 1: Simulasi Pendapatan Bulanan

# Simulasi pendapatan bulanan
set.seed(123)
n_employees <- 500
mean_income <- 10000000
sd_income <- 500000
income_data <- rnorm(n_employees, mean = mean_income, sd = sd_income)
income_data
##   [1]  9719762  9884911 10779354 10035254 10064644 10857532 10230458  9367469
##   [9]  9656574  9777169 10612041 10179907 10200386 10055341  9722079 10893457
##  [17] 10248925  9016691 10350678  9763604  9466088  9891013  9486998  9635554
##  [25]  9687480  9156653 10418894 10076687  9430932 10626907 10213232  9852464
##  [33] 10447563 10439067 10410791 10344320 10276959  9969044  9847019  9809764
##  [41]  9652647  9896041  9367302 11084478 10603981  9438446  9798558  9766672
##  [49] 10389983  9958315 10126659  9985727  9978565 10684301  9887115 10758235
##  [57]  9225624 10292307 10061927 10107971 10189820  9748838  9833396  9490712
##  [65]  9464104 10151764 10224105 10026502 10461134 11025042  9754484  8845416
##  [73] 10502869  9645400  9655996 10512786  9857613  9389641 10090652  9930554
##  [81] 10002882 10192640  9814670 10322188  9889757 10165891 10548420 10217591
##  [89]  9837034 10574404 10496752 10274198 10119366  9686047 10680326  9699870
##  [97] 11093666 10766305  9882150  9486790  9644797 10128442  9876654  9826229
## [105]  9524191  9977486  9607548  9166029  9809887 10459498  9712327 10303982
## [113]  9191059  9972219 10259704 10150577 10052838  9679647  9575148  9487936
## [121] 10058823  9526263  9754721  9871954 10921931  9674025 10117693 10038980
## [129]  9519072  9964346 10722275 10225752 10020616  9788752  8973376 10565669
## [137]  9269680 10369974 10954552  9278053 10350892  9868901  9213928  9242666
## [145]  9199232  9734547  9269122 10343958 11050054  9356485 10393869 10384521
## [153] 10166101  9495812  9940274  9859802 10281495  9813781 10488487  9812710
## [161] 10526356  9475411  9369922 11620520  9791571 10149114 10318285  9758110
## [169] 10258431 10184482  9892310 10032647  9982966 11064226  9629332  9452002
## [177] 10018894 10155240 10218262  9770817  9468337 10631593  9825175  9567244
## [185]  9881860  9901412 10554960 10042369 10377027  9750354 10107223  9837657
## [193] 10047292  9552318  9344599 10998607 10300354  9374364  9694417  9407260
## [201] 11099405 10656206  9867427 10271597  9792830  9761877  9605699  9702691
## [209] 10825454  9972986 10059623 10121844 10616238  9741968  9503746 10837848
## [217]  9779418  9638467  9381863  9357642  9713013 10308993 10554924 10353794
## [225]  9818171 10029875  9647702  9641391 10442325  9492204 10977647  9954840
## [233] 10107269  9630736  9712806  9341492  9908537 10209491 10162152  9609232
## [241]  9605689  9748901 10748030  9431348  9910474 10951181  9949513  9320080
## [249]  9667615 10242730  9812199  9719062  9828041 10045248 10799254  9955717
## [257] 10540400 10315377  9943180  9233549  9739441  9755065 10023577 10650099
## [265] 11146539 10773791  9933425  9121736  9805610 10044604 10422507 10481264
## [273] 10342155  9302363 10424822  9776721 10087401 10037276 10214083 10012337
## [281]  9166262 10368248 10193013  9867174 10059072 10067019 10110510 10820423
## [289]  9890475 10084033 10584192 10527091 10572632  9711266 11001241 10033350
## [297] 10933426  9324549 10010492 10624957  9642379  9623656  9530731  9473743
## [305]  9781420 10165590  8992895 10105990 10618338 11018787 10650588 10378387
## [313]  9136635  9699247  9823977 10351762  9947164  9370676 10842218 10455696
## [321] 10118715 10609054  9330613 10330410  9738544 10341873  9969589 10316480
## [329] 10667759 10003645 10508779  9405783  9639198 10759609 10188694  8973889
## [337]  9317981  9899609 10432890  9949058 10312094 10479503 10835527 10028008
## [345]  9974009  9123381 10049664  9714075  9512995  9910047 10507472  9003626
## [353]  9786360 10058319  9553396 10166951 10205715  9983482  8767051 11285729
## [361]  9897350 10325597 10136883 10512337 10408830  9895103 10189084  9527296
## [369] 10428462  9769481 11208387  9174476  9768006 10412690 10255066  9705259
## [377]  9501610 10072238  9992846  9104859 10017276 10095115 10087363  9472491
## [385] 10238067 10689285 10228118  9432206  9782177 10173052  9676477  8921177
## [393] 10442125  9585261  9713220 10751950  9612928 10422866  9369659  9822729
## [401]  9963222  9415674  9682626  9985579 10335348  9174727  9825123 10378203
## [409]  9730595 10113646 10246114 10133918 10326629  9938646  9793162  8678426
## [417]  9953529 10215142 10267699  9722361 10889751 10143212 10063158 10636133
## [425]  9640767  9774831 11198726 10005565 10816784  9280747  9904742 10189212
## [433] 10150019  9497182 10009630  9461290 10356352 10542388  8887506 10617847
## [441]  9379478 10227385 10329951  9900055  9677443 10082661 10219409 10441651
## [449]  8973832  9181810 10715201 10523314 10217644 10357589 10458587  8669539
## [457] 10555139  9757506 10115308  9852421 10435982  9825764 10259252  9804658
## [465]  9453606 10605005 10370450 10862131 10032577 10562501 10987710  9859259
## [473]  9338524  9880324  9892979 10075840 10856152  9836928 10186502  9886158
## [481] 10010225 10157029 10664107 10060659 10356421 10389430 10457387  9712803
## [489] 10813441  9809522  9947108 10702025 10647042  9455004  9563464  9320960
## [497] 10090924 10082420 10182057 10276079
# Rata-rata pendapatan simulasi
mean_simulated <- mean(income_data)
cat("Rata-rata pendapatan simulasi:", mean_simulated, "\n")
## Rata-rata pendapatan simulasi: 10017295
# 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
summary(income_data)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##  8669539  9712684 10010359 10017295 10342606 11620520
  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)
customers_data
##  [1] 46 58 38 50 62 53 41 37 58 52 52 50 46 59 55 49 44 42 47 44 57 48 41 41 47
## [26] 47 49 56 48 52
# 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
# 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.

  1. Rata-rata jumlah pelanggan simulasi mendekati lambda (50).
  2. Probabilitas jumlah pelanggan lebih dari 60 dihitung dengan menghitung proporsi data yang melebihi nilai tersebut.