Membuat data
set.seed(123)
permintaan <- round(rnorm(10, mean = 23, sd = 4))
permintaan
## [1] 21 22 29 23 24 30 25 18 20 21
Frekuensi_Observasi <- round(rnorm(10, mean = 70, sd = 10))
Frekuensi_Observasi
## [1] 82 74 74 71 64 88 75 50 77 65
Menetapkan sebuah distribusi probabilitas bagi variable penting
total_frek = sum(Frekuensi_Observasi)
total_frek
## [1] 720
dist.prob = Frekuensi_Observasi/total_frek
dist.prob
## [1] 0.11388889 0.10277778 0.10277778 0.09861111 0.08888889 0.12222222
## [7] 0.10416667 0.06944444 0.10694444 0.09027778
Membuat distribusi probabilitas kumulatif bagi setiap variable
dist.kum = cumsum(dist.prob)
dist.kum
## [1] 0.1138889 0.2166667 0.3194444 0.4180556 0.5069444 0.6291667 0.7333333
## [8] 0.8027778 0.9097222 1.0000000
ekspektasi <- permintaan*dist.prob
sum(ekspektasi)
## [1] 23.59028
Menetapkan sebuah interval bilangan acak bagi setiap variable
berbentuk fungsi
prediksi_permintaan <- function(n) {
bilangan_acak <- runif(n) ## Membangkitkan bilangan acak
hasil <- numeric(n)
for (i in 1:n) {
if (bilangan_acak[i] <= dist.kum[1])
{
hasil[i] <- permintaan[1]
}
else if (bilangan_acak[i] <= dist.kum[2])
{
hasil[i] <- permintaan[2]
}
else if (bilangan_acak[i] <= dist.kum[3])
{
hasil[i] <- permintaan[3]
}
else if (bilangan_acak[i] <= dist.kum[4])
{
hasil[i] <- permintaan[4]
}
else
{hasil[i] <- permintaan[5]
}
}
return(hasil)
}
Mensimulasikan serangkaian percobaan
# Simulasi untuk 100 hari
set.seed(123)
simulasi_100 <- prediksi_permintaan(100)
# Simulasi untuk 1000 hari
simulasi_1000 <- prediksi_permintaan(1000)
simulasi_100
## [1] 29 24 23 24 24 21 24 24 24 24 24 24 24 24 21 24 29 21 23 24 24 24 24 24 24
## [26] 24 24 24 29 22 24 24 24 24 21 24 24 22 29 29 22 23 23 23 22 22 29 24 29 24
## [51] 21 24 24 22 24 22 22 24 24 23 24 21 23 29 24 24 24 24 24 24 24 24 24 21 24
## [76] 29 23 24 23 21 29 24 23 24 21 24 24 24 24 22 22 24 23 24 23 22 24 21 24 24
Analisis Hasil
# Rata-rata permintaan
rata_100 <- mean(simulasi_100)
rata_1000 <- mean(simulasi_1000)
# Distribusi tabel frekuensi simulasi
tabel_100 <- table(simulasi_100)
tabel_1000 <- table(simulasi_1000)
# Output hasil
cat("Hasil Simulasi 100 Hari:\n")
## Hasil Simulasi 100 Hari:
print(tabel_100)
## simulasi_100
## 21 22 23 24 29
## 10 11 12 57 10
cat("Rata-rata Permintaan:", rata_100, "gelas/hari\n\n")
## Rata-rata Permintaan: 23.86 gelas/hari
cat("Hasil Simulasi 1000 Hari:\n")
## Hasil Simulasi 1000 Hari:
print(tabel_1000)
## simulasi_1000
## 21 22 23 24 29
## 112 97 107 573 111
cat("Rata-rata Permintaan:", rata_1000, "gelas/hari\n")
## Rata-rata Permintaan: 23.918 gelas/hari
# Visualisasi
hist(simulasi_100, main = "Distribusi Permintaan (100 Hari)", xlab = "Permintaan (gelas)", col = "lightblue")

hist(simulasi_1000,, main = "Distribusi Permintaan (1000 Hari)", xlab= "Permintaan (gelas)", col = "lightgreen")

# Simulasi untuk 1000 hari
simulasi_100000000 <- prediksi_permintaan(100000000)
rata_100000000 <- mean(simulasi_100000000)
tabel_100000000 <- table(simulasi_100000000)
cat("Hasil Simulasi 1000 Hari:\n")
## Hasil Simulasi 1000 Hari:
print(tabel_100000000)
## simulasi_100000000
## 21 22 23 24 29
## 11388079 10282054 9865293 58188862 10275712
cat("Rata-rata Permintaan:", rata_100000000, "gelas/hari\n")
## Rata-rata Permintaan: 23.86785 gelas/hari