Prediksi Permintaan menggunakan Monte Carlo

# Nilai variabel
permintaan_teh <- c(50, 60, 70, 80, 90)  
# Frekuensi observasi
frekuensi_teh <- c(10, 20, 40, 20, 10)  
# Hitung probabilitas
prob_teh <- frekuensi_teh / sum(frekuensi_teh)

Simulasi Monte Carlo

# Prediksi 5 hari ke depan
sim_5_hari <- sample(permintaan_teh, size = 5, replace = TRUE, prob = prob_teh)
# Prediksi 20 hari ke depan
sim_20_hari <- sample(permintaan_teh, size = 20, replace = TRUE, prob = prob_teh)
cat("Prediksi permintaan 5 hari ke depan:", sim_5_hari, "\n")
Prediksi permintaan 5 hari ke depan: 70 90 80 50 70 
cat("Rata-rata (5 hari):", mean(sim_5_hari), "gelas\n\n")
Rata-rata (5 hari): 72 gelas
cat("Rata-rata permintaan 20 hari ke depan:", mean(sim_20_hari), "gelas")
Rata-rata permintaan 20 hari ke depan: 71 gelas

Bangkitkanlah data dengan distribusi eksponensial untuk variabel permintaan

set.seed(123)
# Membangkitkan 10 data permintaan (Distribusi Eksponensial) 
# Rate = 1/70 ditentukan dari 1/rata-rata. 
data_permintaan <- rexp(n = 10, rate = 1/70)
# Membangkitkan data frekuensi (Distribusi Normal) 
# Misal Mean = 20, SD = 5
data_frekuensi <- rnorm(n = 10, mean = 20, sd = 5)

Prediksi permintaan

simulasi <- function(n_hari) {
  hasil <- rexp(n = n_hari, rate = 1/mean(data_permintaan))
  return(mean(hasil))
}
cat("Rata-rata prediksi 5 hari    :", simulasi(5), "\n")
Rata-rata prediksi 5 hari    : 58.60744 
cat("Rata-rata prediksi 20 hari   :", simulasi(20), "\n")
Rata-rata prediksi 20 hari   : 59.95929 
cat("Rata-rata prediksi 100 hari  :", simulasi(100), "\n")
Rata-rata prediksi 100 hari  : 42.99804 
cat("Rata-rata prediksi 1000 hari :", simulasi(1000), "\n")
Rata-rata prediksi 1000 hari : 45.17073 
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KIyBQcmVkaWtzaSBQZXJtaW50YWFuIG1lbmdndW5ha2FuIE1vbnRlIENhcmxvDQpgYGB7cn0NCiMgTmlsYWkgdmFyaWFiZWwNCnBlcm1pbnRhYW5fdGVoIDwtIGMoNTAsIDYwLCA3MCwgODAsIDkwKSAgDQojIEZyZWt1ZW5zaSBvYnNlcnZhc2kNCmZyZWt1ZW5zaV90ZWggPC0gYygxMCwgMjAsIDQwLCAyMCwgMTApICANCmBgYA0KDQpgYGB7cn0NCiMgSGl0dW5nIHByb2JhYmlsaXRhcw0KcHJvYl90ZWggPC0gZnJla3VlbnNpX3RlaCAvIHN1bShmcmVrdWVuc2lfdGVoKQ0KYGBgDQoNCiMjIFNpbXVsYXNpIE1vbnRlIENhcmxvDQpgYGB7cn0NCiMgUHJlZGlrc2kgNSBoYXJpIGtlIGRlcGFuDQpzaW1fNV9oYXJpIDwtIHNhbXBsZShwZXJtaW50YWFuX3RlaCwgc2l6ZSA9IDUsIHJlcGxhY2UgPSBUUlVFLCBwcm9iID0gcHJvYl90ZWgpDQpgYGANCmBgYHtyfQ0KIyBQcmVkaWtzaSAyMCBoYXJpIGtlIGRlcGFuDQpzaW1fMjBfaGFyaSA8LSBzYW1wbGUocGVybWludGFhbl90ZWgsIHNpemUgPSAyMCwgcmVwbGFjZSA9IFRSVUUsIHByb2IgPSBwcm9iX3RlaCkNCmBgYA0KDQpgYGB7cn0NCmNhdCgiUHJlZGlrc2kgcGVybWludGFhbiA1IGhhcmkga2UgZGVwYW46Iiwgc2ltXzVfaGFyaSwgIlxuIikNCmNhdCgiUmF0YS1yYXRhICg1IGhhcmkpOiIsIG1lYW4oc2ltXzVfaGFyaSksICJnZWxhc1xuXG4iKQ0KDQpjYXQoIlJhdGEtcmF0YSBwZXJtaW50YWFuIDIwIGhhcmkga2UgZGVwYW46IiwgbWVhbihzaW1fMjBfaGFyaSksICJnZWxhcyIpDQpgYGANCg0KIyBCYW5na2l0a2FubGFoIGRhdGEgZGVuZ2FuIGRpc3RyaWJ1c2kgZWtzcG9uZW5zaWFsIHVudHVrIHZhcmlhYmVsIHBlcm1pbnRhYW4gDQpgYGB7cn0NCnNldC5zZWVkKDEyMykNCmBgYA0KDQpgYGB7cn0NCiMgTWVtYmFuZ2tpdGthbiAxMCBkYXRhIHBlcm1pbnRhYW4gKERpc3RyaWJ1c2kgRWtzcG9uZW5zaWFsKSANCiMgUmF0ZSA9IDEvNzAgZGl0ZW50dWthbiBkYXJpIDEvcmF0YS1yYXRhLiANCmRhdGFfcGVybWludGFhbiA8LSByZXhwKG4gPSAxMCwgcmF0ZSA9IDEvNzApDQpgYGANCg0KYGBge3J9DQojIE1lbWJhbmdraXRrYW4gZGF0YSBmcmVrdWVuc2kgKERpc3RyaWJ1c2kgTm9ybWFsKSANCiMgTWlzYWwgTWVhbiA9IDIwLCBTRCA9IDUNCmRhdGFfZnJla3VlbnNpIDwtIHJub3JtKG4gPSAxMCwgbWVhbiA9IDIwLCBzZCA9IDUpDQpgYGANCg0KIyMgUHJlZGlrc2kgcGVybWludGFhbg0KYGBge3J9DQpzaW11bGFzaSA8LSBmdW5jdGlvbihuX2hhcmkpIHsNCiAgaGFzaWwgPC0gcmV4cChuID0gbl9oYXJpLCByYXRlID0gMS9tZWFuKGRhdGFfcGVybWludGFhbikpDQogIHJldHVybihtZWFuKGhhc2lsKSkNCn0NCmBgYA0KDQpgYGB7cn0NCmNhdCgiUmF0YS1yYXRhIHByZWRpa3NpIDUgaGFyaSAgICA6Iiwgc2ltdWxhc2koNSksICJcbiIpDQpjYXQoIlJhdGEtcmF0YSBwcmVkaWtzaSAyMCBoYXJpICAgOiIsIHNpbXVsYXNpKDIwKSwgIlxuIikNCmNhdCgiUmF0YS1yYXRhIHByZWRpa3NpIDEwMCBoYXJpICA6Iiwgc2ltdWxhc2koMTAwKSwgIlxuIikNCmNhdCgiUmF0YS1yYXRhIHByZWRpa3NpIDEwMDAgaGFyaSA6Iiwgc2ltdWxhc2koMTAwMCksICJcbiIpDQpgYGANCg0K