Memuat
Memuat
Regresi Bayesian (rstanarm) untuk Manajemen Sumber Daya Manusia
0 kali dilihat
Tujuan analisis adalah menaksir posterior pengaruh pelatihan dan kompensasi beserta interval kredibelnya; datanya sintetis dan hanya untuk ilustrasi. Regresi Bayesian mengestimasi koefisien regresi sebagai distribusi posterior yang menggabungkan prior dengan data, sehingga hasilnya berupa median posterior dan interval kredibel. Cocok untuk skripsi, tesis, atau disertasi dengan sampel kecil sampai sedang, saat peneliti ingin menyatakan peluang suatu efek secara langsung atau memasukkan informasi prior.

Tujuan analisis adalah menaksir posterior pengaruh pelatihan dan kompensasi beserta interval kredibelnya; datanya sintetis dan hanya untuk ilustrasi.
| Peran | Variabel | Satuan |
|---|---|---|
| Utama | Komitmen organisasi | score |
| Pendukung 1 | Jam pelatihan per tahun | hours |
| Pendukung 2 | Kompensasi bulanan | IDR million |
Median posterior pengaruh Jam pelatihan per tahun terhadap Komitmen organisasi adalah 0.838 (interval kredibel 95% 0.751 sampai 0.928) dengan peluang efek positif 1.000, sehingga bukti arahnya sangat kuat. Koefisien Kompensasi bulanan bermedian -0.183. Bayesian R2 0.654; Rhat maksimum 1.000 dan ESS minimum 755 menunjukkan rantai MCMC sudah konvergen.
Dihitung dari data sintetis sebagai ilustrasi, bukan dari penelitian nyata.
Regresi Bayesian mengestimasi koefisien regresi sebagai distribusi posterior yang menggabungkan prior dengan data, sehingga hasilnya berupa median posterior dan interval kredibel. Cocok untuk skripsi, tesis, atau disertasi dengan sampel kecil sampai sedang, saat peneliti ingin menyatakan peluang suatu efek secara langsung atau memasukkan informasi prior.
Laporkan median posterior setiap koefisien beserta interval kredibel 95%, lalu tafsirkan interval itu sebagai rentang nilai yang paling mungkin bagi efek. Sertakan peluang posterior efek positif atau negatif, Bayesian R2, serta bukti konvergensi (Rhat, ESS) dan hasil posterior predictive check.
Skrip awal singkat dengan nama variabel proyek ini. Versi yang diserahkan disesuaikan dengan data Anda dan diberi komentar lengkap.
# Contoh kode R: Bayesian Regression (rstanarm)
suppressPackageStartupMessages({
library(ggplot2)
library(patchwork)
library(rstanarm)
})
set.seed(42)
# ---- Gaya grafik ----
pal <- c("#1f6feb", "#e8590c", "#2f9e44", "#ae3ec9", "#f59f00")
warna <- list(bg = "#f4f6fa", panel = "#ffffff", teks = "#1f2933", redup = "#5f6b78", grid = "#e3e8ee", bar = "#1d3557")
tata <- 1
theme_set(theme_minimal(base_size = 11) + theme(legend.position = "bottom"))
# ---- Data sintetis ----
n <- 200
d <- data.frame(annual_training_hours = rnorm(n, 50, 10),
monthly_compensation = rnorm(n, 30, 6))
z1 <- as.numeric(scale(d$annual_training_hours))
z2 <- as.numeric(scale(d$monthly_compensation))
b1 <- runif(1, 0.4, 0.8) * sample(c(-1, 1), 1, prob = c(0.25, 0.75))
b2 <- runif(1, 0.12, 0.45) * sample(c(-1, 1), 1)
d$organisational_commitment <- 100 + 15 * (b1 * z1 + b2 * z2 + rnorm(n, 0, runif(1, 0.5, 0.85)))
write.csv(d, "data_contoh.csv", row.names = FALSE)
# ---- Analisis: regresi linear Bayesian (rstanarm, MCMC) ----
# Prior normal lemah (autoscale menyesuaikan skala data), 2 rantai x 1500 iterasi (750 warmup)
fit <- stan_glm(organisational_commitment ~ annual_training_hours + monthly_compensation, data = d, family = gaussian(),
prior = normal(0, 2.5, autoscale = TRUE),
prior_intercept = normal(0, 5, autoscale = TRUE),
prior_aux = exponential(1, autoscale = TRUE),
chains = 2, iter = 1500, refresh = 0, cores = 1, seed = sample.int(1e6, 1))
print(fit, digits = 3)
sm <- summary(fit, probs = c(0.025, 0.5, 0.975), digits = 3)
print(sm)
ci <- posterior_interval(fit, prob = 0.95) # interval kredibel 95%
print(ci)
post <- as.matrix(fit) # draw posterior (baris = draw)
med <- apply(post, 2, median)
rhat_maks <- max(sm[, "Rhat"], na.rm = TRUE) # konvergensi: idealnya < 1.01
ess_min <- min(sm[, "n_eff"], na.rm = TRUE) # ukuran sampel efektif
r2_draw <- bayes_R2(fit) # Bayesian R2 per draw
p_pos1 <- mean(post[, "annual_training_hours"] > 0) # peluang posterior efek positif
p_pos2 <- mean(post[, "monthly_compensation"] > 0)
cat("Median Bayesian R2:", round(median(r2_draw), 3), "\n")
cat("P(koefisien annual_training_hours > 0):", round(p_pos1, 3), " P(koefisien monthly_compensation > 0):", round(p_pos2, 3), "\n")
# ---- Grafik ----
# 1) densitas posterior koefisien dengan interval kredibel 95%
koef <- c("annual_training_hours", "monthly_compensation")
lab_koef <- make.unique(c("annual_training_hours", "monthly_compensation"), sep = " ")
dp <- do.call(rbind, lapply(1:2, function(j) {
dz <- density(post[, koef[j]], n = 256)
data.frame(koef = lab_koef[j], x = dz$x, y = dz$y,
dalam = dz$x >= quantile(post[, koef[j]], 0.025) & dz$x <= quantile(post[, koef[j]], 0.975))
}))
dp$koef <- factor(dp$koef, levels = lab_koef)
dm <- data.frame(koef = factor(lab_koef, levels = lab_koef), m = apply(post[, koef], 2, median))
p1 <- ggplot(dp, aes(x, y)) +
geom_area(data = subset(dp, dalam), fill = pal[1], alpha = 0.35) +
geom_line(colour = pal[1], linewidth = 0.9) +
geom_vline(data = dm, aes(xintercept = m), colour = pal[2], linewidth = 0.9) +
geom_vline(xintercept = 0, linetype = "dashed", colour = warna$redup) +
facet_wrap(~koef, scales = "free", ncol = 1) +
labs(title = "Posterior of coefficients (95% CrI shaded)", x = "Coefficient value", y = "Posterior density")
# 2) posterior predictive check: densitas y amatan vs 40 replikasi
yrep <- posterior_predict(fit, draws = 40)
dr <- do.call(rbind, lapply(seq_len(nrow(yrep)), function(i) {
dz <- density(yrep[i, ], n = 128)
data.frame(rep = i, x = dz$x, y = dz$y)
}))
dy <- density(d$organisational_commitment, n = 256)
p2 <- ggplot() +
geom_line(data = dr, aes(x, y, group = rep, colour = "Replicated"), alpha = 0.3, linewidth = 0.4) +
geom_line(data = data.frame(x = dy$x, y = dy$y), aes(x, y, colour = "Observed"), linewidth = 1.1) +
scale_colour_manual(values = c(Observed = warna$teks, Replicated = pal[3]), name = NULL) +
labs(title = "Posterior predictive check", x = "organisational_commitment", y = "Density")
# 3) trace plot koefisien annual_training_hours per rantai
arr <- as.array(fit)
dt <- data.frame(iter = rep(seq_len(dim(arr)[1]), 2),
rantai = factor(rep(1:2, each = dim(arr)[1])),
nilai = c(arr[, 1, "annual_training_hours"], arr[, 2, "annual_training_hours"]))
p3 <- ggplot(dt, aes(iter, nilai, colour = rantai)) +
geom_line(alpha = 0.7, linewidth = 0.35) +
scale_colour_manual(values = pal[c(1, 4)], name = "Chain") +
labs(title = "Trace of annual_training_hours coefficient", x = "Post-warmup iteration", y = "Coefficient")
p_hasil <- if (tata == 1) p1 | (p2 / p3) else (p1 | p2) / p3 + plot_layout(heights = c(1.4, 1))
print(p_hasil)
Berkas proyek aslinya tersedia. Bukan sekadar gambar di atas: Anda mendapat proyek R yang siap dijalankan. Berkas bisa diunduh setelah pembayaran, dan kami kirim lewat WhatsApp atau email.
ZIP: analisis.R + data_contoh.csv + BACA-DULU.txt
Pilih seberapa banyak bantuan yang Anda perlukan. Setiap paket yang lebih tinggi sudah mencakup semua item paket di bawahnya. Harga belum termasuk PPN 11%.
Paket 1
Rp 550.000
belum termasuk PPN 11%
Waktu pengerjaan: 7 hari kerja
Output: Berkas R + gambar hasil
Yang Anda terima
Paket 2 · paling dipilih
Rp 1.600.000
belum termasuk PPN 11%
Waktu pengerjaan: 13 hari kerja
Output: Kode + analisis + bahan interpretasi
Termasuk semua item Paket 1, ditambah
Paket 3
Rp 3.500.000
belum termasuk PPN 11%
Waktu pengerjaan: 18-21 hari kerja
Output: Kode + analisis + pendampingan hingga siap dipresentasikan
Termasuk semua item Paket 1 & 2, ditambah
Ya. Berkas proyek aslinya berupa ZIP berisi skrip analisis.R lengkap, data_contoh.csv, dan petunjuk BACA-DULU.txt. Berkas bisa diunduh setelah pembayaran, dan kami kirim lewat WhatsApp atau email. Untuk data Anda sendiri (Paket 2 dan 3), skrip disesuaikan dengan dataset Anda.
Cocok. Regresi Bayesian (rstanarm) lazim dipakai pada jenjang ini di bidang Manajemen Sumber Daya Manusia. Analisis kami sesuaikan dengan pertanyaan penelitian, data Anda sendiri, dan ketentuan dosen pembimbing.
Bukan. Lembar hasil dihitung dari data sintetis sebagai ilustrasi jenis keluaran R Studio. Untuk pesanan Anda, metode yang sama dijalankan pada data penelitian Anda sendiri.
Itu tujuan paketnya. Setiap skrip diberi komentar, dan Paket 3 mencakup dua sesi pendampingan serta latihan tanya jawab supaya Anda bisa menjelaskan metode dan hasilnya saat seminar dan sidang.
Tiap proyek punya tiga paket: Paket 1 (kode dan penjelasan) Rp 550.000, Paket 2 (analisis data Anda dan interpretasi) Rp 1.600.000, dan Paket 3 (pendampingan lengkap) Rp 3.500.000, belum termasuk PPN 11%. Data yang besar, metode tambahan, atau tenggat ketat menyesuaikan penawaran setelah konsultasi singkat.
Lembar hasil memakai data sintetis sebagai ilustrasi. R adalah bahasa pemrograman proyek R Foundation; RStudio dan Posit adalah merek dagang Posit PBC.
Kembali ke portofolio R Studio