Memuat
Memuat
Regresi Poisson untuk Pendidikan dan Pembelajaran
0 kali dilihat
Menaksir laju buku dipinjam per semester menurut waktu akses perpustakaan digital dan jarak rumah ke sekolah dengan regresi Poisson menggunakan data sintetis untuk peragaan. Regresi Poisson memodelkan data hitungan (jumlah kejadian per unit) dengan fungsi log sehingga pengaruh prediktor dibaca sebagai incidence rate ratio. Cocok untuk skripsi/tesis tentang jumlah kasus, klaim, kecelakaan, atau kunjungan yang ragamnya kira-kira sama dengan rata-ratanya.

Menaksir laju buku dipinjam per semester menurut waktu akses perpustakaan digital dan jarak rumah ke sekolah dengan regresi Poisson menggunakan data sintetis untuk peragaan.
| Peran | Variabel | Satuan |
|---|---|---|
| Utama | Buku dipinjam per semester | count |
| Pendukung 1 | Waktu akses perpustakaan digital | hours |
| Pendukung 2 | Jarak rumah ke sekolah | km |
Setiap kenaikan satu simpangan baku Waktu akses perpustakaan digital mengalikan laju Buku dipinjam per semester dengan 1.380 (p < 0.001), sedangkan IRR untuk Jarak rumah ke sekolah sebesar 0.729. Model signifikan (uji LR p < 0.001). Rasio deviance/df = 1.10 menunjukkan asumsi equidispersi Poisson terpenuhi.
Dihitung dari data sintetis sebagai ilustrasi, bukan dari penelitian nyata.
Regresi Poisson memodelkan data hitungan (jumlah kejadian per unit) dengan fungsi log sehingga pengaruh prediktor dibaca sebagai incidence rate ratio. Cocok untuk skripsi/tesis tentang jumlah kasus, klaim, kecelakaan, atau kunjungan yang ragamnya kira-kira sama dengan rata-ratanya.
IRR di atas 1 berarti laju kejadian naik untuk setiap kenaikan prediktor, di bawah 1 berarti turun; laporkan IRR, interval kepercayaan 95%, dan p-value. Rasio deviance/df yang jauh di atas 1 menandakan overdispersi sehingga model binomial negatif lebih tepat.
Skrip awal singkat dengan nama variabel proyek ini. Versi yang diserahkan disesuaikan dengan data Anda dan diberi komentar lengkap.
# Contoh kode R: Poisson Regression
suppressPackageStartupMessages({
library(ggplot2)
library(patchwork)
library(lmtest)
})
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(digital_library_access_time = rnorm(n, 50, 10),
home_to_school_distance = rnorm(n, 30, 6))
z1 <- as.numeric(scale(d$digital_library_access_time))
z2 <- as.numeric(scale(d$home_to_school_distance))
mu0 <- runif(1, 2.5, 7) # rata-rata hitungan dasar
b1 <- runif(1, 0.25, 0.5)
b2 <- runif(1, 0.1, 0.3) * sample(c(-1, 1), 1)
d$books_borrowed_per_semester <- rpois(n, mu0 * exp(b1 * z1 + b2 * z2)) # hitungan Poisson (tanpa overdispersi)
write.csv(d, "data_contoh.csv", row.names = FALSE)
# ---- Analisis: regresi Poisson (glm, family poisson, link log) ----
fit <- glm(books_borrowed_per_semester ~ digital_library_access_time + home_to_school_distance, family = poisson, data = d)
s <- summary(fit)
print(s)
irr_tab <- exp(cbind(IRR = coef(fit), confint.default(fit))) # incidence rate ratio per satuan + CI 95%
print(round(irr_tab, 4))
# IRR per 1 simpangan baku prediktor (agar sebanding)
sdx <- c(sd(d$digital_library_access_time), sd(d$home_to_school_distance))
se_b <- s$coefficients[2:3, 2]
irr_sd <- data.frame(var = c("digital_library_access_time", "home_to_school_distance"),
irr = exp(coef(fit)[2:3] * sdx),
lo = exp((coef(fit)[2:3] - 1.96 * se_b) * sdx),
hi = exp((coef(fit)[2:3] + 1.96 * se_b) * sdx),
p = s$coefficients[2:3, 4])
print(irr_sd)
# ---- Uji model dan dispersi ----
fit0 <- glm(books_borrowed_per_semester ~ 1, family = poisson, data = d)
lr <- lmtest::lrtest(fit0, fit) # uji likelihood ratio terhadap model null
print(lr)
p_lr <- lr[2, "Pr(>Chisq)"]
disp_dev <- fit$deviance / fit$df.residual # deviance/df: dekat 1 berarti tidak overdispersi
disp_pear <- sum(residuals(fit, type = "pearson")^2) / fit$df.residual
p_gof <- pchisq(fit$deviance, fit$df.residual, lower.tail = FALSE) # uji kecocokan deviance
r2_dev <- 1 - fit$deviance / fit$null.deviance
cat(sprintf("Deviance/df = %.3f; Pearson chi2/df = %.3f; GOF p = %.3f\n", disp_dev, disp_pear, p_gof))
# ---- Grafik ----
# Frekuensi teramati vs harapan model untuk tiap nilai hitungan
mu_hat <- fitted(fit)
k <- 0:max(d$books_borrowed_per_semester)
dk <- data.frame(k = k,
teramati = as.numeric(table(factor(d$books_borrowed_per_semester, levels = k))),
harapan = sapply(k, function(i) sum(dpois(i, mu_hat))))
p1 <- ggplot(dk, aes(k)) +
geom_col(aes(y = teramati, fill = "Observed"), alpha = 0.75, width = 0.8) +
geom_line(aes(y = harapan, colour = "Expected (Poisson)"), linewidth = 1) +
geom_point(aes(y = harapan, colour = "Expected (Poisson)"), size = 1.8) +
scale_fill_manual(values = c(Observed = pal[1]), name = NULL) +
scale_colour_manual(values = c("Expected (Poisson)" = pal[2]), name = NULL) +
labs(title = "Observed vs expected count frequencies", x = "books_borrowed_per_semester", y = "Frequency")
# Laju prediksi menurut X1 (X2 pada rata-rata) dengan pita 95%
g <- data.frame(digital_library_access_time = seq(min(d$digital_library_access_time), max(d$digital_library_access_time), length.out = 120), home_to_school_distance = mean(d$home_to_school_distance))
pr <- predict(fit, newdata = g, type = "link", se.fit = TRUE)
g$m <- exp(pr$fit); g$lo <- exp(pr$fit - 1.96 * pr$se.fit); g$hi <- exp(pr$fit + 1.96 * pr$se.fit)
p2 <- ggplot() +
geom_jitter(data = d, aes(digital_library_access_time, books_borrowed_per_semester), width = 0, height = 0.15, colour = pal[3], alpha = 0.45, size = 1.4) +
geom_ribbon(data = g, aes(digital_library_access_time, ymin = lo, ymax = hi), fill = pal[2], alpha = 0.22) +
geom_line(data = g, aes(digital_library_access_time, m), colour = pal[2], linewidth = 1.2) +
labs(title = "Predicted rate (95% CI)", x = "digital_library_access_time", y = "books_borrowed_per_semester")
p3 <- ggplot(irr_sd, aes(irr, var)) +
geom_vline(xintercept = 1, linetype = "dashed", colour = warna$redup) +
geom_segment(aes(x = lo, xend = hi, yend = var), colour = pal[1], linewidth = 1.1) +
geom_point(colour = pal[2], size = 3.2) +
geom_text(aes(label = sprintf("%.3f", irr)), vjust = -1.1, colour = warna$teks, size = 3.2) +
scale_x_log10() +
labs(title = "Incidence rate ratio per 1 SD (95% CI)", x = "IRR (log scale)", y = NULL)
p_hasil <- if (tata == 1) p1 / (p2 | p3) else (p1 / p3) | p2
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 300.000
belum termasuk PPN 11%
Waktu pengerjaan: 5 hari kerja
Output: Berkas R + gambar hasil
Yang Anda terima
Paket 2 · paling dipilih
Rp 900.000
belum termasuk PPN 11%
Waktu pengerjaan: 9 hari kerja
Output: Kode + analisis + bahan interpretasi
Termasuk semua item Paket 1, ditambah
Paket 3
Rp 2.000.000
belum termasuk PPN 11%
Waktu pengerjaan: 14-17 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 Poisson lazim dipakai pada jenjang ini di bidang Pendidikan dan Pembelajaran. 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 300.000, Paket 2 (analisis data Anda dan interpretasi) Rp 900.000, dan Paket 3 (pendampingan lengkap) Rp 2.000.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