Memuat
Memuat
VAR dan Kausalitas Granger untuk Informatika dan Sistem Informasi
0 kali dilihat
Analisis ini bertujuan menguji hubungan timbal balik pendapatan aplikasi, unduhan aplikasi baru, dan belanja pemasaran lewat VAR dan kausalitas Granger, didemonstrasikan pada data sintetis. VAR (Vector Autoregression) memodelkan beberapa deret waktu stasioner yang saling memengaruhi, lalu uji kausalitas Granger, IRF, dan FEVD menunjukkan arah serta besarnya pengaruh dinamis antarderet. Cocok untuk skripsi, tesis, atau disertasi yang meneliti hubungan timbal balik variabel makro, keuangan, kesehatan, atau lingkungan dari data bulanan atau kuartalan.

Analisis ini bertujuan menguji hubungan timbal balik pendapatan aplikasi, unduhan aplikasi baru, dan belanja pemasaran lewat VAR dan kausalitas Granger, didemonstrasikan pada data sintetis.
| Peran | Variabel | Satuan |
|---|---|---|
| Utama | Pendapatan aplikasi | IDR million |
| Pendukung 1 | Unduhan aplikasi baru | thousand |
| Pendukung 2 | Belanja pemasaran | IDR million |
Model VAR(2) pilihan AIC stabil (modulus akar maksimum 0.713). Unduhan aplikasi baru terbukti memengaruhi Pendapatan aplikasi secara Granger (p < 0.001), dan pengaruh Belanja pemasaran signifikan (p = 0.049). Pada horizon 10, guncangan Unduhan aplikasi baru menjelaskan 35.9% varians galat ramalan Pendapatan aplikasi.
Dihitung dari data sintetis sebagai ilustrasi, bukan dari penelitian nyata.
VAR (Vector Autoregression) memodelkan beberapa deret waktu stasioner yang saling memengaruhi, lalu uji kausalitas Granger, IRF, dan FEVD menunjukkan arah serta besarnya pengaruh dinamis antarderet. Cocok untuk skripsi, tesis, atau disertasi yang meneliti hubungan timbal balik variabel makro, keuangan, kesehatan, atau lingkungan dari data bulanan atau kuartalan.
Laporkan panjang lag terpilih, uji stabilitas, dan uji Portmanteau sebagai diagnostik. Nilai p uji Granger di bawah 0,05 berarti lag variabel tersebut membantu meramalkan Y; IRF menunjukkan arah dan lamanya respons, sedangkan FEVD menunjukkan persentase varians galat ramalan Y yang dijelaskan tiap guncangan.
Skrip awal singkat dengan nama variabel proyek ini. Versi yang diserahkan disesuaikan dengan data Anda dan diberi komentar lengkap.
# Contoh kode R: VAR and Granger Causality
suppressPackageStartupMessages({
library(ggplot2)
library(patchwork)
library(vars)
library(car)
})
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: tiga deret bulanan dari proses VAR(2) yang stasioner ----
nt <- 120
# matriks koefisien lag 1 dan lag 2; diulang sampai prosesnya stabil (semua akar < 0.9)
repeat {
A1 <- diag(runif(3, 0.3, 0.55))
A1[1, 2] <- runif(1, 0.25, 0.45) # X1 -> Y
A1[1, 3] <- runif(1, 0.1, 0.35) * sample(c(-1, 1), 1) # X2 -> Y
A1[2, 3] <- runif(1, -0.15, 0.15)
A1[3, 2] <- runif(1, -0.1, 0.2)
A2 <- diag(runif(3, -0.15, 0.15))
A2[1, 2] <- runif(1, 0.05, 0.2)
komp <- rbind(cbind(A1, A2), cbind(diag(3), matrix(0, 3, 3))) # matriks pendamping (companion)
if (max(Mod(eigen(komp)$values)) < 0.9) break
}
z <- matrix(0, nt + 50, 3)
for (i in 3:(nt + 50)) z[i, ] <- A1 %*% z[i - 1, ] + A2 %*% z[i - 2, ] + rnorm(3, 0, c(0.6, 1, 1))
z <- scale(z[-(1:50), ]) # buang periode pemanasan (burn-in)
d <- data.frame(periode = seq(as.Date("2015-01-01"), by = "month", length.out = nt),
app_revenue = round(pmax(100 + 15 * z[, 1], 0), 3),
new_app_downloads = round(pmax(50 + 10 * z[, 2], 0), 3),
marketing_spend = round(pmax(30 + 6 * z[, 3], 0), 3))
write.csv(d, "data_contoh.csv", row.names = FALSE)
# ---- Analisis: Vector Autoregression (VAR) ----
dv <- d[, c("app_revenue", "new_app_downloads", "marketing_spend")]
sel <- VARselect(dv, lag.max = 6, type = "const") # pemilihan panjang lag
print(sel$selection)
p_lag <- max(1, as.integer(sel$selection[["AIC(n)"]]))
fit <- do.call(VAR, list(y = dv, p = p_lag, type = "const")) # do.call: nilai lag tersimpan di objek
print(summary(fit))
# ---- Diagnostik: stabilitas dan autokorelasi residual ----
akar <- roots(fit) # modulus akar; < 1 berarti VAR stabil
st <- serial.test(fit, lags.pt = 12, type = "PT.asymptotic") # uji Portmanteau
print(akar); print(st)
# ---- Kausalitas Granger ----
# uji Wald pada persamaan app_revenue: apakah semua lag X1 (atau X2) bersama-sama nol?
eq_y <- fit$varresult$app_revenue
gr_x1 <- car::linearHypothesis(eq_y, paste0("new_app_downloads.l", 1:p_lag, " = 0"))
gr_x2 <- car::linearHypothesis(eq_y, paste0("marketing_spend.l", 1:p_lag, " = 0"))
p_x1 <- gr_x1[2, "Pr(>F)"]; p_x2 <- gr_x2[2, "Pr(>F)"]
print(gr_x1); print(gr_x2)
print(causality(fit, cause = "new_app_downloads")$Granger) # versi blok (X1 -> semua variabel lain)
# ---- Impulse response function (IRF) dan dekomposisi varians (FEVD) ----
ir <- irf(fit, impulse = c("new_app_downloads", "marketing_spend"), response = "app_revenue", n.ahead = 10,
ortho = TRUE, boot = TRUE, runs = 200)
fv <- fevd(fit, n.ahead = 10)
print(round(fv$app_revenue, 3))
# ---- Grafik ----
nm3 <- make.unique(c("app_revenue", "new_app_downloads", "marketing_spend"), sep = " ")
dl <- data.frame(periode = rep(d$periode, 3), nilai = c(d$app_revenue, d$new_app_downloads, d$marketing_spend),
seri = factor(rep(nm3, each = nt), levels = nm3))
p1 <- ggplot(dl, aes(periode, nilai, colour = seri)) +
geom_line(linewidth = 0.7, show.legend = FALSE) +
facet_wrap(~seri, ncol = if (tata == 1) 1 else 3, scales = "free_y") +
scale_colour_manual(values = pal[1:3]) +
labs(title = "The three series", x = NULL, y = NULL)
kej <- c("new_app_downloads", "marketing_spend")
lab_s <- make.unique(c("Shock: new_app_downloads", "Shock: marketing_spend"), sep = " ")
di <- do.call(rbind, lapply(1:2, function(i) data.frame(
h = 0:10, irf = ir$irf[[kej[i]]][, 1], lo = ir$Lower[[kej[i]]][, 1], hi = ir$Upper[[kej[i]]][, 1],
guncangan = lab_s[i])))
di$guncangan <- factor(di$guncangan, levels = lab_s)
p2 <- ggplot(di, aes(h, irf)) +
geom_hline(yintercept = 0, colour = warna$redup) +
geom_ribbon(aes(ymin = lo, ymax = hi, fill = guncangan), alpha = 0.22, show.legend = FALSE) +
geom_line(aes(colour = guncangan), linewidth = 1, show.legend = FALSE) +
facet_wrap(~guncangan, ncol = 2) +
scale_colour_manual(values = pal[2:3]) + scale_fill_manual(values = pal[2:3]) +
scale_x_continuous(breaks = seq(0, 10, 2)) +
labs(title = "Orthogonal IRF of app_revenue (95% bootstrap)", x = "Horizon", y = "Response")
nm_s <- make.unique(c("app_revenue", "new_app_downloads", "marketing_spend"), sep = " ")
dfv <- data.frame(h = rep(1:10, 3), porsi = 100 * c(fv$app_revenue),
sumber = factor(rep(nm_s, each = 10), levels = nm_s))
p3 <- ggplot(dfv, aes(factor(h), porsi, fill = sumber)) +
geom_col(width = 0.75, colour = warna$panel, linewidth = 0.3) +
scale_fill_manual(values = pal[1:3], name = "Shock") +
labs(title = "FEVD of app_revenue", x = "Horizon", y = "Share of variance (%)")
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 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.050.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. VAR dan Kausalitas Granger lazim dipakai pada jenjang ini di bidang Informatika dan Sistem Informasi. 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.050.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