Memuat
Memuat
Generalized Additive Model (GAM) untuk Kimia dan Material
0 kali dilihat
Menangkap hubungan nonlinear pH larutan dan intensitas cahaya dengan degradasi zat warna, diperagakan pada data sintetis. Generalized Additive Model (GAM) memodelkan hubungan nonlinear antara prediktor dan variabel terikat dengan fungsi smooth (spline) yang kelenturannya ditaksir dari data. Cocok untuk skripsi/tesis yang menduga hubungan berbentuk kurva, misalnya pengaruh suhu, umur, atau dosis.

Menangkap hubungan nonlinear pH larutan dan intensitas cahaya dengan degradasi zat warna, diperagakan pada data sintetis.
| Peran | Variabel | Satuan |
|---|---|---|
| Utama | Degradasi zat warna | % |
| Pendukung 1 | pH larutan | pH |
| Pendukung 2 | Intensitas cahaya | W/m2 |
Smooth pH larutan memiliki edf 2.74 (p < 0.001), menandakan hubungan yang jelas nonlinear, dan smooth Intensitas cahaya memiliki edf 4.33 (p < 0.001). GAM menjelaskan 77.9% deviance Degradasi zat warna dengan AIC 16.8 poin lebih rendah dibanding model linear.
Dihitung dari data sintetis sebagai ilustrasi, bukan dari penelitian nyata.
Generalized Additive Model (GAM) memodelkan hubungan nonlinear antara prediktor dan variabel terikat dengan fungsi smooth (spline) yang kelenturannya ditaksir dari data. Cocok untuk skripsi/tesis yang menduga hubungan berbentuk kurva, misalnya pengaruh suhu, umur, atau dosis.
edf mendekati 1 berarti hubungan hampir linear, sedangkan edf yang lebih besar menunjukkan kurva yang makin lentur; p-value menguji apakah smooth berbeda dari nol. Laporkan edf, p-value, deviance explained, perbandingan AIC dengan model linear, dan grafik efek parsial.
Skrip awal singkat dengan nama variabel proyek ini. Versi yang diserahkan disesuaikan dengan data Anda dan diberi komentar lengkap.
# Contoh kode R: Generalized Additive Model (GAM)
suppressPackageStartupMessages({
library(ggplot2)
library(patchwork)
library(mgcv)
})
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: hubungan nonlinear ----
n <- 200
d <- data.frame(solution_ph = runif(n, 50 - 1.9 * 10, 50 + 1.9 * 10),
light_intensity = rnorm(n, 30, 6))
z1 <- as.numeric(scale(d$solution_ph))
z2 <- as.numeric(scale(d$light_intensity))
# Bentuk kurva dipilih acak: U terbalik, gelombang, atau jenuh (saturasi)
bentuk1 <- sample(1:3, 1)
f1 <- switch(bentuk1, -(z1 - runif(1, -0.4, 0.4))^2, sin(runif(1, 1.2, 1.7) * z1), log1p(exp(2.2 * z1)) - 0.25 * z1^2)
f2 <- if (runif(1) < 0.5) tanh(runif(1, 1, 1.8) * z2) else exp(0.6 * z2)
f1 <- as.numeric(scale(f1)); f2 <- as.numeric(scale(f2))
y <- runif(1, 0.6, 0.85) * f1 + runif(1, 0.3, 0.5) * sample(c(-1, 1), 1) * f2 + rnorm(n, 0, runif(1, 0.45, 0.65))
d$dye_degradation <- round(100 + 15 * y, 3)
write.csv(d, "data_contoh.csv", row.names = FALSE)
# ---- Analisis: Generalized Additive Model (mgcv::gam, REML) ----
fit <- gam(dye_degradation ~ s(solution_ph) + s(light_intensity), data = d, method = "REML")
s <- summary(fit)
print(s)
print(k.check(fit)) # cek kecukupan dimensi basis k (k-index)
lin <- gam(dye_degradation ~ solution_ph + light_intensity, data = d, method = "REML") # pembanding: model linear
aic <- c(Linear = AIC(lin), GAM = AIC(fit))
print(aic)
uji <- anova(lin, fit, test = "F") # uji F aproksimasi: linear vs GAM
print(uji)
edf <- unname(s$s.table[, "edf"])
p_s <- unname(s$s.table[, "p-value"])
# ---- Grafik ----
# Efek parsial tiap smooth (skala Y, variabel lain pada rata-rata) dengan pita 95% dan residual parsial
efek <- function(v, w, lab) {
g <- data.frame(solution_ph = rep(mean(d$solution_ph), 150), light_intensity = rep(mean(d$light_intensity), 150))
g[[v]] <- seq(min(d[[v]]), max(d[[v]]), length.out = 150)
pr <- predict(fit, newdata = g, type = "terms", se.fit = TRUE)
j <- match(paste0("s(", v, ")"), colnames(pr$fit))
gg <- data.frame(x = g[[v]], m = pr$fit[, j], lo = pr$fit[, j] - 1.96 * pr$se.fit[, j], hi = pr$fit[, j] + 1.96 * pr$se.fit[, j])
tr <- predict(fit, type = "terms")
dp <- data.frame(x = d[[v]], r = tr[, j] + residuals(fit)) # residual parsial
ggplot() +
geom_hline(yintercept = 0, colour = warna$redup, linewidth = 0.4) +
geom_point(data = dp, aes(x, r), colour = warna$redup, alpha = 0.3, size = 1.1) +
geom_ribbon(data = gg, aes(x, ymin = lo, ymax = hi), fill = w, alpha = 0.25) +
geom_line(data = gg, aes(x, m), colour = w, linewidth = 1.3) +
geom_rug(data = dp, aes(x), sides = "b", colour = w, alpha = 0.3, length = unit(0.02, "npc")) +
labs(title = sprintf("Partial effect s(%s), edf = %.2f", substr(lab, 1, 14), s$s.table[j, "edf"]),
x = if (v == "solution_ph") "solution_ph" else "light_intensity", y = "Partial effect")
}
p1 <- efek("solution_ph", pal[1], "solution_ph")
p2 <- efek("light_intensity", pal[2], "light_intensity")
d$prediksi <- fitted(fit)
p3 <- ggplot(d, aes(prediksi, dye_degradation)) +
geom_abline(slope = 1, intercept = 0, linetype = "dashed", colour = warna$redup) +
geom_point(colour = pal[3], alpha = 0.55, size = 1.5) +
annotate("text", x = min(d$prediksi), y = max(d$dye_degradation), hjust = 0, vjust = 1, colour = warna$teks, size = 3.3,
label = sprintf("Deviance explained = %.1f%%", 100 * summary(fit)$dev.expl)) +
labs(title = "Predicted vs actual", x = "Predicted dye_degradation", y = "dye_degradation")
p_hasil <- if (tata == 1) (p1 | p2) / p3 else p1 | (p2 / p3)
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 500.000
belum termasuk PPN 11%
Waktu pengerjaan: 7 hari kerja
Output: Berkas R + gambar hasil
Yang Anda terima
Paket 2 · paling dipilih
Rp 1.500.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.300.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. Generalized Additive Model (GAM) lazim dipakai pada jenjang ini di bidang Kimia dan Material. 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 500.000, Paket 2 (analisis data Anda dan interpretasi) Rp 1.500.000, dan Paket 3 (pendampingan lengkap) Rp 3.300.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