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