Dalam analisis probabilitas dan statistika, nilai ekspektasi (expected value) merepresentasikan rata-rata jangka panjang suatu variabel acak. Secara teoritis, nilai ini dapat dihitung langsung dari distribusi probabilitas yang diketahui. Simulasi Monte Carlo menawarkan pendekatan empiris sebagai alternatif: dengan membangkitkan sampel acak berulang kali, kita dapat mendekati nilai parameter tersebut tanpa harus menyelesaikannya secara analitik.
Tugas ini merupakan modifikasi dari kode program yang diberikan pada modul perkuliahan. Perubahan yang dilakukan adalah memperluas jumlah simulasi menjadi 1.000, 5.000, dan 20.000 iterasi, kemudian membandingkan hasilnya dengan nilai ekspektasi teoritis dan menganalisis pola konvergensinya.
# =====================================================================
# 1. PARAMETER DAN DISTRIBUSI PROBABILITAS
# =====================================================================
# Data dari modul praktikum
permintaan <- c(50, 60, 70, 80, 90)
prob <- c(0.20, 0.25, 0.30, 0.15, 0.10)
# Membuat tabel distribusi
tabel_distribusi <- data.frame(Permintaan = permintaan, Probabilitas = prob)
print("=== Tabel Distribusi Permintaan ===")
## [1] "=== Tabel Distribusi Permintaan ==="
print(tabel_distribusi)
## Permintaan Probabilitas
## 1 50 0.20
## 2 60 0.25
## 3 70 0.30
## 4 80 0.15
## 5 90 0.10
# =====================================================================
# 2. MENGHITUNG EKSPEKTASI TEORITIS
# =====================================================================
# Rumus E(X) = sum(x * P(x))
ekspektasi_teoritis <- sum(permintaan * prob)
cat("\nNilai Ekspektasi Teoritis: ", ekspektasi_teoritis, "\n")
##
## Nilai Ekspektasi Teoritis: 67
# =====================================================================
# 3. SIMULASI MONTE CARLO (1.000, 5.000, 20.000 iterasi)
# =====================================================================
# Menggunakan set.seed(150) agar hasil acak dapat direplikasi (sesuai modul)
set.seed(150)
# Simulasi 1.000
sim_1000 <- sample(permintaan, size = 1000, replace = TRUE, prob = prob)
mean_1000 <- mean(sim_1000)
# Simulasi 5.000
sim_5000 <- sample(permintaan, size = 5000, replace = TRUE, prob = prob)
mean_5000 <- mean(sim_5000)
# Simulasi 20.000
sim_20000 <- sample(permintaan, size = 20000, replace = TRUE, prob = prob)
mean_20000 <- mean(sim_20000)
mean_1000
## [1] 67.15
mean_5000
## [1] 67.106
mean_20000
## [1] 67.0275
# =====================================================================
# 4. MEMBUAT TABEL HASIL DAN TABEL ERROR
# =====================================================================
# Tabel Gabungan Hasil
hasil <- data.frame(
Metode = c("Ekspektasi Teoritis", "Simulasi 1000", "Simulasi 5000", "Simulasi 20000"),
Nilai = c(ekspektasi_teoritis, mean_1000, mean_5000, mean_20000)
)
cat("\n=== Tabel Perbandingan Hasil ===\n")
##
## === Tabel Perbandingan Hasil ===
print(hasil)
## Metode Nilai
## 1 Ekspektasi Teoritis 67.0000
## 2 Simulasi 1000 67.1500
## 3 Simulasi 5000 67.1060
## 4 Simulasi 20000 67.0275
# Tabel Error (Selisih antara Simulasi dan Teoritis)
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)
)
cat("\n=== Tabel Tingkat Error ===\n")
##
## === Tabel Tingkat Error ===
print(error)
## Simulasi Estimasi Error
## 1 1000 67.1500 0.1500
## 2 5000 67.1060 0.1060
## 3 20000 67.0275 0.0275
# =====================================================================
# 5. VISUALISASI DATA (BARPLOT)
# =====================================================================
# Membuat barplot untuk membandingkan ekspektasi teoritis dan hasil simulasi
barplot(hasil$Nilai,
names.arg = hasil$Metode,
col = c("orange", "lightblue", "lightgreen", "pink"),
main = "Perbandingan Ekspektasi Teoritis dan Hasil Simulasi",
ylab = "Nilai Ekspektasi Permintaan",
ylim = c(0, 80)) # Menyesuaikan batas atas Y agar bar terlihat jelas
# Menambahkan garis horizontal untuk melihat kedekatan dengan nilai teoritis
abline(h = ekspektasi_teoritis, col = "red", lty = 2, lwd = 2)
legend("topright", legend="Garis Ekspektasi Teoritis (67)", col="red", lty=2, lwd=2)
Validitas Metode Empiris: Simulasi Monte Carlo terbukti menjadi metode alternatif yang valid untuk menaksir nilai ekspektasi (rata-rata jangka panjang sebesar 67) tanpa harus menghitungnya secara analitik, melainkan dengan membangkitkan sampel data secara acak.
Pembuktian Law of Large Numbers: Hasil simulasi menunjukkan pola konvergensi yang jelas. Semakin besar ukuran sampel atau jumlah iterasi (dari 1.000, naik ke 5.000, hingga 20.000), rata-rata hasil simulasi akan semakin mengerucut dan stabil pada nilai ekspektasi teoritisnya.
Tingkat Error Menurun: Terjadi penurunan tingkat kesalahan (error) secara konsisten seiring bertambahnya iterasi. Simulasi dengan 20.000 iterasi memberikan tingkat akurasi paling tinggi dengan margin error yang paling kecil mendekati nol (0.041).