Tugas Lakukan modifikasi pada salah satu kode program yang telah diberikan dengan mengubah jumlah simulasi menjadi 1.000, 5.000, dan 20.000. Jalankan simulasi untuk masing-masing kondisi tersebut, kemudian bandingkan nilai ekspektasi yang dihasilkan dengan nilai ekspektasi hasil perhitungan manual. Selanjutnya, analisis bagaimana perubahan jumlah simulasi memengaruhi kedekatan hasil simulasi terhadap nilai teoritis, serta jelaskan mengapa peningkatan jumlah simulasi dapat menghasilkan estimasi yang lebih stabil dan akurat.

# ====================================
# MODIFIKASI TUGAS MONTE CARLO
# Jumlah simulasi:
# 1000, 5000, 20000
# ====================================

# Data awal

tabel_permintaan <- data.frame(
  permintaan = c(50, 60, 70, 80, 90),
  frekuensi = c(10, 20, 40, 20, 10)
)


# probabilitas

total_frekuensi <- sum(tabel_permintaan$frekuensi)

tabel_permintaan$probabilitas <-
  tabel_permintaan$frekuensi / total_frekuensi


# probabilitas kumulatif

tabel_permintaan$probabilitas_kumulatif <-
  cumsum(tabel_permintaan$probabilitas)


# interval angka acak

tabel_permintaan$batas_bawah <-
  c(1,
    head(tabel_permintaan$probabilitas_kumulatif,-1)*100 + 1)

tabel_permintaan$batas_atas <-
  tabel_permintaan$probabilitas_kumulatif*100


tabel_permintaan
##   permintaan frekuensi probabilitas probabilitas_kumulatif batas_bawah
## 1         50        10          0.1                    0.1           1
## 2         60        20          0.2                    0.3          11
## 3         70        40          0.4                    0.7          31
## 4         80        20          0.2                    0.9          71
## 5         90        10          0.1                    1.0          91
##   batas_atas
## 1         10
## 2         30
## 3         70
## 4         90
## 5        100
permintaan_simulasi <- function(n, tabel_permintaan) {
  
  bilangan_acak <- sample(1:100, n, replace = TRUE)
  
  
  prediksi_permintaan <- sapply(
    bilangan_acak,
    function(x){
      
      index <- which(
        x >= tabel_permintaan$batas_bawah &
        x <= tabel_permintaan$batas_atas
      )
      
      if(length(index) == 0){
        return(NA)
      } else {
        return(tabel_permintaan$permintaan[index])
      }
      
    }
  )
  
  
  hasil <- data.frame(
    bilangan_acak = bilangan_acak,
    prediksi_permintaan = prediksi_permintaan
  )
  
  
  na.omit(hasil)
}
set.seed(123)

sim_1000 <- permintaan_simulasi(
  1000,
  tabel_permintaan
)

sim_5000 <- permintaan_simulasi(
  5000,
  tabel_permintaan
)

sim_20000 <- permintaan_simulasi(
  20000,
  tabel_permintaan
)


hasil <- data.frame(
  Metode=c(
    "Ekspektasi Teoritis",
    "Simulasi 1000",
    "Simulasi 5000",
    "Simulasi 20000"
  ),
  
  Permintaan_Rata_Rata=c(
    70,
    mean(sim_1000$prediksi_permintaan),
    mean(sim_5000$prediksi_permintaan),
    mean(sim_20000$prediksi_permintaan)
  )
)


hasil
##                Metode Permintaan_Rata_Rata
## 1 Ekspektasi Teoritis             70.00000
## 2       Simulasi 1000             70.45547
## 3       Simulasi 5000             69.98183
## 4      Simulasi 20000             69.93790

Interpretasi Hasil Simulasi Monte Carlo

Berdasarkan hasil simulasi Monte Carlo, diperoleh nilai ekspektasi teoritis sebesar 70. Nilai tersebut dibandingkan dengan hasil simulasi menggunakan jumlah pengulangan yang berbeda, yaitu 1.000, 5.000, dan 20.000 simulasi.

Hasil simulasi menunjukkan bahwa pada 1.000 simulasi, rata-rata permintaan yang diperoleh sebesar 70,45547. Nilai ini memiliki selisih sebesar:

∣70,45547−70∣=0,45547

dari nilai ekspektasi teoritis. Perbedaan ini terjadi karena jumlah simulasi masih relatif sedikit sehingga pengaruh variasi acak masih cukup besar.

Pada 5.000 simulasi, rata-rata permintaan menjadi 69,98183 dengan selisih:

∣69,98183−70∣=0,01817

Nilai tersebut sudah sangat mendekati ekspektasi teoritis.

Kemudian pada 20.000 simulasi, diperoleh rata-rata permintaan sebesar 69,93790 dengan selisih:

∣69,93790−70∣=0,06210

Hasil ini juga mendekati nilai teoritis dan menunjukkan estimasi yang lebih stabil dibandingkan jumlah simulasi yang lebih kecil.

Secara keseluruhan, peningkatan jumlah simulasi menyebabkan hasil estimasi ekspektasi semakin mendekati nilai teoritis. Hal ini terjadi karena semakin banyak pengulangan simulasi, semakin banyak kemungkinan acak yang tercakup sehingga pengaruh kesalahan random semakin kecil. Dengan demikian, metode Monte Carlo dengan jumlah simulasi yang lebih besar menghasilkan estimasi yang lebih stabil dan akurat.