PEMODELAN STATISTIKA DAN SIMULASI
Nabila Rahayu Rosdiana Putri
Variabel Random adalah variabel yang nilainya ditentukan oleh hasil
dari suatu percobaan acak. Variabel random dapat dibagi menjadi dua
jenis:
Dalam pemodelan statistika dan simulasi, variabel random digunakan untuk memodelkan fenomena acak. Simulasi variabel random membantu kita memahami distribusi data, menghitung probabilitas, dan membuat prediksi berdasarkan model yang telah dibuat.
set.seed(123)
n <- 1000
n_trials <- 20
p_success <- 0.6
binomial_data <- rbinom(n, size = n_trials, prob = p_success)
hist(binomial_data,
breaks = 20,
main = "Histogram Distribusi Binomial",
xlab = "Jumlah Sukses",
col = "lightgreen")
mean_binom <- mean(binomial_data)
var_binom <- var(binomial_data)
cat("Rata-rata simulasi:", mean_binom, "\n")
## Rata-rata simulasi: 12.021
cat("Variansi simulasi:", var_binom, "\n")
## Variansi simulasi: 4.749308
set.seed(123)
n <- 1000
mu <- 50
sigma <- 10
normal_data <- rnorm(n, mean = mu, sd = sigma)
hist(normal_data,
breaks = 30,
main = "Histogram Distribusi Normal",
xlab = "Nilai",
col = "lightblue")
mean_normal <- mean(normal_data)
sd_normal <- sd(normal_data)
cat("Rata-rata simulasi:", mean_normal, "\n")
## Rata-rata simulasi: 50.16128
cat("Standar deviasi simulasi:", sd_normal, "\n")
## Standar deviasi simulasi: 9.91695
Analisis Kecukupan Tenaga Medis di Klinik/Rumah Sakit
Analisis ini mengevaluasi kecukupan staf medis dengan menggabungkan dua variabel random. Pertama, kedatangan pasien dimodelkan dengan distribusi Poisson berdasarkan rata-rata 30 pasien per hari selama sebulan untuk memprediksi risiko lonjakan kunjungan. Kedua, lama perawatan setiap pasien dimodelkan dengan distribusi Normal (rata-rata 2 jam) guna menangkap variasi durasi pelayanan yang berbeda-beda tiap individu.
Dengan mengalikan rata-rata jumlah pasien dan durasi perawatan, kita mendapatkan total estimasi beban kerja harian. Angka ini kemudian dikomparasi dengan total kapasitas 10 tenaga medis (80 jam kerja). Jika beban kerja melebihi kapasitas tersedia, sistem akan mengidentifikasi bahwa jumlah staf saat ini tidak mencukupi, sehingga manajemen dapat mengambil langkah mitigasi seperti penambahan jam operasional atau perekrutan staf baru.
set.seed(123)
n_days <- 30
lambda_patients <- 30
patients_data <- rpois(n_days, lambda_patients)
patients_data
## [1] 26 36 20 30 39 32 23 20 36 31 32 30 26 37 34 29 25 24 28 24 26 29 23 23 28
## [26] 22 34 34 34 33
mean_patients <- mean(patients_data)
cat("\nRata-rata pasien per hari:", mean_patients, "\n")
##
## Rata-rata pasien per hari: 28.93333
prob_above_35 <- sum(patients_data > 35) / n_days
cat("Probabilitas pasien > 35:", prob_above_35, "\n")
## Probabilitas pasien > 35: 0.1333333
set.seed(123)
n_patients <- 1000
mu_time <- 2
sd_time <- 0.5
treatment_time <- rnorm(n_patients, mean = mu_time, sd = sd_time)
treatment_time[treatment_time < 0] <- 0
mean_time <- mean(treatment_time)
cat("\nRata-rata lama perawatan (jam):", mean_time, "\n")
##
## Rata-rata lama perawatan (jam): 2.008064
prob_above_3 <- sum(treatment_time > 3) / n_patients
cat("Probabilitas perawatan > 3 jam:", prob_above_3, "\n")
## Probabilitas perawatan > 3 jam: 0.028
total_service_hours <- mean_patients * mean_time
cat("\nEstimasi total jam pelayanan per hari:", total_service_hours, "\n")
##
## Estimasi total jam pelayanan per hari: 58.09998
tenaga_medis <- 10
jam_kerja <- 8
kapasitas_total <- tenaga_medis * jam_kerja
cat("Total kapasitas jam tenaga medis:", kapasitas_total, "\n")
## Total kapasitas jam tenaga medis: 80
if(total_service_hours > kapasitas_total){
cat("\nTenaga medis TIDAK mencukupi.\n")
} else {
cat("\nTenaga medis mencukupi.\n")
}
##
## Tenaga medis mencukupi.