Memuat
Memuat
Bootstrap Interval Kepercayaan untuk Pemasaran dan Perilaku Konsumen
0 kali dilihat
Analisis ini bertujuan menghitung interval kepercayaan bootstrap untuk median dan koefisien tanpa asumsi distribusi, diilustrasikan dengan data sintetis. Bootstrap membangun interval kepercayaan dengan mengambil sampel ulang data berkali-kali, sehingga tidak bergantung pada asumsi distribusi normal. Cocok untuk skripsi/tesis dengan data menceng atau statistik yang sulit dihitung galat bakunya, seperti median, korelasi, atau koefisien regresi pada sampel terbatas.

Analisis ini bertujuan menghitung interval kepercayaan bootstrap untuk median dan koefisien tanpa asumsi distribusi, diilustrasikan dengan data sintetis.
| Peran | Variabel | Satuan |
|---|---|---|
| Utama | Nilai keranjang belanja | IDR thousand |
| Pendukung 1 | Lama kunjungan | minutes |
| Pendukung 2 | Jumlah item | count |
Dengan 2000 replikasi bootstrap, median Nilai keranjang belanja sebesar 156.16 (BCa 95%: 153.89 sampai 157.97). Korelasi Nilai keranjang belanja dengan Lama kunjungan r = 0.407 (BCa: 0.316 sampai 0.474) dan koefisien Lama kunjungan dalam regresi 1.134 (BCa: 0.835 sampai 1.766), tidak memuat nol sehingga signifikan.
Dihitung dari data sintetis sebagai ilustrasi, bukan dari penelitian nyata.
Bootstrap membangun interval kepercayaan dengan mengambil sampel ulang data berkali-kali, sehingga tidak bergantung pada asumsi distribusi normal. Cocok untuk skripsi/tesis dengan data menceng atau statistik yang sulit dihitung galat bakunya, seperti median, korelasi, atau koefisien regresi pada sampel terbatas.
Laporkan estimasi titik, galat baku bootstrap, dan interval BCa 95% (lebih akurat untuk data menceng) beserta jumlah replikasi. Interval yang tidak memuat nol menandakan korelasi atau koefisien signifikan; bandingkan dengan interval klasik untuk menunjukkan dampak asumsi normalitas.
Skrip awal singkat dengan nama variabel proyek ini. Versi yang diserahkan disesuaikan dengan data Anda dan diberi komentar lengkap.
# Contoh kode R: Bootstrap Confidence Intervals
suppressPackageStartupMessages({
library(ggplot2)
library(patchwork)
library(boot)
})
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: Y menceng kanan, dipengaruhi X1 dan X2 ----
n <- 200
d <- data.frame(visit_duration = round(pmax(rnorm(n, 50, 10), 0), 3),
item_count = round(pmax(rnorm(n, 30, 6), 0), 3))
z1 <- as.numeric(scale(d$visit_duration))
z2 <- as.numeric(scale(d$item_count))
lat <- runif(1, 0.45, 0.8) * z1 + runif(1, 0.15, 0.4) * sample(c(-1, 1), 1) * z2 + rnorm(n, 0, runif(1, 0.6, 0.85))
w <- exp(runif(1, 0.45, 0.7) * lat) # transformasi eksponensial -> menceng kanan
d$basket_value <- round(pmax(100 + 15 * (w - mean(w)) / sd(w), 0.05 * abs(100)), 3)
write.csv(d, "data_contoh.csv", row.names = FALSE)
# ---- Statistik yang di-bootstrap (median, korelasi, koefisien regresi) ----
statistik <- function(data, i) {
s <- data[i, ]
c(median = median(s$basket_value),
korelasi = cor(s$basket_value, s$visit_duration),
koef = unname(coef(lm(basket_value ~ visit_duration + item_count, data = s))[2]))
}
print(summary(d))
cat("Skewness Y:", round(mean((d$basket_value - mean(d$basket_value))^3) / sd(d$basket_value)^3, 3), "\n")
# ---- Bootstrap nonparametrik R = 2000 ----
b <- boot::boot(d, statistik, R = 2000)
print(b)
ci <- lapply(1:3, function(j) boot::boot.ci(b, conf = 0.95, type = c("perc", "bca"), index = j))
print(ci)
# ---- Interval kepercayaan klasik sebagai pembanding ----
ys <- sort(d$basket_value)
kb <- qbinom(c(0.025, 0.975), n, 0.5) # CI median berbasis statistik tataan (binomial)
ci_med <- c(ys[max(kb[1], 1)], ys[min(kb[2] + 1, n)])
ct <- cor.test(d$basket_value, d$visit_duration) # CI Fisher z untuk korelasi
fit <- lm(basket_value ~ visit_duration + item_count, data = d)
ci_koef <- confint(fit)[2, ] # CI t (asumsi normal) untuk koefisien
print(summary(fit))
tabel <- do.call(rbind, lapply(1:3, function(j) {
klasik <- list(ci_med, as.numeric(ct$conf.int), as.numeric(ci_koef))[[j]]
data.frame(stat = c("Median", "Correlation", "Coefficient")[j], estimasi = unname(b$t0[j]),
metode = c("Classic", "Percentile", "BCa"),
bawah = c(klasik[1], ci[[j]]$percent[4], ci[[j]]$bca[4]),
atas = c(klasik[2], ci[[j]]$percent[5], ci[[j]]$bca[5]))
}))
tabel$lebar <- tabel$atas - tabel$bawah
print(tabel)
se_boot <- apply(b$t, 2, sd)
# ---- Grafik ----
nm_stat <- c("Median", "Correlation", "Coefficient")
db <- data.frame(stat = factor(rep(nm_stat, each = nrow(b$t)), levels = nm_stat), nilai = as.vector(b$t))
tabel$stat <- factor(tabel$stat, levels = nm_stat)
tabel$metode <- factor(tabel$metode, levels = c("BCa", "Percentile", "Classic"))
garis <- rbind(transform(tabel[tabel$metode != "Classic", ], x = bawah),
transform(tabel[tabel$metode != "Classic", ], x = atas))
p1 <- ggplot(db, aes(nilai)) +
geom_histogram(bins = 35, fill = pal[1], colour = warna$panel, alpha = 0.75) +
geom_vline(data = garis, aes(xintercept = x, colour = metode, linetype = metode), linewidth = 0.8) +
geom_vline(data = tabel[tabel$metode == "BCa", ], aes(xintercept = estimasi), colour = warna$teks, linewidth = 0.9) +
facet_wrap(~stat, scales = "free") +
scale_colour_manual(values = c(BCa = pal[2], Percentile = pal[3]), name = "95% CI") +
scale_linetype_manual(values = c(BCa = "solid", Percentile = "dashed"), name = "95% CI") +
scale_x_continuous(n.breaks = 4) +
labs(title = "Bootstrap distributions (R = 2000)", x = "Bootstrap estimate", y = "Count") +
theme(legend.position = "bottom")
p2 <- ggplot(tabel, aes(estimasi, metode, colour = metode)) +
geom_errorbarh(aes(xmin = bawah, xmax = atas), height = 0.3, linewidth = 1) +
geom_point(size = 2.4) +
facet_wrap(~stat, scales = "free_x", ncol = 1) +
scale_colour_manual(values = c(BCa = pal[2], Percentile = pal[3], Classic = warna$redup), guide = "none") +
scale_x_continuous(n.breaks = 5) +
labs(title = "95% CI: classic vs percentile vs BCa", x = "Estimate", y = NULL)
idx <- replicate(60, sample(n, replace = TRUE), simplify = FALSE)
gb <- do.call(rbind, lapply(seq_along(idx), function(k) {
cf <- coef(lm(basket_value ~ visit_duration, data = d[idx[[k]], ]))
data.frame(rep = k, a = cf[1], b = cf[2])
}))
p3 <- ggplot(d, aes(visit_duration, basket_value)) +
geom_point(colour = pal[4], alpha = 0.45, size = 1.3) +
geom_abline(data = gb, aes(intercept = a, slope = b), colour = pal[2], alpha = 0.15, linewidth = 0.6) +
geom_smooth(method = "lm", formula = y ~ x, se = FALSE, colour = warna$teks, linewidth = 1) +
labs(title = "Bootstrap regression lines (60 resamples)", x = "visit_duration", y = "basket_value")
p_hasil <- if (tata == 1) p1 / (p3 | p2) + plot_layout(heights = c(0.9, 1.2)) else p1 / (p2 | p3) + plot_layout(heights = c(0.9, 1.2))
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 400.000
belum termasuk PPN 11%
Waktu pengerjaan: 5 hari kerja
Output: Berkas R + gambar hasil
Yang Anda terima
Paket 2 · paling dipilih
Rp 1.100.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.400.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. Bootstrap Interval Kepercayaan lazim dipakai pada jenjang ini di bidang Pemasaran dan Perilaku Konsumen. 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 400.000, Paket 2 (analisis data Anda dan interpretasi) Rp 1.100.000, dan Paket 3 (pendampingan lengkap) Rp 2.400.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