Pendahuluan

Metode Monte Carlo merupakan teknik simulasi yang menggunakan bilangan acak untuk memperkirakan nilai suatu parameter atau statistik. Metode ini banyak digunakan dalam bidang statistika, keuangan, manajemen risiko, dan penelitian operasional.

Pada praktikum ini dilakukan simulasi Monte Carlo untuk mengestimasi nilai ekspektasi permintaan harian. Simulasi dilakukan dengan jumlah pengulangan sebanyak 1000, 5000, dan 20000 kali untuk melihat pengaruh ukuran simulasi terhadap kedekatan hasil simulasi dengan nilai teoritis.

Tujuan Praktikum

  1. Menghitung nilai ekspektasi teoritis suatu distribusi probabilitas.
  2. Mengestimasi nilai ekspektasi menggunakan simulasi Monte Carlo.
  3. Membandingkan hasil simulasi dengan nilai teoritis.
  4. Menganalisis pengaruh jumlah simulasi terhadap akurasi estimasi.

Dasar Teori

Metode Monte Carlo

Metode Monte Carlo merupakan metode numerik yang memanfaatkan bilangan acak untuk mensimulasikan suatu proses probabilistik.

Nilai Ekspektasi

Nilai ekspektasi suatu variabel acak diskrit dihitung menggunakan:

\[E(X) = \sum_{i=1}^{n} x_i p_i\]

Law of Large Numbers

Hukum Bilangan Besar menyatakan bahwa rata-rata hasil percobaan akan semakin mendekati nilai harapan teoritis ketika jumlah percobaan semakin besar.


Praktikum

Data Distribusi Permintaan

Mendefinisikan kemungkinan permintaan dan probabilitas masing-masing:

permintaan <- c(50, 60, 70, 80, 90)
prob <- c(0.20, 0.25, 0.30, 0.15, 0.10)

data.frame(
  Permintaan = permintaan,
  Probabilitas = prob
)
##   Permintaan Probabilitas
## 1         50         0.20
## 2         60         0.25
## 3         70         0.30
## 4         80         0.15
## 5         90         0.10

Menghitung Ekspektasi Teoritis

ekspektasi_teoritis <- sum(permintaan * prob)
ekspektasi_teoritis
## [1] 67

Simulasi Monte Carlo

Melakukan simulasi berdasarkan distribusi peluang permintaan yang sudah ditentukan dengan metode resampling.

Simulasi 1000 Kali

set.seed(150)
sim_1000 <- sample(
  permintaan,
  size = 1000,
  replace = TRUE,
  prob = prob
)
mean_1000 <- mean(sim_1000)
mean_1000
## [1] 67.15

Simulasi 5000 Kali

set.seed(150)
sim_5000 <- sample(
  permintaan,
  size = 5000,
  replace = TRUE,
  prob = prob
)
mean_5000 <- mean(sim_5000)
mean_5000
## [1] 67.112

Simulasi 20000 Kali

set.seed(150)
sim_20000 <- sample(
  permintaan,
  size = 20000,
  replace = TRUE,
  prob = prob
)
mean_20000 <- mean(sim_20000)
mean_20000
## [1] 67.041

Hasil dan Perbandingan Estimasi Error

Membuat data frame untuk melihat rekapitulasi perbandingan hasil simulasi dengan nilai teoritis.

hasil <- data.frame(
  Metode = c("Ekspektasi Teoritis", "Simulasi 1000", "Simulasi 5000", "Simulasi 20000"),
  Nilai = c(ekspektasi_teoritis, mean_1000, mean_5000, mean_20000)
)
hasil
##                Metode  Nilai
## 1 Ekspektasi Teoritis 67.000
## 2       Simulasi 1000 67.150
## 3       Simulasi 5000 67.112
## 4      Simulasi 20000 67.041

Melihat besar nilai error/kesalahan dari masing-masing jumlah simulasi:

error <- data.frame(
  Simulasi = c("1000", "5000", "20000"),
  Estimasi = c(mean_1000, mean_5000, mean_20000),
  Error = abs(c(mean_1000, mean_5000, mean_20000) - ekspektasi_teoritis)
)
error
##   Simulasi Estimasi Error
## 1     1000   67.150 0.150
## 2     5000   67.112 0.112
## 3    20000   67.041 0.041

Visualisasi Perbandingan

Membuat plot bar untuk mengilustrasikan hasil yang diperoleh:

barplot(
  hasil$Nilai,
  names.arg = hasil$Metode,
  col = c("orange", "lightblue", "lightgreen", "pink"),
  main = "Perbandingan Ekspektasi Teoritis dan Hasil Simulasi",
  ylab = "Nilai Ekspektasi",
  ylim = c(0, 80) # Memberikan rentang y-axis agar visualisasi lebih jelas
)