#Hasil Pemodelan
d <- read_excel(data_file)
d$Date <- as.Date(round(d$Date), origin = "1899-12-30")
d <- d[order(d$Date), ]
ret <- diff(log(d$Close)) * 100 # log-return harian (%)
dates <- d$Date[-1]; n <- length(ret)
n_nol <- sum(ret == 0)
cat("Observasi harga:", nrow(d), "| return:", n, "| periode:", format(min(d$Date)), "s.d.", format(max(d$Date)),
"| missing:", sum(is.na(d$Close)), "| tanggal ganda:", sum(duplicated(d$Date)), "\n")
## Observasi harga: 1131 | return: 1130 | periode: 2022-01-03 s.d. 2026-09-28 | missing: 0 | tanggal ganda: 0
kurt <- function(x) mean((x - mean(x))^4) / mean((x - mean(x))^2)^2
skw <- function(x) mean((x - mean(x))^3) / mean((x - mean(x))^2)^1.5
jb <- jarque.bera.test(ret)
desk <- data.frame(N = rb(n), Mean = fmt(mean(ret), 3), Median = fmt(median(ret), 3), SD = fmt(sd(ret), 3),
Min = fmt(min(ret), 3), Max = fmt(max(ret), 3), Skewness = fmt(skw(ret), 3), Kurtosis = fmt(kurt(ret), 3))
knitr::kable(desk, align = "c", caption = "Tabel 1. Statistik deskriptif log-return harian TOBA (%)")
Tabel 1. Statistik deskriptif log-return harian TOBA
(%)
| 1.130 |
-0,082 |
-0,563 |
4,248 |
-16,252 |
22,314 |
1,033 |
7,224 |
par(mfrow = c(2, 1), mar = c(3, 4, 2, 1))
plot(d$Date, d$Close, type = "l", col = "navy", xlab = "", ylab = "Rupiah", main = "Harga Penutupan Saham TOBA")
plot(dates, ret, type = "l", col = "firebrick", xlab = "", ylab = "Return (%)",
main = "Log-Return Harian TOBA (volatility clustering)")
abline(h = 0, col = "grey40")
Uji stasioneritas
adf_p <- adf.test(log(d$Close)); adf_r <- suppressWarnings(adf.test(ret)); kp <- suppressWarnings(kpss.test(ret))
st <- data.frame(Uji = c("ADF log-harga", "ADF return", "KPSS return"),
Statistik = fmt(c(adf_p$statistic, adf_r$statistic, kp$statistic), 3),
p_value = c(fmt(adf_p$p.value, 3), "< 0,01", "> 0,10"),
Keputusan = c("Tidak stasioner", "Stasioner", "Stasioner"))
knitr::kable(st, align = "lccl", caption = "Tabel 2. Hasil uji stasioneritas")
Tabel 2. Hasil uji stasioneritas
| ADF log-harga |
-1,922 |
0,611 |
Tidak stasioner |
| ADF return |
-9,661 |
< 0,01 |
Stasioner |
| KPSS return |
0,194 |
> 0,10 |
Stasioner |
Persamaan rata-rata
par(mfrow = c(2, 2), mar = c(4, 4, 3, 1))
acf(ret, 30, main = "ACF Return"); pacf(ret, 30, main = "PACF Return")
acf(ret^2, 30, main = "ACF Return Kuadrat"); pacf(ret^2, 30, main = "PACF Return Kuadrat")
a5 <- acf(ret, 5, plot = FALSE)$acf[-1]; batas <- 1.96 / sqrt(n)
ordr <- list(c(0,0), c(1,0), c(0,1), c(1,1), c(2,2))
arma <- do.call(rbind, lapply(ordr, function(o) {
m <- Arima(ret, order = c(o[1], 0, o[2]), include.mean = TRUE)
data.frame(Model = sprintf("ARMA(%d,%d)", o[1], o[2]), AIC = fmt(m$aic), BIC = fmt(m$bic)) }))
knitr::kable(arma, align = "lcc", caption = "Tabel 3. Perbandingan model ARMA untuk return")
Tabel 3. Perbandingan model ARMA untuk return
| ARMA(0,0) |
6478,57 |
6488,63 |
| ARMA(1,0) |
6479,99 |
6495,08 |
| ARMA(0,1) |
6480,09 |
6495,18 |
| ARMA(1,1) |
6478,94 |
6499,06 |
| ARMA(2,2) |
6473,51 |
6503,69 |
auto.arima(ret, d = 0, ic = "bic", stepwise = FALSE, approximation = FALSE)
## Series: ret
## ARIMA(0,0,0) with zero mean
##
## sigma^2 = 18.03: log likelihood = -3237.5
## AIC=6477 AICc=6477 BIC=6482.03
BIC terendah dimiliki model tanpa komponen AR/MA, dan
auto.arima juga memilih ARIMA(0,0,0). Pilihan ini diuji
ulang di dalam GARCH(1,1) skew-GED:
me <- do.call(rbind, lapply(list(0, 1, 2, 3), function(p) {
form <- if (p == 0) ~garch(1, 1) else as.formula(sprintf("~arma(%d,0)+garch(1,1)", p))
m <- garchFit(form, ret, cond.dist = "sged", trace = FALSE)
data.frame(Persamaan = if (p == 0) "Konstanta" else sprintf("AR(%d)", p),
AIC = m@fit$ics["AIC"], BIC = m@fit$ics["BIC"]) }))
knitr::kable(transform(me, AIC = fmt(AIC, 4), BIC = fmt(BIC, 4)), row.names = FALSE, align = "lcc",
caption = "Tabel 4. Persamaan rata-rata di dalam GARCH(1,1) skew-GED")
Tabel 4. Persamaan rata-rata di dalam GARCH(1,1)
skew-GED
| Konstanta |
5,4559 |
5,4827 |
| AR(1) |
5,4547 |
5,4859 |
| AR(2) |
5,4552 |
5,4908 |
| AR(3) |
5,4570 |
5,4971 |
##Uji efek ARCH
# ARCH-LM (Engle) manual: regresi e^2 pada lag-nya, statistik LM = n * R^2
archlm <- function(x, m) {
e2 <- (x - mean(x))^2; y <- embed(e2, m + 1)
R2 <- summary(lm(y[, 1] ~ y[, -1]))$r.squared; s <- nrow(y) * R2
c(Lag = m, LM = s, p = pchisq(s, m, lower.tail = FALSE)) }
alm <- as.data.frame(t(sapply(c(1, 5, 10, 20), function(m) archlm(ret, m))))
knitr::kable(data.frame(Lag = alm$Lag, LM = fmt(alm$LM), p_value = pv(alm$p), Keputusan = "Tolak H0"),
align = "cccc", caption = "Tabel 5. Uji ARCH-LM pada return")
Tabel 5. Uji ARCH-LM pada return
| 1 |
8,37 |
0,0038 |
Tolak H0 |
| 5 |
51,33 |
< 0,001 |
Tolak H0 |
| 10 |
67,07 |
< 0,001 |
Tolak H0 |
| 20 |
78,10 |
< 0,001 |
Tolak H0 |
lb2 <- sapply(c(5, 10, 20), function(k) Box.test(ret^2, k, "Ljung-Box")$p.value); lb2
## [1] 6.110557e-12 1.631806e-12 2.057821e-11
##Seleksi dan estimasi model varians
spek <- list("ARCH(1)" = ~garch(1,0), "ARCH(2)" = ~garch(2,0), "ARCH(3)" = ~garch(3,0), "ARCH(5)" = ~garch(5,0),
"GARCH(1,1)" = ~garch(1,1), "GARCH(1,2)" = ~garch(1,2), "GARCH(2,1)" = ~garch(2,1), "GARCH(2,2)" = ~garch(2,2))
dists <- c("norm", "std", "sstd", "ged", "sged")
nama_dist <- c(norm = "Normal", std = "Student-t", sstd = "Skew-Student-t", ged = "GED", sged = "Skew-GED")
tab <- NULL
for (dist in dists) for (nm in names(spek)) {
f <- tryCatch(garchFit(spek[[nm]], ret, cond.dist = dist, trace = FALSE), error = function(e) NULL)
if (!is.null(f)) tab <- rbind(tab, data.frame(Model = nm, Distribusi = dist, LogLik = -f@fit$value,
AIC = f@fit$ics["AIC"], BIC = f@fit$ics["BIC"]))
}
rownames(tab) <- NULL; tab <- tab[order(tab$BIC), ]
n_coba <- length(spek) * length(dists); n_model <- nrow(tab)
# uji Kolmogorov-Smirnov residual baku terhadap distribusi yang diasumsikan (perkiraan)
ks_dist <- function(dist) {
m <- garchFit(~garch(1,1), ret, cond.dist = dist, trace = FALSE)
zz <- as.numeric(residuals(m, standardize = TRUE)); p <- m@fit$par
pf <- switch(dist, norm = function(q) pnorm(q), std = function(q) pstd(q, 0, 1, p["shape"]),
sstd = function(q) psstd(q, 0, 1, p["shape"], p["skew"]),
ged = function(q) pged(q, 0, 1, p["shape"]), sged = function(q) psged(q, 0, 1, p["shape"], p["skew"]))
suppressWarnings(ks.test(zz, pf)$p.value)
}
g11 <- tab[tab$Model == "GARCH(1,1)", ]; g11$KS_p <- sapply(as.character(g11$Distribusi), ks_dist)
knitr::kable(data.frame(Distribusi = nama_dist[as.character(g11$Distribusi)], LogLik = fmt(g11$LogLik),
AIC = fmt(g11$AIC, 4), BIC = fmt(g11$BIC, 4), KS_p = pv(g11$KS_p)),
row.names = FALSE, align = "lcccc",
col.names = c("Distribusi galat", "Log-Lik", "AIC", "BIC", "p-value K-S residual baku"),
caption = "Tabel 6. GARCH(1,1) dengan lima asumsi distribusi galat (urut BIC)")
Tabel 6. GARCH(1,1) dengan lima asumsi distribusi galat (urut
BIC)
| Skew-GED |
-3076,61 |
5,4559 |
5,4827 |
0,0194 |
| Skew-Student-t |
-3081,26 |
5,4642 |
5,4909 |
0,0662 |
| Student-t |
-3088,51 |
5,4752 |
5,4975 |
0,1847 |
| GED |
-3090,57 |
5,4789 |
5,5011 |
0,0324 |
| Normal |
-3176,93 |
5,6300 |
5,6478 |
< 0,001 |
top10 <- head(tab, 10)
knitr::kable(data.frame(Model = top10$Model, Distribusi = nama_dist[as.character(top10$Distribusi)],
LogLik = fmt(top10$LogLik), AIC = fmt(top10$AIC, 4), BIC = fmt(top10$BIC, 4)),
row.names = FALSE, align = "llccc",
caption = paste0("Tabel 7. Sepuluh model terbaik dari ", n_model, " model (urut BIC terkecil)"))
Tabel 7. Sepuluh model terbaik dari 32 model (urut BIC
terkecil)
| GARCH(1,1) |
Skew-GED |
-3076,61 |
5,4559 |
5,4827 |
| GARCH(1,2) |
Skew-GED |
-3076,10 |
5,4568 |
5,4880 |
| GARCH(2,1) |
Skew-GED |
-3076,54 |
5,4576 |
5,4887 |
| GARCH(1,1) |
Skew-Student-t |
-3081,26 |
5,4642 |
5,4909 |
| GARCH(2,2) |
Skew-GED |
-3076,32 |
5,4590 |
5,4946 |
| GARCH(1,2) |
Skew-Student-t |
-3080,75 |
5,4650 |
5,4962 |
| GARCH(2,1) |
Skew-Student-t |
-3081,28 |
5,4660 |
5,4971 |
| GARCH(1,1) |
Student-t |
-3088,51 |
5,4752 |
5,4975 |
| GARCH(1,1) |
GED |
-3090,57 |
5,4789 |
5,5011 |
| GARCH(2,2) |
Skew-Student-t |
-3080,75 |
5,4668 |
5,5024 |
fit <- garchFit(~garch(1,1), ret, cond.dist = "sged", trace = FALSE)
cf <- as.data.frame(fit@fit$matcoef); names(cf) <- c("Estimate", "Std.Error", "t.value", "p.value")
cf$Parameter <- rownames(cf); rownames(cf) <- NULL
g <- function(p, k = "Estimate") cf[cf$Parameter == p, k]
mu <- g("mu"); om <- g("omega"); al <- g("alpha1"); be <- g("beta1"); nu <- g("shape"); xi <- g("skew")
lab <- c(mu = "μ (mean)", omega = "ω", alpha1 = "α (ARCH)", beta1 = "β (GARCH)", skew = "ξ (skew)", shape = "ν (shape)")
knitr::kable(data.frame(Parameter = lab[cf$Parameter], Estimasi = fmt(cf$Estimate, 4), Std_Error = fmt(cf$Std.Error, 4),
t = fmt(cf$t.value, 3), p_value = pv(cf$p.value),
Signifikan = ifelse(cf$p.value < 0.05, "Ya", "Tidak")),
row.names = FALSE, align = "lccccc",
col.names = c("Parameter", "Estimasi", "Std. Error", "t-hitung", "p-value", "Signifikan (5%)"),
caption = "Tabel 8. Hasil estimasi GARCH(1,1) dengan galat skew-GED")
Tabel 8. Hasil estimasi GARCH(1,1) dengan galat
skew-GED
| μ (mean) |
-0,1424 |
0,1050 |
-1,356 |
0,1752 |
Tidak |
| ω |
0,5381 |
0,2538 |
2,121 |
0,0339 |
Ya |
| α (ARCH) |
0,0791 |
0,0256 |
3,091 |
0,0020 |
Ya |
| β (GARCH) |
0,8918 |
0,0338 |
26,363 |
< 0,001 |
Ya |
| ξ (skew) |
1,1677 |
0,0276 |
42,380 |
< 0,001 |
Ya |
| ν (shape) |
1,0297 |
0,0536 |
19,215 |
< 0,001 |
Ya |
pers <- al + be; hl <- log(0.5) / log(pers); sd_lr <- sqrt(om / (1 - pers)); sig <- fit@sigma.t; sig_last <- tail(sig, 1)
# uji Wald H0: alpha + beta = 1 (metode delta)
V <- fit@fit$cvar; nmv <- colnames(V); if (is.null(nmv)) nmv <- names(fit@fit$par)
ia <- which(nmv == "alpha1"); ib <- which(nmv == "beta1")
se_pers <- sqrt(V[ia, ia] + V[ib, ib] + 2 * V[ia, ib]); z_w <- (pers - 1) / se_pers; p_w <- 2 * pnorm(-abs(z_w))
kar <- data.frame(Ukuran = c("Persistensi (α + β)", "Uji Wald H0: α + β = 1", "Half-life kejutan volatilitas (hari)",
"Simpangan baku jangka panjang (% per hari)", "Simpangan baku sampel (% per hari)",
"Simpangan baku bersyarat hari terakhir (% per hari)"),
Nilai = c(fmt(pers, 4), paste0("z = ", fmt(z_w), "; p = ", fmt(p_w, 3)), fmt(hl, 1),
fmt(sd_lr), fmt(sd(ret)), fmt(sig_last)))
knitr::kable(kar, align = "lc", caption = "Tabel 9. Karakteristik volatilitas dari model")
Tabel 9. Karakteristik volatilitas dari model
| Persistensi (α + β) |
0,9709 |
| Uji Wald H0: α + β = 1 |
z = -1,92; p = 0,055 |
| Half-life kejutan volatilitas (hari) |
23,5 |
| Simpangan baku jangka panjang (% per hari) |
4,30 |
| Simpangan baku sampel (% per hari) |
4,25 |
| Simpangan baku bersyarat hari terakhir (% per
hari) |
3,55 |
par(mfrow = c(2, 1), mar = c(3, 4, 2, 1))
plot(dates, ret, type = "l", col = "grey60", xlab = "", ylab = "%", ylim = range(c(ret, mu + 2*sig, mu - 2*sig)),
main = "Return dan Pita ±2 Simpangan Baku Bersyarat")
lines(dates, mu + 2*sig, col = "red"); lines(dates, mu - 2*sig, col = "red")
plot(dates, sig, type = "l", col = "darkred", xlab = "", ylab = "%", main = "Simpangan Baku Bersyarat GARCH(1,1)-skew-GED")
abline(h = sd_lr, lty = 2, col = "blue")
top <- data.frame(Tanggal = dates, Return = ret, Sigma = sig); top <- top[order(-top$Sigma), ]
bulan <- c("Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember")
tgl <- function(x) paste(as.integer(format(x, "%d")), bulan[as.integer(format(x, "%m"))], format(x, "%Y"))
Diagnostik model
z <- as.numeric(residuals(fit, standardize = TRUE))
ks_p <- suppressWarnings(ks.test(z, function(q) psged(q, mean = 0, sd = 1, nu = nu, xi = xi))$p.value)
S <- as.numeric(z[-n] < 0); zl <- z[-n]; y2 <- z[-1]^2 # sign bias Engle-Ng
sbf <- lm(y2 ~ S + I(S * zl) + I((1 - S) * zl)); fj <- summary(sbf)$fstatistic
sb_p <- pf(fj[1], fj[2], fj[3], lower.tail = FALSE)
dg <- data.frame(
Uji = c("Ljung-Box residual baku, Q(10)", "Ljung-Box residual baku, Q(20)", "Ljung-Box residual baku kuadrat, Q(10)",
"Ljung-Box residual baku kuadrat, Q(20)", "ARCH-LM residual baku, lag 5", "ARCH-LM residual baku, lag 10",
"Kolmogorov-Smirnov terhadap skew-GED (perkiraan)", "Sign bias Engle-Ng (uji gabungan)"),
p_value = fmt(c(Box.test(z, 10, "Ljung-Box")$p.value, Box.test(z, 20, "Ljung-Box")$p.value,
Box.test(z^2, 10, "Ljung-Box")$p.value, Box.test(z^2, 20, "Ljung-Box")$p.value,
archlm(z, 5)["p"], archlm(z, 10)["p"], ks_p, sb_p), 4))
knitr::kable(dg, align = "lc", caption = "Tabel 10. Uji diagnostik residual baku (p-value)")
Tabel 10. Uji diagnostik residual baku (p-value)
| Ljung-Box residual baku, Q(10) |
0,2387 |
| Ljung-Box residual baku, Q(20) |
0,3371 |
| Ljung-Box residual baku kuadrat, Q(10) |
0,6113 |
| Ljung-Box residual baku kuadrat, Q(20) |
0,7847 |
| ARCH-LM residual baku, lag 5 |
0,7915 |
| ARCH-LM residual baku, lag 10 |
0,6312 |
| Kolmogorov-Smirnov terhadap skew-GED (perkiraan) |
0,0194 |
| Sign bias Engle-Ng (uji gabungan) |
0,6907 |
par(mfrow = c(2, 2), mar = c(4, 4, 3, 1))
acf(z, 30, main = "ACF Residual Baku"); acf(z^2, 30, main = "ACF Residual Baku Kuadrat")
qqplot(qsged(ppoints(n), mean = 0, sd = 1, nu = nu, xi = xi), z, main = "QQ-Plot Residual Baku vs Skew-GED",
xlab = "Kuantil teoretis skew-GED", ylab = "Kuantil sampel", pch = 16, cex = .5); abline(0, 1, col = "red")
hist(z, 50, freq = FALSE, col = "grey85", main = "Histogram Residual Baku", xlab = "z"); lines(density(z), col = "blue", lwd = 2)
xx <- seq(min(z), max(z), length.out = 400); lines(xx, dsged(xx, mean = 0, sd = 1, nu = nu, xi = xi), col = "red", lwd = 2)
legend("topright", c("Kernel", "Skew-GED"), col = c("blue", "red"), lwd = 2, bty = "n")
##Uji efek asimetris (leverage)
gj <- garchFit(~aparch(1,1), ret, cond.dist = "sged", trace = FALSE, delta = 2, include.delta = FALSE)
gc <- as.data.frame(gj@fit$matcoef); names(gc) <- c("Estimate", "Std.Error", "t.value", "p.value"); gc$Parameter <- rownames(gc)
gam <- gc$Estimate[gc$Parameter == "gamma1"]; gam_p <- gc$p.value[gc$Parameter == "gamma1"]; ga <- gc$Estimate[gc$Parameter == "alpha1"]
LLf <- -fit@fit$value; LLg <- -gj@fit$value; LR <- 2 * (LLg - LLf); LR_p <- pchisq(LR, 1, lower.tail = FALSE)
knitr::kable(data.frame(Model = c("GARCH(1,1) skew-GED", "GJR/apARCH(1,1) skew-GED"),
LogLik = fmt(c(LLf, LLg)), AIC = fmt(c(fit@fit$ics["AIC"], gj@fit$ics["AIC"]), 4),
BIC = fmt(c(fit@fit$ics["BIC"], gj@fit$ics["BIC"]), 4)),
align = "lccc", caption = "Tabel 11. Perbandingan GARCH(1,1) simetris dan GJR/apARCH(1,1) asimetris")
Tabel 11. Perbandingan GARCH(1,1) simetris dan GJR/apARCH(1,1)
asimetris
| GARCH(1,1) skew-GED |
-3076,61 |
5,4559 |
5,4827 |
| GJR/apARCH(1,1) skew-GED |
-3075,52 |
5,4558 |
5,4869 |
rasio <- ((1 + gam) / (1 - gam))^2
e <- seq(-10, 10, length.out = 201)
plot(e, al * e^2, type = "l", lwd = 2, col = "navy", xlab = "Kejutan return kemarin (%)",
ylab = "Kontribusi ke varians hari ini", main = "News Impact Curve (ilustrasi)")
lines(e, ga * (abs(e) - gam * e)^2, lwd = 2, col = "firebrick")
legend("top", c("GARCH(1,1) simetris", "GJR/apARCH (asimetris, γ tidak signifikan)"), col = c("navy", "firebrick"), lwd = 2, bty = "n")
Peramalan volatilitas
pr <- predict(fit, n.ahead = 30); fc <- pr$standardDeviation
knitr::kable(data.frame(Horizon = c(1, 5, 10, 20, 30), Simpangan_baku = fmt(fc[c(1, 5, 10, 20, 30)])),
align = "cc", col.names = c("Horizon (hari)", "Simpangan baku (%)"), caption = "Tabel 12. Ramalan simpangan baku harian")
Tabel 12. Ramalan simpangan baku harian
| 1 |
3,52 |
| 5 |
3,62 |
| 10 |
3,72 |
| 20 |
3,87 |
| 30 |
3,99 |
plot(1:30, fc, type = "b", pch = 16, col = "darkgreen", xlab = "Hari ke depan", ylab = "Simpangan baku (%)",
main = "Ramalan Volatilitas 30 Hari (mean-reverting)")
abline(h = sd_lr, lty = 2, col = "blue")
Uji sensitivitas terhadap distribusi galat
ft <- garchFit(~garch(1,1), ret, cond.dist = "sstd", trace = FALSE)
gt <- garchFit(~aparch(1,1), ret, cond.dist = "sstd", trace = FALSE, delta = 2, include.delta = FALSE)
pt <- ft@fit$par; ptg <- gt@fit$matcoef
pers_t <- pt["alpha1"] + pt["beta1"]; sd_t <- sqrt(pt["omega"] / (1 - pers_t))
fc_t <- predict(ft, n.ahead = 30)$standardDeviation
gam_t <- ptg["gamma1", 1]; gam_t_p <- ptg["gamma1", 4]
sens <- data.frame(
Ukuran = c("AIC / BIC", "α / β", "Persistensi (α + β)", "Half-life (hari)", "Simpangan baku jangka panjang (%)",
"Ramalan simpangan baku hari ke-30 (%)", "γ asimetri (p-value)", "p-value K-S residual baku"),
Skew_GED = c(paste0(fmt(g11$AIC[1], 4), " / ", fmt(g11$BIC[1], 4)), paste0(fmt(al, 3), " / ", fmt(be, 3)), fmt(pers, 4),
fmt(hl, 1), fmt(sd_lr), fmt(fc[30]), paste0(fmt(gam, 3), " (", fmt(gam_p, 3), ")"), pv(g11$KS_p[1])),
Skew_t = c(paste0(fmt(g11$AIC[2], 4), " / ", fmt(g11$BIC[2], 4)), paste0(fmt(pt["alpha1"], 3), " / ", fmt(pt["beta1"], 3)),
fmt(pers_t, 4), fmt(log(0.5) / log(pers_t), 1), fmt(sd_t), fmt(fc_t[30]),
paste0(fmt(gam_t, 3), " (", fmt(gam_t_p, 3), ")"), pv(g11$KS_p[2])))
knitr::kable(sens, align = "lcc", col.names = c("Ukuran", "Skew-GED (terpilih)", "Skew-Student-t"),
caption = "Tabel 13. GARCH(1,1) skew-GED dibandingkan dengan skew-Student-t")
Tabel 13. GARCH(1,1) skew-GED dibandingkan dengan
skew-Student-t
| AIC / BIC |
5,4559 / 5,4827 |
5,4642 / 5,4909 |
| α / β |
0,079 / 0,892 |
0,130 / 0,844 |
| Persistensi (α + β) |
0,9709 |
0,9734 |
| Half-life (hari) |
23,5 |
25,7 |
| Simpangan baku jangka panjang (%) |
4,30 |
6,02 |
| Ramalan simpangan baku hari ke-30 (%) |
3,99 |
5,11 |
| γ asimetri (p-value) |
0,130 (0,103) |
0,223 (0,004) |
| p-value K-S residual baku |
0,0194 |
0,0662 |