library(quantmod)
library(tidyverse)
library(tseries)
library(FinTS)
library(rugarch)
library(fBasics)
library(forecast)
library(scales)
getSymbols(
"AAPL",
src = "yahoo",
from = "2022-04-11",
to = "2026-10-01",
auto.assign = TRUE
)
## [1] "AAPL"
head(AAPL)
## AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
## 2022-04-11 168.71 169.03 165.50 165.75 72246700 162.1100
## 2022-04-12 168.02 169.87 166.64 167.66 79265200 163.9780
## 2022-04-13 167.39 171.04 166.77 170.40 70618900 166.6579
## 2022-04-14 170.62 171.27 165.04 165.29 75329400 161.6601
## 2022-04-18 163.92 166.60 163.57 165.07 69023900 161.4450
## 2022-04-19 165.02 167.82 163.91 167.40 67723800 163.7237
tail(AAPL)
## AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
## 2026-09-23 341.08 341.80 335.50 337.02 31658800 337.02
## 2026-09-24 336.72 338.91 334.30 335.92 24733100 335.92
## 2026-09-25 336.04 341.67 334.53 341.07 30002500 341.07
## 2026-09-28 340.37 342.99 338.04 338.40 32820800 338.40
## 2026-09-29 336.97 337.09 328.70 329.40 38478000 329.40
## 2026-09-30 330.80 339.50 330.14 333.02 49988600 333.02
start(AAPL)
## [1] "2022-04-11"
end(AAPL)
## [1] "2026-09-30"
data_AAPL <- data.frame(
Date = index(AAPL),
Close = as.numeric(Cl(AAPL))
)
sum(is.na(data_AAPL$Close))
## [1] 0
head(data_AAPL)
## Date Close
## 1 2022-04-11 165.75
## 2 2022-04-12 167.66
## 3 2022-04-13 170.40
## 4 2022-04-14 165.29
## 5 2022-04-18 165.07
## 6 2022-04-19 167.40
tail(data_AAPL)
## Date Close
## 1117 2026-09-23 337.02
## 1118 2026-09-24 335.92
## 1119 2026-09-25 341.07
## 1120 2026-09-28 338.40
## 1121 2026-09-29 329.40
## 1122 2026-09-30 333.02
ggplot(data_AAPL, aes(x = Date, y = Close)) +
geom_line() +
labs(
title = "Pergerakan Harga Saham APPLE INC.",
x = "Tanggal",
y = "Harga Penutupan (USD)"
) +
theme_minimal()
data_AAPL <- data_AAPL %>%
mutate(
LogReturn = c(NA, diff(log(Close)))
) %>%
drop_na(LogReturn)
head(data_AAPL)
## Date Close LogReturn
## 1 2022-04-12 167.66 0.011457512
## 2 2022-04-13 170.40 0.016210438
## 3 2022-04-14 165.29 -0.030447112
## 4 2022-04-18 165.07 -0.001331796
## 5 2022-04-19 167.40 0.014016451
## 6 2022-04-20 167.23 -0.001016037
#PLOT LOG RETURN
ggplot(data_AAPL, aes(x = Date, y = LogReturn)) +
geom_line(color = "darkgreen") +
labs(title = "Return Saham AAPL",
x = "Tanggal", y = "Log Return") +
scale_x_date(date_breaks = "6 months", date_labels = "%b %Y") +
theme_minimal()
summary(data_AAPL$LogReturn)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.0970133 -0.0076099 0.0011396 0.0006224 0.0095100 0.1426175
# Statistik tambahan
sd(data_AAPL$LogReturn)
## [1] 0.01767914
mean(data_AAPL$LogReturn)
## [1] 0.0006224102
min(data_AAPL$LogReturn)
## [1] -0.09701334
max(data_AAPL$LogReturn)
## [1] 0.1426175
n <- nrow(data_AAPL)
n_train <- floor(0.80 * n)
train <- data_AAPL[1:n_train, ]
test <- data_AAPL[(n_train + 1):n, ]
cat("Jumlah data keseluruhan :", n, "\n")
## Jumlah data keseluruhan : 1121
cat("Jumlah data training :", nrow(train), "\n")
## Jumlah data training : 896
cat("Jumlah data testing :", nrow(test), "\n")
## Jumlah data testing : 225
cat(
"Periode training :",
as.character(min(train$Date)),
"sampai",
as.character(max(train$Date)),
"\n"
)
## Periode training : 2022-04-12 sampai 2025-11-05
cat(
"Periode testing :",
as.character(min(test$Date)),
"sampai",
as.character(max(test$Date)),
"\n"
)
## Periode testing : 2025-11-06 sampai 2026-09-30
return_train <- train$LogReturn
return_test <- test$LogReturn
df_split <- data.frame(
date = c(train$Date, test$Date),
ret = c(return_train, return_test),
set = factor(
c(
rep("Training", nrow(train)),
rep("Testing", nrow(test))
),
levels = c("Training", "Testing")
)
)
ggplot(df_split, aes(x = date, y = ret, color = set)) +
geom_line() +
scale_color_manual(values = c("Training" = "steelblue", "Testing" = "orange")) +
labs(title = "Perbandingan Data Training dan Testing Return AAPL",
x = "Tanggal", y = "Log Return", color = "Data") +
theme_minimal()
basicStats(return_train)
## return_train
## nobs 896.000000
## NAs 0.000000
## Minimum -0.097013
## Maximum 0.142617
## 1. Quartile -0.007662
## 3. Quartile 0.009601
## Mean 0.000545
## Median 0.001148
## Sum 0.488460
## SE Mean 0.000605
## LCL Mean -0.000643
## UCL Mean 0.001733
## Variance 0.000328
## Stdev 0.018121
## Skewness 0.275481
## Kurtosis 6.492253
desk <- data.frame(
Mean = mean(return_train),
Median = median(return_train),
SD = sd(return_train),
Min = min(return_train),
Max = max(return_train),
Skewness = skewness(return_train),
Kurtosis = kurtosis(return_train)
)
desk
## Mean Median SD Min Max Skewness Kurtosis
## 1 0.000545156 0.00114787 0.01812098 -0.09701334 0.1426175 0.2754814 6.492253
Kurtosis \[ 6.492 \] Ini cukup tinggi dibandingkan distribusi normal. Distribusi normal memiliki kurtosis sekitar 3 jika menggunakan definisi kurtosis biasa. Jadi data menunjukkan: heavy tails / ekor tebal
yang berarti peluang munculnya return ekstrem lebih besar dibandingkan distribusi normal.
normalTest(return_train, method = "jb")
##
## Title:
## Jarque-Bera Normality Test
##
## Test Results:
## STATISTIC:
## X-squared: 1595.2517
## P VALUE:
## Asymptotic p Value: < 2.2e-16
normalTest(data_AAPL$LogReturn, method="jb")
##
## Title:
## Jarque-Bera Normality Test
##
## Test Results:
## STATISTIC:
## X-squared: 1805.9883
## P VALUE:
## Asymptotic p Value: < 2.2e-16
Return AAPL tidak berdistribusi normal. Hal ini konsisten dengan kurtosis tinggi dan adanya return ekstrem.
adf_result <- adf.test(return_train)
adf_result
##
## Augmented Dickey-Fuller Test
##
## data: return_train
## Dickey-Fuller = -10.344, Lag order = 9, p-value = 0.01
## alternative hypothesis: stationary
Return AAPL telah stasioner. Ini berarti return dapat langsung digunakan dalam pemodelan ARMA/GARCH tanpa perlu differencing tambahan.
par(mfrow = c(1, 2))
acf(return_train,main = "ACF Return Saham AAPL")
pacf(return_train,main = "PACF Return Saham AAPL")
par(mfrow = c(1, 1))
# ============================================================
# 1. MODEL MEAN ARIMA MANUAL
# ============================================================
library(forecast)
library(dplyr)
# Pastikan data berupa numerik dan tidak mengandung NA
x <- as.numeric(na.omit(return_train))
# Estimasi seluruh kandidat ARIMA(p,0,q)
hasil_model <- list()
hasil_parameter <- list()
for (p in 0:5) {
for (q in 0:5) {
nama_model <- paste0("ARIMA(", p, ",0,", q, ")")
fit <- tryCatch(
forecast::Arima(
x,
order = c(p, 0, q),
include.mean = TRUE,
method = "ML"
),
error = function(e) NULL
)
if (!is.null(fit)) {
hasil_model[[nama_model]] <- fit
# Simpan AIC, BIC, dan log-likelihood
koef <- fit$coef
vcov_mat <- fit$var.coef
hasil_model_info <- data.frame(
Model = nama_model,
p = p,
q = q,
LogLik = as.numeric(logLik(fit)),
AIC = AIC(fit),
BIC = BIC(fit)
)
hasil_parameter[[nama_model]] <- data.frame(
Model = nama_model,
Parameter = names(koef),
Estimate = as.numeric(koef),
Std_Error = if (!is.null(vcov_mat)) {
sqrt(pmax(diag(vcov_mat)[names(koef)], 0))
} else {
rep(NA_real_, length(koef))
}
) |>
mutate(
Z_value = Estimate / Std_Error,
P_value = 2 * pnorm(-abs(Z_value)),
Signifikan = ifelse(
P_value < 0.05, "Signifikan", "Tidak signifikan"
)
)
}
}
}
# ============================================================
# 2. TABEL PERBANDINGAN MODEL
# ============================================================
tabel_model <- bind_rows(
lapply(names(hasil_model), function(nm) {
fit <- hasil_model[[nm]]
data.frame(
Model = nm,
LogLik = as.numeric(logLik(fit)),
AIC = AIC(fit),
BIC = BIC(fit)
)
})
) |>
arrange(AIC)
print(tabel_model)
## Model LogLik AIC BIC
## 1 ARIMA(0,0,0) 2322.705 -4641.410 -4631.814
## 2 ARIMA(2,0,2) 2326.534 -4641.068 -4612.281
## 3 ARIMA(1,0,0) 2322.753 -4639.505 -4625.112
## 4 ARIMA(0,0,1) 2322.752 -4639.503 -4625.109
## 5 ARIMA(1,0,3) 2324.937 -4637.875 -4609.087
## 6 ARIMA(3,0,1) 2324.914 -4637.828 -4609.040
## 7 ARIMA(0,0,4) 2324.851 -4637.701 -4608.914
## 8 ARIMA(0,0,2) 2322.845 -4637.690 -4618.498
## 9 ARIMA(2,0,0) 2322.825 -4637.650 -4618.459
## 10 ARIMA(1,0,1) 2322.752 -4637.504 -4618.313
## 11 ARIMA(3,0,0) 2323.703 -4637.406 -4613.416
## 12 ARIMA(4,0,3) 2327.682 -4637.363 -4594.182
## 13 ARIMA(0,0,3) 2323.658 -4637.315 -4613.326
## 14 ARIMA(4,0,0) 2324.643 -4637.286 -4608.498
## 15 ARIMA(3,0,3) 2326.258 -4636.516 -4598.133
## 16 ARIMA(1,0,2) 2322.983 -4635.966 -4611.976
## 17 ARIMA(1,0,4) 2324.974 -4635.948 -4602.362
## 18 ARIMA(2,0,3) 2324.964 -4635.928 -4602.342
## 19 ARIMA(2,0,1) 2322.955 -4635.909 -4611.920
## 20 ARIMA(3,0,2) 2324.913 -4635.826 -4602.240
## 21 ARIMA(4,0,1) 2324.911 -4635.823 -4602.237
## 22 ARIMA(0,0,5) 2324.901 -4635.802 -4602.216
## 23 ARIMA(4,0,4) 2327.791 -4635.583 -4587.603
## 24 ARIMA(5,0,0) 2324.710 -4635.420 -4601.834
## 25 ARIMA(3,0,4) 2326.460 -4634.920 -4591.738
## 26 ARIMA(2,0,4) 2325.036 -4634.073 -4595.689
## 27 ARIMA(4,0,2) 2324.951 -4633.902 -4595.518
## 28 ARIMA(5,0,4) 2327.924 -4633.849 -4581.071
## 29 ARIMA(4,0,5) 2327.913 -4633.826 -4581.049
## 30 ARIMA(1,0,5) 2324.901 -4633.801 -4595.418
## 31 ARIMA(5,0,1) 2324.710 -4633.420 -4595.037
## 32 ARIMA(3,0,5) 2326.703 -4633.405 -4585.426
## 33 ARIMA(5,0,2) 2325.688 -4633.376 -4590.194
## 34 ARIMA(5,0,3) 2326.680 -4633.361 -4585.381
## 35 ARIMA(2,0,5) 2325.666 -4633.332 -4590.151
## 36 ARIMA(5,0,5) 2328.282 -4632.563 -4574.988
# ============================================================
# 3. TABEL SIGNIFIKANSI PARAMETER
# ============================================================
tabel_parameter <- bind_rows(hasil_parameter)
print(tabel_parameter)
## Model Parameter Estimate Std_Error Z_value
## intercept...1 ARIMA(0,0,0) intercept 0.0005451560 0.0006059631 0.899652167
## ma1...2 ARIMA(0,0,1) ma1 0.0100298603 0.0329323406 0.304559594
## intercept...3 ARIMA(0,0,1) intercept 0.0005451689 0.0006119842 0.890821900
## ma1...4 ARIMA(0,0,2) ma1 0.0114652876 0.0335187172 0.342056277
## ma2...5 ARIMA(0,0,2) ma2 0.0152028630 0.0352010175 0.431887032
## intercept...6 ARIMA(0,0,2) intercept 0.0005452877 0.0006219508 0.876737717
## ma1...7 ARIMA(0,0,3) ma1 0.0066528001 0.0335866241 0.198078858
## ma2...8 ARIMA(0,0,3) ma2 0.0133045259 0.0352722141 0.377195654
## ma3...9 ARIMA(0,0,3) ma3 -0.0426121126 0.0333272391 -1.278597141
## intercept...10 ARIMA(0,0,3) intercept 0.0005453381 0.0005917131 0.921625877
## ma1...11 ARIMA(0,0,4) ma1 0.0074889491 0.0333397793 0.224625035
## ma2...12 ARIMA(0,0,4) ma2 0.0131533422 0.0334414383 0.393324656
## ma3...13 ARIMA(0,0,4) ma3 -0.0478042289 0.0334458598 -1.429301840
## ma4...14 ARIMA(0,0,4) ma4 -0.0532152636 0.0344400410 -1.545156803
## intercept...15 ARIMA(0,0,4) intercept 0.0005458559 0.0005562962 0.981232504
## ma1...16 ARIMA(0,0,5) ma1 0.0080552606 0.0334153512 0.241064670
## ma2...17 ARIMA(0,0,5) ma2 0.0126547616 0.0334529330 0.378285564
## ma3...18 ARIMA(0,0,5) ma3 -0.0483779020 0.0334686339 -1.445469873
## ma4...19 ARIMA(0,0,5) ma4 -0.0520551073 0.0345897509 -1.504928657
## ma5...20 ARIMA(0,0,5) ma5 -0.0112560221 0.0355730219 -0.316420184
## intercept...21 ARIMA(0,0,5) intercept 0.0005456968 0.0005499144 0.992330333
## ar1...22 ARIMA(1,0,0) ar1 0.0102991814 0.0333937401 0.308416528
## intercept...23 ARIMA(1,0,0) intercept 0.0005451702 0.0006122105 0.890494702
## ar1...24 ARIMA(1,0,1) ar1 0.0052828306 1.1874141509 0.004449021
## ma1...25 ARIMA(1,0,1) ma1 0.0048822524 1.1715561337 0.004167323
## intercept...26 ARIMA(1,0,1) intercept 0.0005451931 0.0006120982 0.890695540
## ar1...27 ARIMA(1,0,2) ar1 -0.3103586297 0.7272382208 -0.426763364
## ma1...28 ARIMA(1,0,2) ma1 0.3215768139 0.7262194759 0.442809405
## ma2...29 ARIMA(1,0,2) ma2 0.0258195503 0.0358405589 0.720400324
## intercept...30 ARIMA(1,0,2) intercept 0.0005499984 0.0006228207 0.883076529
## ar1...31 ARIMA(1,0,3) ar1 0.6773926666 0.2241004364 3.022719088
## ma1...32 ARIMA(1,0,3) ma1 -0.6707012589 0.2249470704 -2.981595882
## ma2...33 ARIMA(1,0,3) ma2 0.0083695088 0.0409209998 0.204528455
## ma3...34 ARIMA(1,0,3) ma3 -0.0598501785 0.0362978448 -1.648863143
## intercept...35 ARIMA(1,0,3) intercept 0.0005464482 0.0005213342 1.048172508
## ar1...36 ARIMA(1,0,4) ar1 0.4685862019 1.1592806516 0.404204281
## ma1...37 ARIMA(1,0,4) ma1 -0.4607334592 1.1615709025 -0.396646867
## ma2...38 ARIMA(1,0,4) ma2 0.0088823593 0.0375942633 0.236269009
## ma3...39 ARIMA(1,0,4) ma3 -0.0531585984 0.0377139510 -1.409520800
## ma4...40 ARIMA(1,0,4) ma4 -0.0260845178 0.0888798898 -0.293480537
## intercept...41 ARIMA(1,0,4) intercept 0.0005444308 0.0005339365 1.019654464
## ar1...42 ARIMA(1,0,5) ar1 0.0039170676 0.0000000000 Inf
## ma1...43 ARIMA(1,0,5) ma1 0.0041195186 0.0000000000 Inf
## ma2...44 ARIMA(1,0,5) ma2 0.0126209725 0.0322672680 0.391138554
## ma3...45 ARIMA(1,0,5) ma3 -0.0484270800 0.0311563866 -1.554322735
## ma4...46 ARIMA(1,0,5) ma4 -0.0518684927 0.0000000000 -Inf
## ma5...47 ARIMA(1,0,5) ma5 -0.0110303548 0.0000000000 -Inf
## intercept...48 ARIMA(1,0,5) intercept 0.0005457767 0.0005498869 0.992525363
## ar1...49 ARIMA(2,0,0) ar1 0.0101759072 0.0333921394 0.304739599
## ar2...50 ARIMA(2,0,0) ar2 0.0127054982 0.0333884428 0.380535814
## intercept...51 ARIMA(2,0,0) intercept 0.0005452156 0.0006200035 0.879375063
## ar1...52 ARIMA(2,0,1) ar1 -0.2893134385 0.7624050072 -0.379474736
## ar2...53 ARIMA(2,0,1) ar2 0.0233405376 0.0356143614 0.655368695
## ma1...54 ARIMA(2,0,1) ma1 0.2996214859 0.7618886408 0.393261521
## intercept...55 ARIMA(2,0,1) intercept 0.0005522812 0.0006218232 0.888164421
## ar1...56 ARIMA(2,0,2) ar1 -0.2411560934 0.0283955713 -8.492736103
## ar2...57 ARIMA(2,0,2) ar2 -0.9402599349 0.0414774522 -22.669182518
## ma1...58 ARIMA(2,0,2) ma1 0.2541263745 0.0191145560 13.294913789
## ma2...59 ARIMA(2,0,2) ma2 0.9716208513 0.0313519324 30.990780396
## intercept...60 ARIMA(2,0,2) intercept 0.0005431617 0.0006154992 0.882473399
## ar1...61 ARIMA(2,0,3) ar1 0.7487937002 0.4550921547 1.645367191
## ar2...62 ARIMA(2,0,3) ar2 -0.0638916818 0.3928419443 -0.162639664
## ma1...63 ARIMA(2,0,3) ma1 -0.7416381609 0.4539712157 -1.633667808
## ma2...64 ARIMA(2,0,3) ma2 0.0715895515 0.3903608530 0.183393265
## ma3...65 ARIMA(2,0,3) ma3 -0.0585411825 0.0380566612 -1.538263755
## intercept...66 ARIMA(2,0,3) intercept 0.0005495923 0.0005214208 1.054028286
## ar1...67 ARIMA(2,0,4) ar1 0.2390112519 1.3103517298 0.182402363
## ar2...68 ARIMA(2,0,4) ar2 0.2080548976 0.9347911406 0.222568324
## ma1...69 ARIMA(2,0,4) ma1 -0.2314427161 1.3097608049 -0.176706094
## ma2...70 ARIMA(2,0,4) ma2 -0.1969208161 0.9259042985 -0.212679449
## ma3...71 ARIMA(2,0,4) ma3 -0.0502558039 0.0358187722 -1.403057694
## ma4...72 ARIMA(2,0,4) ma4 -0.0407907949 0.0856201791 -0.476415669
## intercept...73 ARIMA(2,0,4) intercept 0.0005502977 0.0005260231 1.046147405
## ar1...74 ARIMA(2,0,5) ar1 -0.2169761823 0.3683803148 -0.589000480
## ar2...75 ARIMA(2,0,5) ar2 0.5963802412 0.3048492159 1.956312203
## ma1...76 ARIMA(2,0,5) ma1 0.2256692322 0.3701851237 0.609611834
## ma2...77 ARIMA(2,0,5) ma2 -0.5835679243 0.3088896125 -1.889244250
## ma3...78 ARIMA(2,0,5) ma3 -0.0454479414 0.0384989543 -1.180498073
## ma4...79 ARIMA(2,0,5) ma4 -0.0690355407 0.0436106995 -1.582995493
## ma5...80 ARIMA(2,0,5) ma5 0.0071045838 0.0486437675 0.146053320
## intercept...81 ARIMA(2,0,5) intercept 0.0005460626 0.0005211828 1.047737199
## ar1...82 ARIMA(3,0,0) ar1 0.0107958339 0.0333624279 0.323592572
## ar2...83 ARIMA(3,0,0) ar2 0.0132047817 0.0333576525 0.395854646
## ar3...84 ARIMA(3,0,0) ar3 -0.0442676920 0.0333987232 -1.325430667
## intercept...85 ARIMA(3,0,0) intercept 0.0005454428 0.0005933649 0.919236564
## ar1...86 ARIMA(3,0,1) ar1 0.7401746932 0.2160701243 3.425622564
## ar2...87 ARIMA(3,0,1) ar2 0.0058277142 0.0415547206 0.140241931
## ar3...88 ARIMA(3,0,1) ar3 -0.0558327355 0.0356934277 -1.564230141
## ma1...89 ARIMA(3,0,1) ma1 -0.7327253088 0.2148643671 -3.410176004
## intercept...90 ARIMA(3,0,1) intercept 0.0005422061 0.0005222166 1.038278097
## ar1...91 ARIMA(3,0,2) ar1 0.7412682413 0.4924786283 1.505178497
## ar2...92 ARIMA(3,0,2) ar2 -0.0086262067 0.4297979722 -0.020070375
## ar3...93 ARIMA(3,0,2) ar3 -0.0562425172 0.0372864434 -1.508390505
## ma1...94 ARIMA(3,0,2) ma1 -0.7338781259 0.4930753053 -1.488369257
## ma2...95 ARIMA(3,0,2) ma2 0.0146003540 0.4264229135 0.034239140
## intercept...96 ARIMA(3,0,2) intercept 0.0005442269 0.0005251035 1.036418223
## ar1...97 ARIMA(3,0,3) ar1 0.6449164693 0.3448714627 1.870019816
## ar2...98 ARIMA(3,0,3) ar2 -0.5704531003 0.1508961604 -3.780434828
## ar3...99 ARIMA(3,0,3) ar3 0.6228794900 0.0000000000 Inf
## ma1...100 ARIMA(3,0,3) ma1 -0.6412325717 0.3166145404 -2.025278343
## ma2...101 ARIMA(3,0,3) ma2 0.5901551688 0.1405824278 4.197929841
## ma3...102 ARIMA(3,0,3) ma3 -0.6881348984 0.0000000000 -Inf
## intercept...103 ARIMA(3,0,3) intercept 0.0005256497 0.0005213057 1.008332868
## ar1...104 ARIMA(3,0,4) ar1 0.3155526797 0.0000000000 Inf
## ar2...105 ARIMA(3,0,4) ar2 -0.3983074961 0.0000000000 -Inf
## ar3...106 ARIMA(3,0,4) ar3 0.5545275302 0.0581917724 9.529311570
## ma1...107 ARIMA(3,0,4) ma1 -0.3076414317 0.0000000000 -Inf
## ma2...108 ARIMA(3,0,4) ma2 0.4089631815 0.0000000000 Inf
## ma3...109 ARIMA(3,0,4) ma3 -0.5995920750 0.1373409477 -4.365719657
## ma4...110 ARIMA(3,0,4) ma4 -0.0492094962 0.0000000000 -Inf
## intercept...111 ARIMA(3,0,4) intercept 0.0005483206 0.0005178288 1.058883994
## ar1...112 ARIMA(3,0,5) ar1 0.1002958346 0.3340057429 0.300281767
## ar2...113 ARIMA(3,0,5) ar2 -0.4551820497 0.2113926952 -2.153253447
## ar3...114 ARIMA(3,0,5) ar3 0.6124818476 0.2466310208 2.483393393
## ma1...115 ARIMA(3,0,5) ma1 -0.0915619189 0.3361128431 -0.272414223
## ma2...116 ARIMA(3,0,5) ma2 0.4699927601 0.2123583387 2.213206051
## ma3...117 ARIMA(3,0,5) ma3 -0.6542410530 0.2454743246 -2.665211745
## ma4...118 ARIMA(3,0,5) ma4 -0.0555381142 0.0456601539 -1.216336552
## ma5...119 ARIMA(3,0,5) ma5 -0.0311957167 0.0455062095 -0.685526592
## intercept...120 ARIMA(3,0,5) intercept 0.0005482312 0.0005188116 1.056705923
## ar1...121 ARIMA(4,0,0) ar1 0.0087925272 0.0333598607 0.263566064
## ar2...122 ARIMA(4,0,0) ar2 0.0138710058 0.0333292309 0.416181396
## ar3...123 ARIMA(4,0,0) ar3 -0.0437300328 0.0333656173 -1.310631609
## ar4...124 ARIMA(4,0,0) ar4 -0.0457807463 0.0333788147 -1.371550989
## intercept...125 ARIMA(4,0,0) intercept 0.0005456746 0.0005670513 0.962301947
## ar1...126 ARIMA(4,0,1) ar1 0.6761894205 0.4449951302 1.519543416
## ar2...127 ARIMA(4,0,1) ar2 0.0065846174 0.0405787024 0.162267817
## ar3...128 ARIMA(4,0,1) ar3 -0.0526114136 0.0407949046 -1.289656494
## ar4...129 ARIMA(4,0,1) ar4 -0.0090815162 0.0505832557 -0.179536017
## ma1...130 ARIMA(4,0,1) ma1 -0.6690544679 0.4446065043 -1.504823842
## intercept...131 ARIMA(4,0,1) intercept 0.0005487756 0.0005286142 1.038140039
## ar1...132 ARIMA(4,0,2) ar1 0.2658125836 0.0000000000 Inf
## ar2...133 ARIMA(4,0,2) ar2 0.3276436784 0.0000000000 Inf
## ar3...134 ARIMA(4,0,2) ar3 -0.0480170141 0.0327058472 -1.468147692
## ar4...135 ARIMA(4,0,2) ar4 -0.0346152391 0.0000000000 -Inf
## ma1...136 ARIMA(4,0,2) ma1 -0.2586952984 0.0000000000 -Inf
## ma2...137 ARIMA(4,0,2) ma2 -0.3181547988 0.0000000000 -Inf
## intercept...138 ARIMA(4,0,2) intercept 0.0005466466 0.0005236009 1.044013857
## ar1...139 ARIMA(4,0,3) ar1 0.6003453483 0.1451533264 4.135939309
## ar2...140 ARIMA(4,0,3) ar2 -0.7542594124 0.0700654197 -10.765073772
## ar3...141 ARIMA(4,0,3) ar3 0.7798599469 0.1431899565 5.446331333
## ar4...142 ARIMA(4,0,3) ar4 -0.0256559319 0.0366041687 -0.700901916
## ma1...143 ARIMA(4,0,3) ma1 -0.5910018777 0.1414924309 -4.176915146
## ma2...144 ARIMA(4,0,3) ma2 0.7510014391 0.0512777053 14.645769237
## ma3...145 ARIMA(4,0,3) ma3 -0.8179745058 0.1384291260 -5.908976884
## intercept...146 ARIMA(4,0,3) intercept 0.0005422430 0.0005165535 1.049732477
## ar1...147 ARIMA(4,0,4) ar1 -0.2738597588 0.1608742520 -1.702321879
## ar2...148 ARIMA(4,0,4) ar2 -0.1379967380 0.1809745714 -0.762520044
## ar3...149 ARIMA(4,0,4) ar3 0.1608091961 0.1764996472 0.911102082
## ar4...150 ARIMA(4,0,4) ar4 0.7542656544 0.1562168319 4.828325125
## ma1...151 ARIMA(4,0,4) ma1 0.2779317740 0.1452009827 1.914117720
## ma2...152 ARIMA(4,0,4) ma2 0.1379433368 0.1626544493 0.848076013
## ma3...153 ARIMA(4,0,4) ma3 -0.1888060557 0.1618061707 -1.166865608
## ma4...154 ARIMA(4,0,4) ma4 -0.8119554291 0.1422445869 -5.708163992
## intercept...155 ARIMA(4,0,4) intercept 0.0005830984 0.0005048785 1.154928040
## ar1...156 ARIMA(4,0,5) ar1 -0.3395980094 0.1896728023 -1.790441251
## ar2...157 ARIMA(4,0,5) ar2 -0.1999487076 0.1877305379 -1.065083550
## ar3...158 ARIMA(4,0,5) ar3 0.0928479237 0.1938132828 0.479058619
## ar4...159 ARIMA(4,0,5) ar4 0.7075883216 0.1566734024 4.516327027
## ma1...160 ARIMA(4,0,5) ma1 0.3486035472 0.1911300635 1.823907453
## ma2...161 ARIMA(4,0,5) ma2 0.1980083168 0.1766314281 1.121025397
## ma3...162 ARIMA(4,0,5) ma3 -0.1262258131 0.1827325240 -0.690768180
## ma4...163 ARIMA(4,0,5) ma4 -0.7730364082 0.1454747363 -5.313887674
## ma5...164 ARIMA(4,0,5) ma5 -0.0142197802 0.0382908380 -0.371362469
## intercept...165 ARIMA(4,0,5) intercept 0.0005462827 0.0005169830 1.056674391
## ar1...166 ARIMA(5,0,0) ar1 0.0081961724 0.0333936223 0.245441251
## ar2...167 ARIMA(5,0,0) ar2 0.0133230227 0.0333601870 0.399368945
## ar3...168 ARIMA(5,0,0) ar3 -0.0435272352 0.0333678086 -1.304467899
## ar4...169 ARIMA(5,0,0) ar4 -0.0456693907 0.0333779225 -1.368251445
## ar5...170 ARIMA(5,0,0) ar5 -0.0122398614 0.0334072330 -0.366383573
## intercept...171 ARIMA(5,0,0) intercept 0.0005454933 0.0005602041 0.973740221
## ar1...172 ARIMA(5,0,1) ar1 0.0030265093 0.0000000000 Inf
## ar2...173 ARIMA(5,0,1) ar2 0.0133515015 0.0318738100 0.418886273
## ar3...174 ARIMA(5,0,1) ar3 -0.0434600756 0.0294491102 -1.475768718
## ar4...175 ARIMA(5,0,1) ar4 -0.0458959965 0.0000000000 -Inf
## ar5...176 ARIMA(5,0,1) ar5 -0.0124822318 0.0000000000 -Inf
## ma1...177 ARIMA(5,0,1) ma1 0.0051748970 0.0000000000 Inf
## intercept...178 ARIMA(5,0,1) intercept 0.0005455611 0.0005602273 0.973821070
## ar1...179 ARIMA(5,0,2) ar1 -0.1310744841 0.2634887797 -0.497457555
## ar2...180 ARIMA(5,0,2) ar2 0.7051840119 0.2227802779 3.165378995
## ar3...181 ARIMA(5,0,2) ar3 -0.0491255076 0.0414878582 -1.184093608
## ar4...182 ARIMA(5,0,2) ar4 -0.0621103200 0.0385762934 -1.610064488
## ar5...183 ARIMA(5,0,2) ar5 0.0182108090 0.0441480373 0.412494193
## ma1...184 ARIMA(5,0,2) ma1 0.1399288720 0.2610806212 0.535960392
## ma2...185 ARIMA(5,0,2) ma2 -0.6934194488 0.2231353084 -3.107618663
## intercept...186 ARIMA(5,0,2) intercept 0.0005462304 0.0005204829 1.049468417
## ar1...187 ARIMA(5,0,3) ar1 0.2123881249 0.2081194815 1.020510542
## ar2...188 ARIMA(5,0,3) ar2 -0.4651442478 0.0000000000 -Inf
## ar3...189 ARIMA(5,0,3) ar3 0.6608334757 0.1251118900 5.281939834
## ar4...190 ARIMA(5,0,3) ar4 -0.0491044715 0.0219135268 -2.240829240
## ar5...191 ARIMA(5,0,3) ar5 -0.0251459974 0.0325464121 -0.772619646
## ma1...192 ARIMA(5,0,3) ma1 -0.2039758110 0.2059242598 -0.990538032
## ma2...193 ARIMA(5,0,3) ma2 0.4789049753 0.0000000000 Inf
## ma3...194 ARIMA(5,0,3) ma3 -0.7034654473 0.0953420699 -7.378332022
## intercept...195 ARIMA(5,0,3) intercept 0.0005475156 0.0005183367 1.056293290
## ar1...196 ARIMA(5,0,4) ar1 -0.3344316172 0.1728512254 -1.934794598
## ar2...197 ARIMA(5,0,4) ar2 -0.2074171465 0.1849984538 -1.121183135
## ar3...198 ARIMA(5,0,4) ar3 0.0801132204 0.1931482767 0.414775745
## ar4...199 ARIMA(5,0,4) ar4 0.6974681613 0.1584093829 4.402947279
## ar5...200 ARIMA(5,0,4) ar5 -0.0159845299 0.0371605379 -0.430147969
## ma1...201 ARIMA(5,0,4) ma1 0.3443542336 0.1697779619 2.028262264
## ma2...202 ARIMA(5,0,4) ma2 0.2048132574 0.1746684826 1.172582794
## ma3...203 ARIMA(5,0,4) ma3 -0.1144137119 0.1832681622 -0.624296717
## ma4...204 ARIMA(5,0,4) ma4 -0.7634220930 0.1477532337 -5.166872317
## intercept...205 ARIMA(5,0,4) intercept 0.0005521985 0.0005191924 1.063572043
## ar1...206 ARIMA(5,0,5) ar1 0.3059432582 0.0000000000 Inf
## ar2...207 ARIMA(5,0,5) ar2 0.0141577972 0.0294179613 0.481263711
## ar3...208 ARIMA(5,0,5) ar3 0.1385008341 0.0815977783 1.697360356
## ar4...209 ARIMA(5,0,5) ar4 0.6278721193 0.1071052018 5.862200048
## ar5...210 ARIMA(5,0,5) ar5 -0.5393780943 0.0937913309 -5.750831009
## ma1...211 ARIMA(5,0,5) ma1 -0.2918858456 0.0000000000 -Inf
## ma2...212 ARIMA(5,0,5) ma2 -0.0148485099 0.0119473278 -1.242831041
## ma3...213 ARIMA(5,0,5) ma3 -0.1782000013 0.0713053232 -2.499112176
## ma4...214 ARIMA(5,0,5) ma4 -0.6758727229 0.0934964458 -7.228860061
## ma5...215 ARIMA(5,0,5) ma5 0.5513928843 0.0000000000 Inf
## intercept...216 ARIMA(5,0,5) intercept 0.0005527249 0.0005200082 1.062915720
## P_value Signifikan
## intercept...1 3.683054e-01 Tidak signifikan
## ma1...2 7.607016e-01 Tidak signifikan
## intercept...3 3.730247e-01 Tidak signifikan
## ma1...4 7.323085e-01 Tidak signifikan
## ma2...5 6.658235e-01 Tidak signifikan
## intercept...6 3.806291e-01 Tidak signifikan
## ma1...7 8.429834e-01 Tidak signifikan
## ma2...8 7.060282e-01 Tidak signifikan
## ma3...9 2.010390e-01 Tidak signifikan
## intercept...10 3.567238e-01 Tidak signifikan
## ma1...11 8.222710e-01 Tidak signifikan
## ma2...12 6.940797e-01 Tidak signifikan
## ma3...13 1.529175e-01 Tidak signifikan
## ma4...14 1.223083e-01 Tidak signifikan
## intercept...15 3.264781e-01 Tidak signifikan
## ma1...16 8.095050e-01 Tidak signifikan
## ma2...17 7.052185e-01 Tidak signifikan
## ma3...18 1.483259e-01 Tidak signifikan
## ma4...19 1.323424e-01 Tidak signifikan
## ma5...20 7.516836e-01 Tidak signifikan
## intercept...21 3.210364e-01 Tidak signifikan
## ar1...22 7.577654e-01 Tidak signifikan
## intercept...23 3.732003e-01 Tidak signifikan
## ar1...24 9.964502e-01 Tidak signifikan
## ma1...25 9.966750e-01 Tidak signifikan
## intercept...26 3.730925e-01 Tidak signifikan
## ar1...27 6.695517e-01 Tidak signifikan
## ma1...28 6.579036e-01 Tidak signifikan
## ma2...29 4.712786e-01 Tidak signifikan
## intercept...30 3.771949e-01 Tidak signifikan
## ar1...31 2.505147e-03 Signifikan
## ma1...32 2.867502e-03 Signifikan
## ma2...33 8.379406e-01 Tidak signifikan
## ma3...34 9.917568e-02 Tidak signifikan
## intercept...35 2.945591e-01 Tidak signifikan
## ar1...36 6.860625e-01 Tidak signifikan
## ma1...37 6.916279e-01 Tidak signifikan
## ma2...38 8.132239e-01 Tidak signifikan
## ma3...39 1.586812e-01 Tidak signifikan
## ma4...40 7.691549e-01 Tidak signifikan
## intercept...41 3.078924e-01 Tidak signifikan
## ar1...42 0.000000e+00 Signifikan
## ma1...43 0.000000e+00 Signifikan
## ma2...44 6.956948e-01 Tidak signifikan
## ma3...45 1.201075e-01 Tidak signifikan
## ma4...46 0.000000e+00 Signifikan
## ma5...47 0.000000e+00 Signifikan
## intercept...48 3.209413e-01 Tidak signifikan
## ar1...49 7.605645e-01 Tidak signifikan
## ar2...50 7.035477e-01 Tidak signifikan
## intercept...51 3.791979e-01 Tidak signifikan
## ar1...52 7.043354e-01 Tidak signifikan
## ar2...53 5.122304e-01 Tidak signifikan
## ma1...54 6.941263e-01 Tidak signifikan
## intercept...55 3.744523e-01 Tidak signifikan
## ar1...56 2.018282e-17 Signifikan
## ar2...57 9.025449e-114 Signifikan
## ma1...58 2.477586e-40 Signifikan
## ma2...59 7.175699e-211 Signifikan
## intercept...60 3.775209e-01 Tidak signifikan
## ar1...61 9.989411e-02 Tidak signifikan
## ar2...62 8.708022e-01 Tidak signifikan
## ma1...63 1.023286e-01 Tidak signifikan
## ma2...64 8.544895e-01 Tidak signifikan
## ma3...65 1.239841e-01 Tidak signifikan
## intercept...66 2.918700e-01 Tidak signifikan
## ar1...67 8.552670e-01 Tidak signifikan
## ar2...68 8.238715e-01 Tidak signifikan
## ma1...69 8.597393e-01 Tidak signifikan
## ma2...70 8.315770e-01 Tidak signifikan
## ma3...71 1.605996e-01 Tidak signifikan
## ma4...72 6.337783e-01 Tidak signifikan
## intercept...73 2.954930e-01 Tidak signifikan
## ar1...74 5.558610e-01 Tidak signifikan
## ar2...75 5.042839e-02 Tidak signifikan
## ma1...76 5.421190e-01 Tidak signifikan
## ma2...77 5.885911e-02 Tidak signifikan
## ma3...78 2.378022e-01 Tidak signifikan
## ma4...79 1.134225e-01 Tidak signifikan
## ma5...80 8.838793e-01 Tidak signifikan
## intercept...81 2.947597e-01 Tidak signifikan
## ar1...82 7.462465e-01 Tidak signifikan
## ar2...83 6.922123e-01 Tidak signifikan
## ar3...84 1.850284e-01 Tidak signifikan
## intercept...85 3.579719e-01 Tidak signifikan
## ar1...86 6.133921e-04 Signifikan
## ar2...87 8.884688e-01 Tidak signifikan
## ar3...88 1.177635e-01 Tidak signifikan
## ma1...89 6.492097e-04 Signifikan
## intercept...90 2.991406e-01 Tidak signifikan
## ar1...91 1.322782e-01 Tidak signifikan
## ar2...92 9.839872e-01 Tidak signifikan
## ar3...93 1.314546e-01 Tidak signifikan
## ma1...94 1.366535e-01 Tidak signifikan
## ma2...95 9.726865e-01 Tidak signifikan
## intercept...96 3.000071e-01 Tidak signifikan
## ar1...97 6.148107e-02 Tidak signifikan
## ar2...98 1.565547e-04 Signifikan
## ar3...99 0.000000e+00 Signifikan
## ma1...100 4.283879e-02 Signifikan
## ma2...101 2.693660e-05 Signifikan
## ma3...102 0.000000e+00 Signifikan
## intercept...103 3.132947e-01 Tidak signifikan
## ar1...104 0.000000e+00 Signifikan
## ar2...105 0.000000e+00 Signifikan
## ar3...106 1.583297e-21 Signifikan
## ma1...107 0.000000e+00 Signifikan
## ma2...108 0.000000e+00 Signifikan
## ma3...109 1.267049e-05 Signifikan
## ma4...110 0.000000e+00 Signifikan
## intercept...111 2.896526e-01 Tidak signifikan
## ar1...112 7.639622e-01 Tidak signifikan
## ar2...113 3.129877e-02 Signifikan
## ar3...114 1.301373e-02 Signifikan
## ma1...115 7.853035e-01 Tidak signifikan
## ma2...116 2.688344e-02 Signifikan
## ma3...117 7.693986e-03 Signifikan
## ma4...118 2.238567e-01 Tidak signifikan
## ma5...119 4.930117e-01 Tidak signifikan
## intercept...120 2.906458e-01 Tidak signifikan
## ar1...121 7.921143e-01 Tidak signifikan
## ar2...122 6.772773e-01 Tidak signifikan
## ar3...123 1.899823e-01 Tidak signifikan
## ar4...124 1.702033e-01 Tidak signifikan
## intercept...125 3.358980e-01 Tidak signifikan
## ar1...126 1.286258e-01 Tidak signifikan
## ar2...127 8.710950e-01 Tidak signifikan
## ar3...128 1.971700e-01 Tidak signifikan
## ar4...129 8.575168e-01 Tidak signifikan
## ma1...130 1.323694e-01 Tidak signifikan
## intercept...131 2.992049e-01 Tidak signifikan
## ar1...132 0.000000e+00 Signifikan
## ar2...133 0.000000e+00 Signifikan
## ar3...134 1.420641e-01 Tidak signifikan
## ar4...135 0.000000e+00 Signifikan
## ma1...136 0.000000e+00 Signifikan
## ma2...137 0.000000e+00 Signifikan
## intercept...138 2.964790e-01 Tidak signifikan
## ar1...139 3.535056e-05 Signifikan
## ar2...140 5.032124e-27 Signifikan
## ar3...141 5.141932e-08 Signifikan
## ar4...142 4.833642e-01 Tidak signifikan
## ma1...143 2.954892e-05 Signifikan
## ma2...144 1.433694e-48 Signifikan
## ma3...145 3.442390e-09 Signifikan
## intercept...146 2.938411e-01 Tidak signifikan
## ar1...147 8.869505e-02 Tidak signifikan
## ar2...148 4.457497e-01 Tidak signifikan
## ar3...149 3.622416e-01 Tidak signifikan
## ar4...150 1.376862e-06 Signifikan
## ma1...151 5.560512e-02 Tidak signifikan
## ma2...152 3.963956e-01 Tidak signifikan
## ma3...153 2.432646e-01 Tidak signifikan
## ma4...154 1.142014e-08 Signifikan
## intercept...155 2.481199e-01 Tidak signifikan
## ar1...156 7.338300e-02 Tidak signifikan
## ar2...157 2.868381e-01 Tidak signifikan
## ar3...158 6.318969e-01 Tidak signifikan
## ar4...159 6.292147e-06 Signifikan
## ma1...160 6.816606e-02 Tidak signifikan
## ma2...161 2.622771e-01 Tidak signifikan
## ma3...162 4.897112e-01 Tidak signifikan
## ma4...163 1.073108e-07 Signifikan
## ma5...164 7.103676e-01 Tidak signifikan
## intercept...165 2.906602e-01 Tidak signifikan
## ar1...166 8.061148e-01 Tidak signifikan
## ar2...167 6.896214e-01 Tidak signifikan
## ar3...168 1.920741e-01 Tidak signifikan
## ar4...169 1.712334e-01 Tidak signifikan
## ar5...170 7.140789e-01 Tidak signifikan
## intercept...171 3.301855e-01 Tidak signifikan
## ar1...172 0.000000e+00 Signifikan
## ar2...173 6.752992e-01 Tidak signifikan
## ar3...174 1.400060e-01 Tidak signifikan
## ar4...175 0.000000e+00 Signifikan
## ar5...176 0.000000e+00 Signifikan
## ma1...177 0.000000e+00 Signifikan
## intercept...178 3.301454e-01 Tidak signifikan
## ar1...179 6.188664e-01 Tidak signifikan
## ar2...180 1.548811e-03 Signifikan
## ar3...181 2.363760e-01 Tidak signifikan
## ar4...182 1.073838e-01 Tidak signifikan
## ar5...183 6.799772e-01 Tidak signifikan
## ma1...184 5.919859e-01 Tidak signifikan
## ma2...185 1.886013e-03 Signifikan
## intercept...186 2.939626e-01 Tidak signifikan
## ar1...187 3.074864e-01 Tidak signifikan
## ar2...188 0.000000e+00 Signifikan
## ar3...189 1.278232e-07 Signifikan
## ar4...190 2.503714e-02 Signifikan
## ar5...191 4.397475e-01 Tidak signifikan
## ma1...192 3.219112e-01 Tidak signifikan
## ma2...193 0.000000e+00 Signifikan
## ma3...194 1.602848e-13 Signifikan
## intercept...195 2.908342e-01 Tidak signifikan
## ar1...196 5.301551e-02 Tidak signifikan
## ar2...197 2.622099e-01 Tidak signifikan
## ar3...198 6.783061e-01 Tidak signifikan
## ar4...199 1.067901e-05 Signifikan
## ar5...200 6.670880e-01 Tidak signifikan
## ma1...201 4.253349e-02 Signifikan
## ma2...202 2.409632e-01 Tidak signifikan
## ma3...203 5.324327e-01 Tidak signifikan
## ma4...204 2.380438e-07 Signifikan
## intercept...205 2.875226e-01 Tidak signifikan
## ar1...206 0.000000e+00 Signifikan
## ar2...207 6.303291e-01 Tidak signifikan
## ar3...208 8.962855e-02 Tidak signifikan
## ar4...209 4.567742e-09 Signifikan
## ar5...210 8.880585e-09 Signifikan
## ma1...211 0.000000e+00 Signifikan
## ma2...212 2.139301e-01 Tidak signifikan
## ma3...213 1.245049e-02 Signifikan
## ma4...214 4.870650e-13 Signifikan
## ma5...215 0.000000e+00 Signifikan
## intercept...216 2.878202e-01 Tidak signifikan
# ============================================================
# 4. MODEL DENGAN PARAMETER AR/MA YANG SIGNIFIKAN
# ============================================================
tabel_signifikansi <- tabel_parameter |>
filter(grepl("^(ar|ma)", Parameter)) |>
group_by(Model) |>
summarise(
Semua_AR_MA_Signifikan = all(P_value < 0.05),
P_value_Maksimum = max(P_value, na.rm = TRUE),
.groups = "drop"
)
tabel_kandidat <- tabel_model |>
left_join(tabel_signifikansi, by = "Model") |>
arrange(AIC)
print(tabel_kandidat)
## Model LogLik AIC BIC Semua_AR_MA_Signifikan
## 1 ARIMA(0,0,0) 2322.705 -4641.410 -4631.814 NA
## 2 ARIMA(2,0,2) 2326.534 -4641.068 -4612.281 TRUE
## 3 ARIMA(1,0,0) 2322.753 -4639.505 -4625.112 FALSE
## 4 ARIMA(0,0,1) 2322.752 -4639.503 -4625.109 FALSE
## 5 ARIMA(1,0,3) 2324.937 -4637.875 -4609.087 FALSE
## 6 ARIMA(3,0,1) 2324.914 -4637.828 -4609.040 FALSE
## 7 ARIMA(0,0,4) 2324.851 -4637.701 -4608.914 FALSE
## 8 ARIMA(0,0,2) 2322.845 -4637.690 -4618.498 FALSE
## 9 ARIMA(2,0,0) 2322.825 -4637.650 -4618.459 FALSE
## 10 ARIMA(1,0,1) 2322.752 -4637.504 -4618.313 FALSE
## 11 ARIMA(3,0,0) 2323.703 -4637.406 -4613.416 FALSE
## 12 ARIMA(4,0,3) 2327.682 -4637.363 -4594.182 FALSE
## 13 ARIMA(0,0,3) 2323.658 -4637.315 -4613.326 FALSE
## 14 ARIMA(4,0,0) 2324.643 -4637.286 -4608.498 FALSE
## 15 ARIMA(3,0,3) 2326.258 -4636.516 -4598.133 FALSE
## 16 ARIMA(1,0,2) 2322.983 -4635.966 -4611.976 FALSE
## 17 ARIMA(1,0,4) 2324.974 -4635.948 -4602.362 FALSE
## 18 ARIMA(2,0,3) 2324.964 -4635.928 -4602.342 FALSE
## 19 ARIMA(2,0,1) 2322.955 -4635.909 -4611.920 FALSE
## 20 ARIMA(3,0,2) 2324.913 -4635.826 -4602.240 FALSE
## 21 ARIMA(4,0,1) 2324.911 -4635.823 -4602.237 FALSE
## 22 ARIMA(0,0,5) 2324.901 -4635.802 -4602.216 FALSE
## 23 ARIMA(4,0,4) 2327.791 -4635.583 -4587.603 FALSE
## 24 ARIMA(5,0,0) 2324.710 -4635.420 -4601.834 FALSE
## 25 ARIMA(3,0,4) 2326.460 -4634.920 -4591.738 TRUE
## 26 ARIMA(2,0,4) 2325.036 -4634.073 -4595.689 FALSE
## 27 ARIMA(4,0,2) 2324.951 -4633.902 -4595.518 FALSE
## 28 ARIMA(5,0,4) 2327.924 -4633.849 -4581.071 FALSE
## 29 ARIMA(4,0,5) 2327.913 -4633.826 -4581.049 FALSE
## 30 ARIMA(1,0,5) 2324.901 -4633.801 -4595.418 FALSE
## 31 ARIMA(5,0,1) 2324.710 -4633.420 -4595.037 FALSE
## 32 ARIMA(3,0,5) 2326.703 -4633.405 -4585.426 FALSE
## 33 ARIMA(5,0,2) 2325.688 -4633.376 -4590.194 FALSE
## 34 ARIMA(5,0,3) 2326.680 -4633.361 -4585.381 FALSE
## 35 ARIMA(2,0,5) 2325.666 -4633.332 -4590.151 FALSE
## 36 ARIMA(5,0,5) 2328.282 -4632.563 -4574.988 FALSE
## P_value_Maksimum
## 1 NA
## 2 2.018282e-17
## 3 7.577654e-01
## 4 7.607016e-01
## 5 8.379406e-01
## 6 8.884688e-01
## 7 8.222710e-01
## 8 7.323085e-01
## 9 7.605645e-01
## 10 9.966750e-01
## 11 7.462465e-01
## 12 4.833642e-01
## 13 8.429834e-01
## 14 7.921143e-01
## 15 6.148107e-02
## 16 6.695517e-01
## 17 8.132239e-01
## 18 8.708022e-01
## 19 7.043354e-01
## 20 9.839872e-01
## 21 8.710950e-01
## 22 8.095050e-01
## 23 4.457497e-01
## 24 8.061148e-01
## 25 1.267049e-05
## 26 8.597393e-01
## 27 1.420641e-01
## 28 6.783061e-01
## 29 7.103676e-01
## 30 6.956948e-01
## 31 6.752992e-01
## 32 7.853035e-01
## 33 6.799772e-01
## 34 4.397475e-01
## 35 8.838793e-01
## 36 6.303291e-01
# ============================================================
# 5. MODEL TERBAIK BERDASARKAN AIC
# ============================================================
model_terbaik_aic <- hasil_model[[
tabel_model$Model[1]
]]
summary(model_terbaik_aic)
## Series: x
## ARIMA(0,0,0) with non-zero mean
##
## Coefficients:
## mean
## 5e-04
## s.e. 6e-04
##
## sigma^2 = 0.0003284: log likelihood = 2322.71
## AIC=-4641.41 AICc=-4641.4 BIC=-4631.81
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 8.638257e-19 0.01811086 0.01263426 -Inf Inf 0.7063611 0.01030677
arimaorder(model_terbaik_aic)
## p d q
## 0 0 0
Model ARIMA(0,0,0) dengan zero mean menunjukkan bahwa tidak ditemukan struktur AR maupun MA yang diperlukan untuk menjelaskan dinamika rata-rata return.
Dengan kata lain, berdasarkan prosedur auto.arima, return tidak memiliki struktur autoregresif/Moving Average yang kuat pada bagian mean equation.
Oleh karena itu, model mean yang digunakan sangat sederhana.
model_000_mean <- Arima(
return_train,
order = c(0, 0, 0),
include.mean = TRUE,
method = "ML"
)
model_000_no_mean <- Arima(
return_train,
order = c(0, 0, 0),
include.mean = FALSE,
method = "ML"
)
summary(model_000_mean)
## Series: return_train
## ARIMA(0,0,0) with non-zero mean
##
## Coefficients:
## mean
## 5e-04
## s.e. 6e-04
##
## sigma^2 = 0.0003284: log likelihood = 2322.71
## AIC=-4641.41 AICc=-4641.4 BIC=-4631.81
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 8.638257e-19 0.01811086 0.01263426 -Inf Inf 0.7063611 0.01030677
summary(model_000_no_mean)
## Series: return_train
## ARIMA(0,0,0) with zero mean
##
## sigma^2 = 0.0003283: log likelihood = 2322.3
## AIC=-4642.6 AICc=-4642.59 BIC=-4637.8
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 0.000545156 0.01811906 0.01266665 100 100 0.7081714 0.01030677
AIC(model_000_mean, model_000_no_mean)
## df AIC
## model_000_mean 2 -4641.410
## model_000_no_mean 1 -4642.599
BIC(model_000_mean, model_000_no_mean)
## df BIC
## model_000_mean 2 -4631.814
## model_000_no_mean 1 -4637.801
resid_arma <- residuals(model_000_mean)
resid_arma <- na.omit(resid_arma)
# Plot residual
plot(
resid_arma,
type = "l",
main = "Residual Model Mean",
xlab = "Observasi",
ylab = "Residual"
)
Residual merupakan bagian return yang belum dijelaskan oleh model mean. Residual inilah yang kemudian diperiksa apakah memiliki pola volatilitas yang berubah-ubah. Jika residual mengandung ARCH effect, maka model mean saja belum cukup dan perlu model volatilitas seperti GARCH/EGARCH.
arch_test <- ArchTest(resid_arma,lags = 12)
arch_test
##
## ARCH LM-test; Null hypothesis: no ARCH effects
##
## data: resid_arma
## Chi-squared = 114.33, df = 12, p-value < 2.2e-16
Karena nilai < 2,2 ^-16 jauh lebih kecil dari tingkat signifikansi alpha = 0,05 (5%), maka keputusan ujinya adalah Tolak H0. Kesimpulan Akhir:Data residual dari model ARMA (resid_arma) terbukti secara signifikan mengandung efek ARCH (heteroskedastisitas). Residual memiliki efek ARCH yang signifikan. Artinya varians/volatilitas return tidak konstan dari waktu ke waktu. Ini merupakan alasan statistik yang kuat untuk melanjutkan ke model GARCH-family.
resid_kuadrat <- resid_arma^2
par(mfrow = c(1, 2))
acf(resid_kuadrat,main = "ACF Residual Kuadrat")
pacf(resid_kuadrat,main = "PACF Residual Kuadrat")
par(mfrow = c(1, 1))
Pengkuadratan residual digunakan untuk melihat ketergantungan pada varians/volatilitas. Jika residual kuadrat memiliki autokorelasi, berarti volatilitas pada suatu periode berkaitan dengan volatilitas periode sebelumnya. Hal tersebut merupakan karakteristik yang ingin ditangkap oleh GARCH/EGARCH.
# Spesifikasi sGARCH(1,1) dengan zero mean
spec_garch <- ugarchspec(
variance.model = list(
model = "sGARCH",
garchOrder = c(1, 1)
),
mean.model = list(
armaOrder = c(0, 0),
include.mean = FALSE
),
distribution.model = "std"
)
fit_garch <- ugarchfit(
spec = spec_garch,
data = return_train
)
show(fit_garch)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : sGARCH(1,1)
## Mean Model : ARFIMA(0,0,0)
## Distribution : std
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## omega 0.000008 0.000004 2.0665 0.038781
## alpha1 0.067679 0.005361 12.6233 0.000000
## beta1 0.910403 0.014199 64.1175 0.000000
## shape 4.405383 0.560846 7.8549 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## omega 0.000008 0.000007 1.1114 0.266393
## alpha1 0.067679 0.019511 3.4688 0.000523
## beta1 0.910403 0.016568 54.9505 0.000000
## shape 4.405383 0.700408 6.2897 0.000000
##
## LogLikelihood : 2434.999
##
## Information Criteria
## ------------------------------------
##
## Akaike -5.4263
## Bayes -5.4049
## Shibata -5.4264
## Hannan-Quinn -5.4182
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.592 0.2070
## Lag[2*(p+q)+(p+q)-1][2] 1.598 0.3392
## Lag[4*(p+q)+(p+q)-1][5] 2.224 0.5664
## d.o.f=0
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 3.580 0.05849
## Lag[2*(p+q)+(p+q)-1][5] 7.639 0.03620
## Lag[4*(p+q)+(p+q)-1][9] 11.418 0.02454
## d.o.f=2
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[3] 7.009e-05 0.500 2.000 0.99332
## ARCH Lag[5] 7.149e+00 1.440 1.667 0.03210
## ARCH Lag[7] 9.056e+00 2.315 1.543 0.03036
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 2.7514
## Individual Statistics:
## omega 0.7134
## alpha1 0.6932
## beta1 0.6374
## shape 1.1215
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.07 1.24 1.6
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 0.4855 0.62743
## Negative Sign Bias 1.8474 0.06503 *
## Positive Sign Bias 0.8493 0.39594
## Joint Effect 6.3767 0.09466 *
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 19.13 0.44828
## 2 30 31.66 0.33516
## 3 40 51.14 0.09219
## 4 50 46.63 0.56957
##
##
## Elapsed time : 0.144248
library(rugarch)
# Spesifikasi sGARCH(1,2) dengan zero mean
spec_garch12 <- ugarchspec(
variance.model = list(
model = "sGARCH",
garchOrder = c(1, 2)
),
mean.model = list(
armaOrder = c(0, 0),
include.mean = FALSE
),
distribution.model = "std"
)
fit_garch12 <- ugarchfit(
spec = spec_garch12,
data = return_train
)
show(fit_garch12)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : sGARCH(1,2)
## Mean Model : ARFIMA(0,0,0)
## Distribution : std
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## omega 0.000012 0.000003 4.5641 0.000005
## alpha1 0.100788 0.002724 37.0040 0.000000
## beta1 0.372561 0.206500 1.8042 0.071204
## beta2 0.492820 0.199067 2.4757 0.013299
## shape 4.499273 0.617270 7.2890 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## omega 0.000012 0.000004 3.2114 0.001321
## alpha1 0.100788 0.015908 6.3356 0.000000
## beta1 0.372561 0.148955 2.5012 0.012378
## beta2 0.492820 0.153324 3.2142 0.001308
## shape 4.499273 0.590363 7.6212 0.000000
##
## LogLikelihood : 2436.213
##
## Information Criteria
## ------------------------------------
##
## Akaike -5.4268
## Bayes -5.4000
## Shibata -5.4269
## Hannan-Quinn -5.4166
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.234 0.2667
## Lag[2*(p+q)+(p+q)-1][2] 1.236 0.4275
## Lag[4*(p+q)+(p+q)-1][5] 1.889 0.6448
## d.o.f=0
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.395 0.23749
## Lag[2*(p+q)+(p+q)-1][8] 8.766 0.06509
## Lag[4*(p+q)+(p+q)-1][14] 12.108 0.08844
## d.o.f=3
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[4] 9.714 0.500 2.000 0.001829
## ARCH Lag[6] 10.156 1.461 1.711 0.007277
## ARCH Lag[8] 12.148 2.368 1.583 0.007375
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 7.0805
## Individual Statistics:
## omega 1.6525
## alpha1 0.6829
## beta1 0.6645
## beta2 0.6682
## shape 1.1218
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.28 1.47 1.88
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 0.5516 0.5814
## Negative Sign Bias 1.3902 0.1648
## Positive Sign Bias 0.5050 0.6137
## Joint Effect 4.3638 0.2248
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 26.37 0.1203
## 2 30 35.41 0.1915
## 3 40 49.09 0.1291
## 4 50 49.76 0.4429
##
##
## Elapsed time : 0.1388559
# Spesifikasi sGARCH(2,1) dengan zero mean
spec_garch21 <- ugarchspec(
variance.model = list(
model = "sGARCH",
garchOrder = c(2, 1)
),
mean.model = list(
armaOrder = c(0, 0),
include.mean = FALSE
),
distribution.model = "std"
)
fit_garch21 <- ugarchfit(
spec = spec_garch21,
data = return_train
)
show(fit_garch21)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : sGARCH(2,1)
## Mean Model : ARFIMA(0,0,0)
## Distribution : std
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## omega 0.000008 0.000003 2.3488 0.018835
## alpha1 0.067516 0.035836 1.8840 0.059563
## alpha2 0.000000 0.035869 0.0000 1.000000
## beta1 0.910501 0.015565 58.4966 0.000000
## shape 4.413175 0.561473 7.8600 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## omega 0.000008 0.000006 1.2945 0.195497
## alpha1 0.067516 0.031605 2.1363 0.032657
## alpha2 0.000000 0.035956 0.0000 1.000000
## beta1 0.910501 0.014089 64.6235 0.000000
## shape 4.413175 0.702315 6.2838 0.000000
##
## LogLikelihood : 2435.089
##
## Information Criteria
## ------------------------------------
##
## Akaike -5.4243
## Bayes -5.3975
## Shibata -5.4244
## Hannan-Quinn -5.4141
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.608 0.2048
## Lag[2*(p+q)+(p+q)-1][2] 1.614 0.3358
## Lag[4*(p+q)+(p+q)-1][5] 2.244 0.5620
## d.o.f=0
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 3.59 0.05811
## Lag[2*(p+q)+(p+q)-1][8] 10.71 0.02402
## Lag[4*(p+q)+(p+q)-1][14] 14.01 0.03910
## d.o.f=3
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[4] 8.784 0.500 2.000 0.003039
## ARCH Lag[6] 9.291 1.461 1.711 0.011646
## ARCH Lag[8] 11.403 2.368 1.583 0.010943
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 2.8776
## Individual Statistics:
## omega 0.6965
## alpha1 0.6824
## alpha2 0.7127
## beta1 0.6270
## shape 1.1190
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.28 1.47 1.88
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 0.4847 0.62804
## Negative Sign Bias 1.8512 0.06447 *
## Positive Sign Bias 0.8472 0.39709
## Joint Effect 6.3963 0.09385 *
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 19.13 0.44828
## 2 30 32.12 0.31441
## 3 40 51.14 0.09219
## 4 50 46.30 0.58328
##
##
## Elapsed time : 0.1199729
# Spesifikasi sGARCH(2,2) dengan zero mean
spec_garch22 <- ugarchspec(
variance.model = list(
model = "sGARCH",
garchOrder = c(2, 2)
),
mean.model = list(
armaOrder = c(0, 0),
include.mean = FALSE
),
distribution.model = "std"
)
fit_garch22 <- ugarchfit(
spec = spec_garch22,
data = return_train
)
show(fit_garch22)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : sGARCH(2,2)
## Mean Model : ARFIMA(0,0,0)
## Distribution : std
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## omega 0.000012 0.000001 7.830916 0.000000
## alpha1 0.100784 0.045472 2.216404 0.026664
## alpha2 0.000000 0.042263 0.000006 0.999995
## beta1 0.372560 0.243228 1.531731 0.125589
## beta2 0.492832 0.231231 2.131339 0.033061
## shape 4.499064 0.638177 7.049866 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## omega 0.000012 0.000002 5.633927 0.000000
## alpha1 0.100784 0.048422 2.081384 0.037399
## alpha2 0.000000 0.050820 0.000005 0.999996
## beta1 0.372560 0.258182 1.443017 0.149016
## beta2 0.492832 0.252476 1.951996 0.050939
## shape 4.499064 0.599523 7.504407 0.000000
##
## LogLikelihood : 2436.213
##
## Information Criteria
## ------------------------------------
##
## Akaike -5.4246
## Bayes -5.3925
## Shibata -5.4247
## Hannan-Quinn -5.4123
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.234 0.2667
## Lag[2*(p+q)+(p+q)-1][2] 1.236 0.4275
## Lag[4*(p+q)+(p+q)-1][5] 1.889 0.6448
## d.o.f=0
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.396 0.23742
## Lag[2*(p+q)+(p+q)-1][11] 10.827 0.06543
## Lag[4*(p+q)+(p+q)-1][19] 14.062 0.13634
## d.o.f=4
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[5] 0.2088 0.500 2.000 0.6477
## ARCH Lag[7] 2.2743 1.473 1.746 0.4467
## ARCH Lag[9] 3.0658 2.402 1.619 0.5533
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 13.9791
## Individual Statistics:
## omega 1.6516
## alpha1 0.6827
## alpha2 0.7854
## beta1 0.6642
## beta2 0.6679
## shape 1.1217
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.49 1.68 2.12
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 0.5516 0.5814
## Negative Sign Bias 1.3904 0.1648
## Positive Sign Bias 0.5051 0.6136
## Joint Effect 4.3643 0.2247
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 26.37 0.1203
## 2 30 35.41 0.1915
## 3 40 49.09 0.1291
## 4 50 49.76 0.4429
##
##
## Elapsed time : 0.154659
model_comparison <- data.frame(
Model = c(
"GARCH(1,1)",
"GARCH(1,2)",
"GARCH(2,1)",
"GARCH(2,2)"
),
LogLikelihood = c(
likelihood(fit_garch),
likelihood(fit_garch12),
likelihood(fit_garch21),
likelihood(fit_garch22)
),
AIC = c(
infocriteria(fit_garch)[1],
infocriteria(fit_garch12)[1],
infocriteria(fit_garch21)[1],
infocriteria(fit_garch22)[1]
),
BIC = c(
infocriteria(fit_garch)[2],
infocriteria(fit_garch12)[2],
infocriteria(fit_garch21)[2],
infocriteria(fit_garch22)[2]
),
HQIC = c(
infocriteria(fit_garch)[3],
infocriteria(fit_garch12)[3],
infocriteria(fit_garch21)[3],
infocriteria(fit_garch22)[3]
)
)
model_comparison
## Model LogLikelihood AIC BIC HQIC
## 1 GARCH(1,1) 2434.999 -5.426338 -5.404918 -5.426377
## 2 GARCH(1,2) 2436.213 -5.426816 -5.400042 -5.426878
## 3 GARCH(2,1) 2435.089 -5.424305 -5.397531 -5.424367
## 4 GARCH(2,2) 2436.213 -5.424584 -5.392455 -5.424672
Kriteria Model terbaik Nilai LogLikelihood GARCH(2,2) 2438,951 AIC GARCH(2,2) -5,428463 BIC GARCH(1,1) -5,404918 HQIC GARCH(2,2) -5,428583
Jadi, berdasarkan tabel, GARCH(2,2) unggul pada tiga dari empat kriteria, sedangkan BIC memilih GARCH(1,1) karena memberikan penalti lebih besar terhadap kompleksitas model.
show(fit_garch22)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : sGARCH(2,2)
## Mean Model : ARFIMA(0,0,0)
## Distribution : std
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## omega 0.000012 0.000001 7.830916 0.000000
## alpha1 0.100784 0.045472 2.216404 0.026664
## alpha2 0.000000 0.042263 0.000006 0.999995
## beta1 0.372560 0.243228 1.531731 0.125589
## beta2 0.492832 0.231231 2.131339 0.033061
## shape 4.499064 0.638177 7.049866 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## omega 0.000012 0.000002 5.633927 0.000000
## alpha1 0.100784 0.048422 2.081384 0.037399
## alpha2 0.000000 0.050820 0.000005 0.999996
## beta1 0.372560 0.258182 1.443017 0.149016
## beta2 0.492832 0.252476 1.951996 0.050939
## shape 4.499064 0.599523 7.504407 0.000000
##
## LogLikelihood : 2436.213
##
## Information Criteria
## ------------------------------------
##
## Akaike -5.4246
## Bayes -5.3925
## Shibata -5.4247
## Hannan-Quinn -5.4123
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.234 0.2667
## Lag[2*(p+q)+(p+q)-1][2] 1.236 0.4275
## Lag[4*(p+q)+(p+q)-1][5] 1.889 0.6448
## d.o.f=0
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.396 0.23742
## Lag[2*(p+q)+(p+q)-1][11] 10.827 0.06543
## Lag[4*(p+q)+(p+q)-1][19] 14.062 0.13634
## d.o.f=4
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[5] 0.2088 0.500 2.000 0.6477
## ARCH Lag[7] 2.2743 1.473 1.746 0.4467
## ARCH Lag[9] 3.0658 2.402 1.619 0.5533
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 13.9791
## Individual Statistics:
## omega 1.6516
## alpha1 0.6827
## alpha2 0.7854
## beta1 0.6642
## beta2 0.6679
## shape 1.1217
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.49 1.68 2.12
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 0.5516 0.5814
## Negative Sign Bias 1.3904 0.1648
## Positive Sign Bias 0.5051 0.6136
## Joint Effect 4.3643 0.2247
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 26.37 0.1203
## 2 30 35.41 0.1915
## 3 40 49.09 0.1291
## 4 50 49.76 0.4429
##
##
## Elapsed time : 0.154659
residual_garch <- residuals(fit_garch22, standardize = TRUE)
Box.test(
residual_garch,
lag = 10,
type = "Ljung-Box"
)
##
## Box-Ljung test
##
## data: residual_garch
## X-squared = 5.7358, df = 10, p-value = 0.8369
Box.test(
residual_garch^2,
lag = 10,
type = "Ljung-Box"
)
##
## Box-Ljung test
##
## data: residual_garch^2
## X-squared = 16.672, df = 10, p-value = 0.08195
signbias_garch <- signbias(fit_garch22)
signbias_garch
## t-value prob sig
## Sign Bias 0.5515660 0.5813840
## Negative Sign Bias 1.3904104 0.1647515
## Positive Sign Bias 0.5050885 0.6136216
## Joint Effect 4.3643453 0.2247143
Hasil menunjukkan bahwa residual standar tidak memiliki serial correlation yang signifikan berdasarkan Ljung-Box pada beberapa lag, tetapi residual kuadrat masih menunjukkan beberapa p-value di bawah 0,05, dan ARCH LM pada lag 5 dan 7 juga signifikan.
Ini menunjukkan bahwa GARCH(2,2) belum sepenuhnya menghilangkan seluruh dinamika volatilitas.
Selain itu, Sign Bias Test menunjukkan:
\[ p_{\text{Negative Sign Bias}}=0.08892109 \]
yang signifikan.
Artinya terdapat indikasi bahwa shock negatif memberikan pola pengaruh yang berbeda terhadap volatilitas yang belum sepenuhnya ditangkap oleh GARCH standar.
Temuan ini menjadi motivasi untuk mencoba EGARCH, karena EGARCH secara eksplisit memungkinkan adanya efek asimetris/leverage.
# Spesifikasi EGARCH(1,1) dengan zero mean
spec_egarch <- ugarchspec(
variance.model = list(
model = "eGARCH",
garchOrder = c(1, 1)
),
mean.model = list(
armaOrder = c(0, 0),
include.mean = FALSE
),
distribution.model = "std"
)
fit_egarch <- ugarchfit(
spec = spec_egarch,
data = return_train
)
show(fit_egarch)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : eGARCH(1,1)
## Mean Model : ARFIMA(0,0,0)
## Distribution : std
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## omega -0.25883 0.012785 -20.2443 0e+00
## alpha1 -0.10446 0.022668 -4.6080 4e-06
## beta1 0.96811 0.001629 594.1566 0e+00
## gamma1 0.12312 0.027190 4.5284 6e-06
## shape 4.79965 0.750080 6.3989 0e+00
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## omega -0.25883 0.017449 -14.8340 0.000000
## alpha1 -0.10446 0.026962 -3.8742 0.000107
## beta1 0.96811 0.002133 453.7995 0.000000
## gamma1 0.12312 0.024298 5.0672 0.000000
## shape 4.79965 0.659135 7.2818 0.000000
##
## LogLikelihood : 2444.223
##
## Information Criteria
## ------------------------------------
##
## Akaike -5.4447
## Bayes -5.4179
## Shibata -5.4448
## Hannan-Quinn -5.4345
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 2.058 0.1514
## Lag[2*(p+q)+(p+q)-1][2] 2.058 0.2533
## Lag[4*(p+q)+(p+q)-1][5] 2.291 0.5514
## d.o.f=0
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 5.938 0.01482
## Lag[2*(p+q)+(p+q)-1][5] 7.936 0.03056
## Lag[4*(p+q)+(p+q)-1][9] 10.040 0.04919
## d.o.f=2
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[3] 0.3321 0.500 2.000 0.5644
## ARCH Lag[5] 2.9793 1.440 1.667 0.2928
## ARCH Lag[7] 4.3901 2.315 1.543 0.2938
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 2.4589
## Individual Statistics:
## omega 0.25027
## alpha1 0.19960
## beta1 0.21523
## gamma1 0.06103
## shape 0.91502
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.28 1.47 1.88
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 0.7052 0.4809
## Negative Sign Bias 1.1687 0.2428
## Positive Sign Bias 1.6226 0.1050
## Joint Effect 4.6427 0.1999
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 27.30 0.09778
## 2 30 36.68 0.15463
## 3 40 46.59 0.18846
## 4 50 59.58 0.14308
##
##
## Elapsed time : 0.2098789
# Spesifikasi EGARCH(1,2) dengan zero mean
spec_egarch12 <- ugarchspec(
variance.model = list(
model = "eGARCH",
garchOrder = c(1, 2)
),
mean.model = list(
armaOrder = c(0, 0),
include.mean = FALSE
),
distribution.model = "std"
)
fit_egarch12 <- ugarchfit(
spec = spec_egarch12,
data = return_train
)
show(fit_egarch12)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : eGARCH(1,2)
## Mean Model : ARFIMA(0,0,0)
## Distribution : std
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## omega -0.33489 0.133197 -2.5143 0.011928
## alpha1 -0.13652 0.023759 -5.7460 0.000000
## beta1 0.61016 0.005008 121.8279 0.000000
## beta2 0.34862 0.007835 44.4959 0.000000
## gamma1 0.16931 0.043915 3.8555 0.000116
## shape 4.86141 0.788835 6.1628 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## omega -0.33489 0.130790 -2.5605 0.010451
## alpha1 -0.13652 0.035473 -3.8485 0.000119
## beta1 0.61016 0.006911 88.2924 0.000000
## beta2 0.34862 0.008998 38.7454 0.000000
## gamma1 0.16931 0.047289 3.5804 0.000343
## shape 4.86141 0.693911 7.0058 0.000000
##
## LogLikelihood : 2445.182
##
## Information Criteria
## ------------------------------------
##
## Akaike -5.4446
## Bayes -5.4125
## Shibata -5.4447
## Hannan-Quinn -5.4323
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 1.686 0.1942
## Lag[2*(p+q)+(p+q)-1][2] 1.690 0.3199
## Lag[4*(p+q)+(p+q)-1][5] 1.920 0.6374
## d.o.f=0
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 3.481 0.06209
## Lag[2*(p+q)+(p+q)-1][8] 7.581 0.11557
## Lag[4*(p+q)+(p+q)-1][14] 9.993 0.19975
## d.o.f=3
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[4] 4.084 0.500 2.000 0.0433
## ARCH Lag[6] 4.282 1.461 1.711 0.1634
## ARCH Lag[8] 6.151 2.368 1.583 0.1494
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 2.5884
## Individual Statistics:
## omega 0.23033
## alpha1 0.16171
## beta1 0.19736
## beta2 0.19734
## gamma1 0.09559
## shape 0.89825
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.49 1.68 2.12
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 0.7302 0.4654
## Negative Sign Bias 0.6310 0.5282
## Positive Sign Bias 1.6003 0.1099
## Joint Effect 3.1654 0.3668
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 26.37 0.1203
## 2 30 31.19 0.3566
## 3 40 38.55 0.4901
## 4 50 53.33 0.3113
##
##
## Elapsed time : 0.2524428
# Spesifikasi EGARCH(2,1) dengan zero mean
spec_egarch21 <- ugarchspec(
variance.model = list(
model = "eGARCH",
garchOrder = c(2, 1)
),
mean.model = list(
armaOrder = c(0, 0),
include.mean = FALSE
),
distribution.model = "std"
)
fit_egarch21 <- ugarchfit(
spec = spec_egarch21,
data = return_train
)
show(fit_egarch21)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : eGARCH(2,1)
## Mean Model : ARFIMA(0,0,0)
## Distribution : std
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## omega -0.199520 0.002239 -89.12450 0.000000
## alpha1 -0.126711 0.058362 -2.17112 0.029922
## alpha2 0.034267 0.054974 0.62335 0.533058
## beta1 0.975467 0.000386 2530.28595 0.000000
## gamma1 0.294354 0.087081 3.38024 0.000724
## gamma2 -0.197133 0.082654 -2.38504 0.017077
## shape 5.050635 0.827734 6.10176 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## omega -0.199520 0.005233 -38.12996 0.000000
## alpha1 -0.126711 0.068289 -1.85553 0.063521
## alpha2 0.034267 0.062942 0.54443 0.586144
## beta1 0.975467 0.000404 2413.96004 0.000000
## gamma1 0.294354 0.085053 3.46084 0.000538
## gamma2 -0.197133 0.081416 -2.42130 0.015465
## shape 5.050635 0.708388 7.12976 0.000000
##
## LogLikelihood : 2446.83
##
## Information Criteria
## ------------------------------------
##
## Akaike -5.4460
## Bayes -5.4086
## Shibata -5.4462
## Hannan-Quinn -5.4317
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 0.9219 0.3370
## Lag[2*(p+q)+(p+q)-1][2] 0.9254 0.5231
## Lag[4*(p+q)+(p+q)-1][5] 1.2001 0.8130
## d.o.f=0
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 0.2253 0.6350
## Lag[2*(p+q)+(p+q)-1][8] 5.6222 0.2753
## Lag[4*(p+q)+(p+q)-1][14] 8.0388 0.3797
## d.o.f=3
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[4] 6.804 0.500 2.000 0.009095
## ARCH Lag[6] 6.857 1.461 1.711 0.042965
## ARCH Lag[8] 8.383 2.368 1.583 0.051425
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 2.7935
## Individual Statistics:
## omega 0.21491
## alpha1 0.18096
## alpha2 0.20083
## beta1 0.18459
## gamma1 0.05101
## gamma2 0.07602
## shape 0.89285
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.69 1.9 2.35
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 0.63826 0.5235
## Negative Sign Bias 0.08044 0.9359
## Positive Sign Bias 0.64512 0.5190
## Joint Effect 0.71071 0.8707
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 21.10 0.3314
## 2 30 24.56 0.7010
## 3 40 29.98 0.8497
## 4 50 38.60 0.8571
##
##
## Elapsed time : 0.2741592
# Spesifikasi EGARCH(2,2) dengan zero mean
spec_egarch22 <- ugarchspec(
variance.model = list(
model = "eGARCH",
garchOrder = c(2, 2)
),
mean.model = list(
armaOrder = c(0, 0),
include.mean = FALSE
),
distribution.model = "std"
)
fit_egarch22 <- ugarchfit(
spec = spec_egarch22,
data = return_train
)
show(fit_egarch22)
##
## *---------------------------------*
## * GARCH Model Fit *
## *---------------------------------*
##
## Conditional Variance Dynamics
## -----------------------------------
## GARCH Model : eGARCH(2,2)
## Mean Model : ARFIMA(0,0,0)
## Distribution : std
##
## Optimal Parameters
## ------------------------------------
## Estimate Std. Error t value Pr(>|t|)
## omega -0.223614 0.097631 -2.29039 0.021999
## alpha1 -0.122012 0.059035 -2.06676 0.038757
## alpha2 0.019773 0.055628 0.35545 0.722249
## beta1 0.881747 0.001057 834.27797 0.000000
## beta2 0.090760 0.012249 7.40991 0.000000
## gamma1 0.293988 0.083047 3.54001 0.000400
## gamma2 -0.185629 0.086062 -2.15693 0.031011
## shape 5.059581 0.820247 6.16837 0.000000
##
## Robust Standard Errors:
## Estimate Std. Error t value Pr(>|t|)
## omega -0.223614 0.115510 -1.93589 0.052881
## alpha1 -0.122012 0.068912 -1.77054 0.076637
## alpha2 0.019773 0.064800 0.30514 0.760261
## beta1 0.881747 0.001266 696.74211 0.000000
## beta2 0.090760 0.013912 6.52369 0.000000
## gamma1 0.293988 0.079393 3.70294 0.000213
## gamma2 -0.185629 0.086357 -2.14955 0.031591
## shape 5.059581 0.716373 7.06277 0.000000
##
## LogLikelihood : 2446.873
##
## Information Criteria
## ------------------------------------
##
## Akaike -5.4439
## Bayes -5.4011
## Shibata -5.4441
## Hannan-Quinn -5.4275
##
## Weighted Ljung-Box Test on Standardized Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 0.9508 0.3295
## Lag[2*(p+q)+(p+q)-1][2] 0.9538 0.5135
## Lag[4*(p+q)+(p+q)-1][5] 1.2394 0.8035
## d.o.f=0
## H0 : No serial correlation
##
## Weighted Ljung-Box Test on Standardized Squared Residuals
## ------------------------------------
## statistic p-value
## Lag[1] 0.2192 0.6397
## Lag[2*(p+q)+(p+q)-1][11] 6.8011 0.3353
## Lag[4*(p+q)+(p+q)-1][19] 9.4397 0.5120
## d.o.f=4
##
## Weighted ARCH LM Tests
## ------------------------------------
## Statistic Shape Scale P-Value
## ARCH Lag[5] 0.0004656 0.500 2.000 0.9828
## ARCH Lag[7] 1.5764552 1.473 1.746 0.6035
## ARCH Lag[9] 1.9930660 2.402 1.619 0.7599
##
## Nyblom stability test
## ------------------------------------
## Joint Statistic: 2.8562
## Individual Statistics:
## omega 0.22079
## alpha1 0.17770
## alpha2 0.20440
## beta1 0.18967
## beta2 0.18961
## gamma1 0.05615
## gamma2 0.07285
## shape 0.88761
##
## Asymptotic Critical Values (10% 5% 1%)
## Joint Statistic: 1.89 2.11 2.59
## Individual Statistic: 0.35 0.47 0.75
##
## Sign Bias Test
## ------------------------------------
## t-value prob sig
## Sign Bias 0.6437 0.5199
## Negative Sign Bias 0.1203 0.9042
## Positive Sign Bias 0.6170 0.5374
## Joint Effect 0.7457 0.8624
##
##
## Adjusted Pearson Goodness-of-Fit Test:
## ------------------------------------
## group statistic p-value(g-1)
## 1 20 20.47 0.3666
## 2 30 22.42 0.8026
## 3 40 28.55 0.8909
## 4 50 35.58 0.9242
##
##
## Elapsed time : 0.4055669
model_comparison_e <- data.frame(
Model = c(
"EGARCH(1,1)",
"EGARCH(1,2)",
"EGARCH(2,1)",
"EGARCH(2,2)"
),
LogLikelihood = c(
likelihood(fit_egarch),
likelihood(fit_egarch12),
likelihood(fit_egarch21),
likelihood(fit_egarch22)
),
AIC = c(
infocriteria(fit_egarch)[1],
infocriteria(fit_egarch12)[1],
infocriteria(fit_egarch21)[1],
infocriteria(fit_egarch22)[1]
),
BIC = c(
infocriteria(fit_egarch)[2],
infocriteria(fit_egarch12)[2],
infocriteria(fit_egarch21)[2],
infocriteria(fit_egarch22)[2]
),
HQIC = c(
infocriteria(fit_egarch)[3],
infocriteria(fit_egarch12)[3],
infocriteria(fit_egarch21)[3],
infocriteria(fit_egarch22)[3]
)
)
model_comparison_e
## Model LogLikelihood AIC BIC HQIC
## 1 EGARCH(1,1) 2444.223 -5.444695 -5.417921 -5.444757
## 2 EGARCH(1,2) 2445.182 -5.444603 -5.412474 -5.444692
## 3 EGARCH(2,1) 2446.830 -5.446050 -5.408566 -5.446170
## 4 EGARCH(2,2) 2446.873 -5.443913 -5.401074 -5.444071
Kriteria Model terbaik Nilai LogLikelihood EGARCH(2,2) 2446,873 AIC EGARCH(2,1) -5,446050 BIC EGARCH(2,1) -5,408566 HQIC EGARCH(2,1) -5,446170 Dengan demikian, EGARCH(2,1) menjadi model yang paling unggul berdasarkan tiga dari empat kriteria, yaitu AIC, BIC, dan HQIC. Sementara itu, EGARCH(2,2) memiliki LogLikelihood tertinggi.
egarch_coef <- fit_egarch21@fit$matcoef
gamma_result <- egarch_coef[
grep("^gamma", rownames(egarch_coef)),
,
drop = FALSE
]
gamma_result
## Estimate Std. Error t value Pr(>|t|)
## gamma1 0.2943544 0.08708081 3.380244 0.000724216
## gamma2 -0.1971327 0.08265373 -2.385043 0.017077120
Berdasarkan hasil estimasi model EGARCH(2,1), parameter asimetris \(\gamma_1\) sebesar 0,2943544 memiliki p-value sebesar 0,000724, sedangkan parameter \(\gamma_2\) sebesar -0,1971327 memiliki p-value sebesar 0,017077. Pada taraf signifikansi 5%, kedua parameter tersebut signifikan secara statistik. Hasil ini menunjukkan adanya komponen asimetris yang signifikan dalam dinamika volatilitas return saham AAPL. Koefisien gamma yang memiliki tanda berbeda menunjukkan bahwa arah pengaruh asimetris bervariasi menurut lag inovasi.
std_resid_egarch <- residuals(
fit_egarch21,
standardize = TRUE
)
std_resid_egarch <- as.numeric(
na.omit(std_resid_egarch)
)
plot(
std_resid_egarch,
type = "l",
main = "Residual Terstandarisasi EGARCH",
xlab = "Observasi",
ylab = "Residual Terstandarisasi"
)
acf(
std_resid_egarch,
main = "ACF Residual Terstandarisasi EGARCH"
)
acf(
std_resid_egarch^2,
main = "ACF Kuadrat Residual Terstandarisasi EGARCH"
)
### UJI LJUNG-BOX RESIDUAL
ljung_box_residual <- Box.test(
std_resid_egarch,
lag = 10,
type = "Ljung-Box"
)
ljung_box_residual
##
## Box-Ljung test
##
## data: std_resid_egarch
## X-squared = 5.4485, df = 10, p-value = 0.8593
Residual terstandarisasi tidak menunjukkan autokorelasi yang signifikan. Ini mendukung bahwa model sudah cukup baik dalam menangkap dinamika mean.
ljung_box_squared <- Box.test(
std_resid_egarch^2,
lag = 10,
type = "Ljung-Box"
)
ljung_box_squared
##
## Box-Ljung test
##
## data: std_resid_egarch^2
## X-squared = 11.236, df = 10, p-value = 0.3394
Dinamika volatilitas yang tersisa tidak menunjukkan autokorelasi yang signifikan berdasarkan uji ini.
arch_test_egarch <- ArchTest(
std_resid_egarch,
lags = 12
)
arch_test_egarch
##
## ARCH LM-test; Null hypothesis: no ARCH effects
##
## data: std_resid_egarch
## Chi-squared = 11.468, df = 12, p-value = 0.4893
Tidak terdapat bukti yang cukup bahwa residual terstandarisasi masih mengandung efek ARCH.
signbias_egarch <- signbias(fit_egarch21)
signbias_egarch
## t-value prob sig
## Sign Bias 0.63826036 0.5234682
## Negative Sign Bias 0.08043541 0.9359090
## Positive Sign Bias 0.64512356 0.5190132
## Joint Effect 0.71071358 0.8706812
Artinya tidak terdapat bukti statistik bahwa residual EGARCH masih mengandung efek sign bias yang signifikan.
jarque_bera_egarch <- jarque.bera.test(
std_resid_egarch
)
jarque_bera_egarch
##
## Jarque Bera Test
##
## data: std_resid_egarch
## X-squared = 234.62, df = 2, p-value < 2.2e-16
n_forecast <- nrow(test)
#PERAMALAN RETURN MENGGUNAKAN MODEL MEAN
#ARIMA(0,0,0) TANPA KONSTANTA (ZERO MEAN)
forecast_mean <- forecast(
model_000_mean,
h = n_forecast
)
# Mengambil hasil ramalan return
return_forecast <- as.numeric(
forecast_mean$mean
)
return_forecast
## [1] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [7] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [13] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [19] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [25] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [31] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [37] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [43] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [49] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [55] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [61] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [67] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [73] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [79] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [85] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [91] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [97] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [103] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [109] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [115] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [121] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [127] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [133] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [139] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [145] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [151] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [157] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [163] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [169] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [175] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [181] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [187] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [193] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [199] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [205] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [211] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [217] 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156 0.000545156
## [223] 0.000545156 0.000545156 0.000545156
Hal ini terjadi karena model mean yang diperoleh adalah ARIMA(0,0,0). Jadi, ketika melakukan forecast multi-step, prediksi return cenderung menuju nilai mean model.
Ini bukan berarti model memprediksi return aktual akan selalu sama; melainkan nilai ekspektasi return bersyarat untuk horizon tersebut konstan.
forecast_egarch <- ugarchforecast(
fit_egarch21,
n.ahead = n_forecast
)
# Mengambil hasil ramalan volatilitas
vol_forecast <- as.numeric(
sigma(forecast_egarch)
)
vol_forecast
## [1] 0.01124388 0.01218449 0.01228692 0.01238768 0.01248675 0.01258416
## [7] 0.01267991 0.01277402 0.01286649 0.01295733 0.01304657 0.01313420
## [13] 0.01322026 0.01330474 0.01338768 0.01346908 0.01354895 0.01362733
## [19] 0.01370422 0.01377963 0.01385360 0.01392614 0.01399726 0.01406699
## [25] 0.01413535 0.01420234 0.01426800 0.01433234 0.01439538 0.01445714
## [31] 0.01451764 0.01457690 0.01463494 0.01469178 0.01474744 0.01480194
## [37] 0.01485529 0.01490752 0.01495864 0.01500868 0.01505765 0.01510558
## [43] 0.01515247 0.01519836 0.01524325 0.01528717 0.01533014 0.01537217
## [49] 0.01541327 0.01545348 0.01549280 0.01553125 0.01556885 0.01560561
## [55] 0.01564156 0.01567670 0.01571106 0.01574465 0.01577748 0.01580958
## [61] 0.01584094 0.01587160 0.01590157 0.01593085 0.01595947 0.01598744
## [67] 0.01601476 0.01604146 0.01606755 0.01609304 0.01611794 0.01614227
## [73] 0.01616604 0.01618926 0.01621194 0.01623409 0.01625573 0.01627687
## [79] 0.01629752 0.01631768 0.01633737 0.01635661 0.01637539 0.01639373
## [85] 0.01641165 0.01642914 0.01644622 0.01646290 0.01647919 0.01649509
## [91] 0.01651062 0.01652578 0.01654058 0.01655503 0.01656914 0.01658291
## [97] 0.01659636 0.01660949 0.01662230 0.01663481 0.01664703 0.01665895
## [103] 0.01667059 0.01668195 0.01669304 0.01670386 0.01671443 0.01672474
## [109] 0.01673481 0.01674463 0.01675422 0.01676358 0.01677271 0.01678163
## [115] 0.01679033 0.01679882 0.01680711 0.01681520 0.01682309 0.01683079
## [121] 0.01683831 0.01684565 0.01685281 0.01685980 0.01686662 0.01687327
## [127] 0.01687976 0.01688610 0.01689228 0.01689832 0.01690420 0.01690995
## [133] 0.01691555 0.01692103 0.01692636 0.01693157 0.01693665 0.01694161
## [139] 0.01694645 0.01695117 0.01695578 0.01696028 0.01696466 0.01696894
## [145] 0.01697312 0.01697719 0.01698117 0.01698504 0.01698883 0.01699252
## [151] 0.01699612 0.01699964 0.01700307 0.01700641 0.01700968 0.01701286
## [157] 0.01701597 0.01701900 0.01702196 0.01702484 0.01702766 0.01703041
## [163] 0.01703309 0.01703570 0.01703825 0.01704074 0.01704317 0.01704554
## [169] 0.01704785 0.01705010 0.01705230 0.01705445 0.01705654 0.01705858
## [175] 0.01706057 0.01706252 0.01706441 0.01706626 0.01706807 0.01706983
## [181] 0.01707155 0.01707322 0.01707486 0.01707645 0.01707801 0.01707952
## [187] 0.01708100 0.01708245 0.01708386 0.01708523 0.01708657 0.01708788
## [193] 0.01708916 0.01709040 0.01709162 0.01709280 0.01709396 0.01709508
## [199] 0.01709618 0.01709726 0.01709830 0.01709933 0.01710032 0.01710129
## [205] 0.01710224 0.01710317 0.01710407 0.01710495 0.01710581 0.01710664
## [211] 0.01710746 0.01710826 0.01710904 0.01710979 0.01711053 0.01711126
## [217] 0.01711196 0.01711265 0.01711332 0.01711397 0.01711461 0.01711523
## [223] 0.01711584 0.01711643 0.01711701
Model memperkirakan volatilitas akan meningkat secara bertahap ketika horizon forecasting semakin jauh.
Hal ini menunjukkan adanya proses mean reversion menuju tingkat volatilitas jangka panjang yang dihasilkan model.
# Harga aktual terakhir pada data training
harga_terakhir <- tail(train$Close, 1)
# Mengubah ramalan log return menjadi harga saham
harga_forecast <- harga_terakhir * exp(
cumsum(return_forecast)
)
harga_forecast
## [1] 270.2873 270.4347 270.5822 270.7297 270.8774 271.0251 271.1729 271.3207
## [9] 271.4687 271.6167 271.7648 271.9130 272.0613 272.2097 272.3581 272.5066
## [17] 272.6552 272.8039 272.9527 273.1015 273.2504 273.3994 273.5485 273.6977
## [25] 273.8469 273.9963 274.1457 274.2952 274.4447 274.5944 274.7441 274.8940
## [33] 275.0439 275.1938 275.3439 275.4940 275.6443 275.7946 275.9450 276.0954
## [41] 276.2460 276.3966 276.5474 276.6982 276.8491 277.0000 277.1511 277.3022
## [49] 277.4534 277.6047 277.7561 277.9076 278.0591 278.2107 278.3624 278.5142
## [57] 278.6661 278.8181 278.9701 279.1222 279.2744 279.4267 279.5791 279.7315
## [65] 279.8841 280.0367 280.1894 280.3422 280.4951 280.6480 280.8011 280.9542
## [73] 281.1074 281.2607 281.4141 281.5675 281.7211 281.8747 282.0284 282.1822
## [81] 282.3361 282.4900 282.6441 282.7982 282.9524 283.1067 283.2611 283.4155
## [89] 283.5701 283.7247 283.8794 284.0342 284.1891 284.3441 284.4991 284.6543
## [97] 284.8095 284.9648 285.1202 285.2757 285.4312 285.5869 285.7426 285.8984
## [105] 286.0543 286.2103 286.3664 286.5226 286.6788 286.8351 286.9915 287.1480
## [113] 287.3046 287.4613 287.6180 287.7749 287.9318 288.0888 288.2459 288.4031
## [121] 288.5604 288.7177 288.8751 289.0327 289.1903 289.3480 289.5058 289.6636
## [129] 289.8216 289.9796 290.1378 290.2960 290.4543 290.6127 290.7711 290.9297
## [137] 291.0883 291.2471 291.4059 291.5648 291.7238 291.8829 292.0420 292.2013
## [145] 292.3606 292.5200 292.6796 292.8392 292.9988 293.1586 293.3185 293.4784
## [153] 293.6385 293.7986 293.9588 294.1191 294.2795 294.4399 294.6005 294.7611
## [161] 294.9219 295.0827 295.2436 295.4046 295.5657 295.7269 295.8881 296.0495
## [169] 296.2109 296.3724 296.5341 296.6958 296.8575 297.0194 297.1814 297.3434
## [177] 297.5056 297.6678 297.8301 297.9925 298.1550 298.3176 298.4803 298.6431
## [185] 298.8059 298.9689 299.1319 299.2950 299.4582 299.6215 299.7849 299.9484
## [193] 300.1119 300.2756 300.4393 300.6032 300.7671 300.9311 301.0952 301.2594
## [201] 301.4237 301.5880 301.7525 301.9170 302.0817 302.2464 302.4112 302.5761
## [209] 302.7411 302.9062 303.0714 303.2366 303.4020 303.5674 303.7330 303.8986
## [217] 304.0643 304.2301 304.3960 304.5620 304.7281 304.8943 305.0605 305.2269
## [225] 305.3933
Karena model memprediksi log return, hasil tersebut harus dikonversi kembali ke skala harga agar dapat dibandingkan dengan harga aktual.
hasil_forecast <- data.frame(
Date = test$Date,
Actual = test$Close,
Return_Forecast = return_forecast,
Volatility = vol_forecast,
Forecast = harga_forecast
)
# Menampilkan tabel hasil
print(hasil_forecast)
## Date Actual Return_Forecast Volatility Forecast
## 1 2025-11-06 269.77 0.000545156 0.01124388 270.2873
## 2 2025-11-07 268.47 0.000545156 0.01218449 270.4347
## 3 2025-11-10 269.43 0.000545156 0.01228692 270.5822
## 4 2025-11-11 275.25 0.000545156 0.01238768 270.7297
## 5 2025-11-12 273.47 0.000545156 0.01248675 270.8774
## 6 2025-11-13 272.95 0.000545156 0.01258416 271.0251
## 7 2025-11-14 272.41 0.000545156 0.01267991 271.1729
## 8 2025-11-17 267.46 0.000545156 0.01277402 271.3207
## 9 2025-11-18 267.44 0.000545156 0.01286649 271.4687
## 10 2025-11-19 268.56 0.000545156 0.01295733 271.6167
## 11 2025-11-20 266.25 0.000545156 0.01304657 271.7648
## 12 2025-11-21 271.49 0.000545156 0.01313420 271.9130
## 13 2025-11-24 275.92 0.000545156 0.01322026 272.0613
## 14 2025-11-25 276.97 0.000545156 0.01330474 272.2097
## 15 2025-11-26 277.55 0.000545156 0.01338768 272.3581
## 16 2025-11-28 278.85 0.000545156 0.01346908 272.5066
## 17 2025-12-01 283.10 0.000545156 0.01354895 272.6552
## 18 2025-12-02 286.19 0.000545156 0.01362733 272.8039
## 19 2025-12-03 284.15 0.000545156 0.01370422 272.9527
## 20 2025-12-04 280.70 0.000545156 0.01377963 273.1015
## 21 2025-12-05 278.78 0.000545156 0.01385360 273.2504
## 22 2025-12-08 277.89 0.000545156 0.01392614 273.3994
## 23 2025-12-09 277.18 0.000545156 0.01399726 273.5485
## 24 2025-12-10 278.78 0.000545156 0.01406699 273.6977
## 25 2025-12-11 278.03 0.000545156 0.01413535 273.8469
## 26 2025-12-12 278.28 0.000545156 0.01420234 273.9963
## 27 2025-12-15 274.11 0.000545156 0.01426800 274.1457
## 28 2025-12-16 274.61 0.000545156 0.01433234 274.2952
## 29 2025-12-17 271.84 0.000545156 0.01439538 274.4447
## 30 2025-12-18 272.19 0.000545156 0.01445714 274.5944
## 31 2025-12-19 273.67 0.000545156 0.01451764 274.7441
## 32 2025-12-22 270.97 0.000545156 0.01457690 274.8940
## 33 2025-12-23 272.36 0.000545156 0.01463494 275.0439
## 34 2025-12-24 273.81 0.000545156 0.01469178 275.1938
## 35 2025-12-26 273.40 0.000545156 0.01474744 275.3439
## 36 2025-12-29 273.76 0.000545156 0.01480194 275.4940
## 37 2025-12-30 273.08 0.000545156 0.01485529 275.6443
## 38 2025-12-31 271.86 0.000545156 0.01490752 275.7946
## 39 2026-01-02 271.01 0.000545156 0.01495864 275.9450
## 40 2026-01-05 267.26 0.000545156 0.01500868 276.0954
## 41 2026-01-06 262.36 0.000545156 0.01505765 276.2460
## 42 2026-01-07 260.33 0.000545156 0.01510558 276.3966
## 43 2026-01-08 259.04 0.000545156 0.01515247 276.5474
## 44 2026-01-09 259.37 0.000545156 0.01519836 276.6982
## 45 2026-01-12 260.25 0.000545156 0.01524325 276.8491
## 46 2026-01-13 261.05 0.000545156 0.01528717 277.0000
## 47 2026-01-14 259.96 0.000545156 0.01533014 277.1511
## 48 2026-01-15 258.21 0.000545156 0.01537217 277.3022
## 49 2026-01-16 255.53 0.000545156 0.01541327 277.4534
## 50 2026-01-20 246.70 0.000545156 0.01545348 277.6047
## 51 2026-01-21 247.65 0.000545156 0.01549280 277.7561
## 52 2026-01-22 248.35 0.000545156 0.01553125 277.9076
## 53 2026-01-23 248.04 0.000545156 0.01556885 278.0591
## 54 2026-01-26 255.41 0.000545156 0.01560561 278.2107
## 55 2026-01-27 258.27 0.000545156 0.01564156 278.3624
## 56 2026-01-28 256.44 0.000545156 0.01567670 278.5142
## 57 2026-01-29 258.28 0.000545156 0.01571106 278.6661
## 58 2026-01-30 259.48 0.000545156 0.01574465 278.8181
## 59 2026-02-02 270.01 0.000545156 0.01577748 278.9701
## 60 2026-02-03 269.48 0.000545156 0.01580958 279.1222
## 61 2026-02-04 276.49 0.000545156 0.01584094 279.2744
## 62 2026-02-05 275.91 0.000545156 0.01587160 279.4267
## 63 2026-02-06 278.12 0.000545156 0.01590157 279.5791
## 64 2026-02-09 274.62 0.000545156 0.01593085 279.7315
## 65 2026-02-10 273.68 0.000545156 0.01595947 279.8841
## 66 2026-02-11 275.50 0.000545156 0.01598744 280.0367
## 67 2026-02-12 261.73 0.000545156 0.01601476 280.1894
## 68 2026-02-13 255.78 0.000545156 0.01604146 280.3422
## 69 2026-02-17 263.88 0.000545156 0.01606755 280.4951
## 70 2026-02-18 264.35 0.000545156 0.01609304 280.6480
## 71 2026-02-19 260.58 0.000545156 0.01611794 280.8011
## 72 2026-02-20 264.58 0.000545156 0.01614227 280.9542
## 73 2026-02-23 266.18 0.000545156 0.01616604 281.1074
## 74 2026-02-24 272.14 0.000545156 0.01618926 281.2607
## 75 2026-02-25 274.23 0.000545156 0.01621194 281.4141
## 76 2026-02-26 272.95 0.000545156 0.01623409 281.5675
## 77 2026-02-27 264.18 0.000545156 0.01625573 281.7211
## 78 2026-03-02 264.72 0.000545156 0.01627687 281.8747
## 79 2026-03-03 263.75 0.000545156 0.01629752 282.0284
## 80 2026-03-04 262.52 0.000545156 0.01631768 282.1822
## 81 2026-03-05 260.29 0.000545156 0.01633737 282.3361
## 82 2026-03-06 257.46 0.000545156 0.01635661 282.4900
## 83 2026-03-09 259.88 0.000545156 0.01637539 282.6441
## 84 2026-03-10 260.83 0.000545156 0.01639373 282.7982
## 85 2026-03-11 260.81 0.000545156 0.01641165 282.9524
## 86 2026-03-12 255.76 0.000545156 0.01642914 283.1067
## 87 2026-03-13 250.12 0.000545156 0.01644622 283.2611
## 88 2026-03-16 252.82 0.000545156 0.01646290 283.4155
## 89 2026-03-17 254.23 0.000545156 0.01647919 283.5701
## 90 2026-03-18 249.94 0.000545156 0.01649509 283.7247
## 91 2026-03-19 248.96 0.000545156 0.01651062 283.8794
## 92 2026-03-20 247.99 0.000545156 0.01652578 284.0342
## 93 2026-03-23 251.49 0.000545156 0.01654058 284.1891
## 94 2026-03-24 251.64 0.000545156 0.01655503 284.3441
## 95 2026-03-25 252.62 0.000545156 0.01656914 284.4991
## 96 2026-03-26 252.89 0.000545156 0.01658291 284.6543
## 97 2026-03-27 248.80 0.000545156 0.01659636 284.8095
## 98 2026-03-30 246.63 0.000545156 0.01660949 284.9648
## 99 2026-03-31 253.79 0.000545156 0.01662230 285.1202
## 100 2026-04-01 255.63 0.000545156 0.01663481 285.2757
## 101 2026-04-02 255.92 0.000545156 0.01664703 285.4312
## 102 2026-04-06 258.86 0.000545156 0.01665895 285.5869
## 103 2026-04-07 253.50 0.000545156 0.01667059 285.7426
## 104 2026-04-08 258.90 0.000545156 0.01668195 285.8984
## 105 2026-04-09 260.49 0.000545156 0.01669304 286.0543
## 106 2026-04-10 260.48 0.000545156 0.01670386 286.2103
## 107 2026-04-13 259.20 0.000545156 0.01671443 286.3664
## 108 2026-04-14 258.83 0.000545156 0.01672474 286.5226
## 109 2026-04-15 266.43 0.000545156 0.01673481 286.6788
## 110 2026-04-16 263.40 0.000545156 0.01674463 286.8351
## 111 2026-04-17 270.23 0.000545156 0.01675422 286.9915
## 112 2026-04-20 273.05 0.000545156 0.01676358 287.1480
## 113 2026-04-21 266.17 0.000545156 0.01677271 287.3046
## 114 2026-04-22 273.17 0.000545156 0.01678163 287.4613
## 115 2026-04-23 273.43 0.000545156 0.01679033 287.6180
## 116 2026-04-24 271.06 0.000545156 0.01679882 287.7749
## 117 2026-04-27 267.61 0.000545156 0.01680711 287.9318
## 118 2026-04-28 270.71 0.000545156 0.01681520 288.0888
## 119 2026-04-29 270.17 0.000545156 0.01682309 288.2459
## 120 2026-04-30 271.35 0.000545156 0.01683079 288.4031
## 121 2026-05-01 280.14 0.000545156 0.01683831 288.5604
## 122 2026-05-04 276.83 0.000545156 0.01684565 288.7177
## 123 2026-05-05 284.18 0.000545156 0.01685281 288.8751
## 124 2026-05-06 287.51 0.000545156 0.01685980 289.0327
## 125 2026-05-07 287.44 0.000545156 0.01686662 289.1903
## 126 2026-05-08 293.32 0.000545156 0.01687327 289.3480
## 127 2026-05-11 292.68 0.000545156 0.01687976 289.5058
## 128 2026-05-12 294.80 0.000545156 0.01688610 289.6636
## 129 2026-05-13 298.87 0.000545156 0.01689228 289.8216
## 130 2026-05-14 298.21 0.000545156 0.01689832 289.9796
## 131 2026-05-15 300.23 0.000545156 0.01690420 290.1378
## 132 2026-05-18 297.84 0.000545156 0.01690995 290.2960
## 133 2026-05-19 298.97 0.000545156 0.01691555 290.4543
## 134 2026-05-20 302.25 0.000545156 0.01692103 290.6127
## 135 2026-05-21 304.99 0.000545156 0.01692636 290.7711
## 136 2026-05-22 308.82 0.000545156 0.01693157 290.9297
## 137 2026-05-26 308.33 0.000545156 0.01693665 291.0883
## 138 2026-05-27 310.85 0.000545156 0.01694161 291.2471
## 139 2026-05-28 312.51 0.000545156 0.01694645 291.4059
## 140 2026-05-29 312.06 0.000545156 0.01695117 291.5648
## 141 2026-06-01 306.31 0.000545156 0.01695578 291.7238
## 142 2026-06-02 315.20 0.000545156 0.01696028 291.8829
## 143 2026-06-03 310.26 0.000545156 0.01696466 292.0420
## 144 2026-06-04 311.23 0.000545156 0.01696894 292.2013
## 145 2026-06-05 307.34 0.000545156 0.01697312 292.3606
## 146 2026-06-08 301.54 0.000545156 0.01697719 292.5200
## 147 2026-06-09 290.55 0.000545156 0.01698117 292.6796
## 148 2026-06-10 291.58 0.000545156 0.01698504 292.8392
## 149 2026-06-11 295.63 0.000545156 0.01698883 292.9988
## 150 2026-06-12 291.13 0.000545156 0.01699252 293.1586
## 151 2026-06-15 296.42 0.000545156 0.01699612 293.3185
## 152 2026-06-16 299.24 0.000545156 0.01699964 293.4784
## 153 2026-06-17 295.95 0.000545156 0.01700307 293.6385
## 154 2026-06-18 298.01 0.000545156 0.01700641 293.7986
## 155 2026-06-22 297.01 0.000545156 0.01700968 293.9588
## 156 2026-06-23 294.30 0.000545156 0.01701286 294.1191
## 157 2026-06-24 293.08 0.000545156 0.01701597 294.2795
## 158 2026-06-25 275.15 0.000545156 0.01701900 294.4399
## 159 2026-06-26 283.78 0.000545156 0.01702196 294.6005
## 160 2026-06-29 281.74 0.000545156 0.01702484 294.7611
## 161 2026-06-30 289.36 0.000545156 0.01702766 294.9219
## 162 2026-07-01 294.38 0.000545156 0.01703041 295.0827
## 163 2026-07-02 308.63 0.000545156 0.01703309 295.2436
## 164 2026-07-06 312.66 0.000545156 0.01703570 295.4046
## 165 2026-07-07 310.66 0.000545156 0.01703825 295.5657
## 166 2026-07-08 313.39 0.000545156 0.01704074 295.7269
## 167 2026-07-09 316.22 0.000545156 0.01704317 295.8881
## 168 2026-07-10 315.32 0.000545156 0.01704554 296.0495
## 169 2026-07-13 317.31 0.000545156 0.01704785 296.2109
## 170 2026-07-14 314.86 0.000545156 0.01705010 296.3724
## 171 2026-07-15 327.50 0.000545156 0.01705230 296.5341
## 172 2026-07-16 333.26 0.000545156 0.01705445 296.6958
## 173 2026-07-17 333.74 0.000545156 0.01705654 296.8575
## 174 2026-07-20 326.59 0.000545156 0.01705858 297.0194
## 175 2026-07-21 327.74 0.000545156 0.01706057 297.1814
## 176 2026-07-22 325.89 0.000545156 0.01706252 297.3434
## 177 2026-07-23 321.66 0.000545156 0.01706441 297.5056
## 178 2026-07-24 333.02 0.000545156 0.01706626 297.6678
## 179 2026-07-27 336.91 0.000545156 0.01706807 297.8301
## 180 2026-07-28 340.08 0.000545156 0.01706983 297.9925
## 181 2026-07-29 338.19 0.000545156 0.01707155 298.1550
## 182 2026-07-30 333.43 0.000545156 0.01707322 298.3176
## 183 2026-07-31 308.91 0.000545156 0.01707486 298.4803
## 184 2026-08-03 303.42 0.000545156 0.01707645 298.6431
## 185 2026-08-04 309.38 0.000545156 0.01707801 298.8059
## 186 2026-08-05 311.00 0.000545156 0.01707952 298.9689
## 187 2026-08-06 312.41 0.000545156 0.01708100 299.1319
## 188 2026-08-07 313.33 0.000545156 0.01708245 299.2950
## 189 2026-08-10 308.26 0.000545156 0.01708386 299.4582
## 190 2026-08-11 304.91 0.000545156 0.01708523 299.6215
## 191 2026-08-12 302.25 0.000545156 0.01708657 299.7849
## 192 2026-08-13 305.26 0.000545156 0.01708788 299.9484
## 193 2026-08-14 305.93 0.000545156 0.01708916 300.1119
## 194 2026-08-17 305.59 0.000545156 0.01709040 300.2756
## 195 2026-08-18 310.03 0.000545156 0.01709162 300.4393
## 196 2026-08-19 316.83 0.000545156 0.01709280 300.6032
## 197 2026-08-20 311.30 0.000545156 0.01709396 300.7671
## 198 2026-08-21 309.35 0.000545156 0.01709508 300.9311
## 199 2026-08-24 310.34 0.000545156 0.01709618 301.0952
## 200 2026-08-25 309.90 0.000545156 0.01709726 301.2594
## 201 2026-08-26 313.45 0.000545156 0.01709830 301.4237
## 202 2026-08-27 314.58 0.000545156 0.01709933 301.5880
## 203 2026-08-28 319.70 0.000545156 0.01710032 301.7525
## 204 2026-08-31 316.85 0.000545156 0.01710129 301.9170
## 205 2026-09-01 325.13 0.000545156 0.01710224 302.0817
## 206 2026-09-02 324.96 0.000545156 0.01710317 302.2464
## 207 2026-09-03 328.21 0.000545156 0.01710407 302.4112
## 208 2026-09-04 319.97 0.000545156 0.01710495 302.5761
## 209 2026-09-08 316.22 0.000545156 0.01710581 302.7411
## 210 2026-09-09 315.34 0.000545156 0.01710664 302.9062
## 211 2026-09-10 326.57 0.000545156 0.01710746 303.0714
## 212 2026-09-11 332.27 0.000545156 0.01710826 303.2366
## 213 2026-09-14 333.08 0.000545156 0.01710904 303.4020
## 214 2026-09-15 331.34 0.000545156 0.01710979 303.5674
## 215 2026-09-16 332.41 0.000545156 0.01711053 303.7330
## 216 2026-09-17 337.00 0.000545156 0.01711126 303.8986
## 217 2026-09-18 336.13 0.000545156 0.01711196 304.0643
## 218 2026-09-21 338.98 0.000545156 0.01711265 304.2301
## 219 2026-09-22 339.75 0.000545156 0.01711332 304.3960
## 220 2026-09-23 337.02 0.000545156 0.01711397 304.5620
## 221 2026-09-24 335.92 0.000545156 0.01711461 304.7281
## 222 2026-09-25 341.07 0.000545156 0.01711523 304.8943
## 223 2026-09-28 338.40 0.000545156 0.01711584 305.0605
## 224 2026-09-29 329.40 0.000545156 0.01711643 305.2269
## 225 2026-09-30 333.02 0.000545156 0.01711701 305.3933
head(hasil_forecast)
## Date Actual Return_Forecast Volatility Forecast
## 1 2025-11-06 269.77 0.000545156 0.01124388 270.2873
## 2 2025-11-07 268.47 0.000545156 0.01218449 270.4347
## 3 2025-11-10 269.43 0.000545156 0.01228692 270.5822
## 4 2025-11-11 275.25 0.000545156 0.01238768 270.7297
## 5 2025-11-12 273.47 0.000545156 0.01248675 270.8774
## 6 2025-11-13 272.95 0.000545156 0.01258416 271.0251
tail(hasil_forecast)
## Date Actual Return_Forecast Volatility Forecast
## 220 2026-09-23 337.02 0.000545156 0.01711397 304.5620
## 221 2026-09-24 335.92 0.000545156 0.01711461 304.7281
## 222 2026-09-25 341.07 0.000545156 0.01711523 304.8943
## 223 2026-09-28 338.40 0.000545156 0.01711584 305.0605
## 224 2026-09-29 329.40 0.000545156 0.01711643 305.2269
## 225 2026-09-30 333.02 0.000545156 0.01711701 305.3933
Tabel ini memungkinkan perbandingan langsung antara hasil prediksi dan kondisi aktual.
Contoh observasi pertama:
Aktual = 269,77 Forecast = 270,3401
Artinya forecast pada observasi pertama berada cukup dekat dengan harga aktual.
Namun pada akhir periode:
Aktual = 333,02 Forecast = 319,1135.
Terlihat bahwa semakin panjang horizon, perbedaan antara forecast dan aktual dapat semakin besar.
hasil_plot <- hasil_forecast %>%
select(
Date,
Actual,
Forecast
) %>%
pivot_longer(
cols = c(
Actual,
Forecast
),
names_to = "Jenis",
values_to = "Harga"
)
ggplot(
hasil_plot,
aes(
x = Date,
y = Harga,
linetype = Jenis
)
) +
geom_line(linewidth = 1) +
labs(
title = "Perbandingan Harga Aktual dan Hasil Peramalan Saham APPLE INC.",
x = "Tanggal",
y = "Harga Saham (USD)",
linetype = ""
) +
theme_minimal()
Grafik memberikan evaluasi visual mengenai kemampuan model mengikuti perubahan harga aktual.
Apabila garis forecast dekat dengan garis aktual, berarti error relatif kecil.
Sebaliknya, jarak yang semakin besar menunjukkan kesalahan prediksi yang semakin besar.
MAE <- mean(
abs(
hasil_forecast$Actual -
hasil_forecast$Forecast
),
na.rm = TRUE
)
MAE
## [1] 15.87803
RMSE <- sqrt(
mean(
(
hasil_forecast$Actual -
hasil_forecast$Forecast
)^2,
na.rm = TRUE
)
)
RMSE
## [1] 19.30879
MAPE <- mean(
abs(
(
hasil_forecast$Actual -
hasil_forecast$Forecast
) /
hasil_forecast$Actual
),
na.rm = TRUE
) * 100
MAPE
## [1] 5.556202
SMAPE <- mean(
2 *
abs(
hasil_forecast$Actual -
hasil_forecast$Forecast
) /
(
abs(hasil_forecast$Actual) +
abs(hasil_forecast$Forecast)
),
na.rm = TRUE
) * 100
SMAPE
## [1] 5.508405
evaluasi <- data.frame(Model = "EGARCH(2,1)",MAE = MAE,RMSE = RMSE,MAPE = MAPE,SMAPE = SMAPE
)
evaluasi
## Model MAE RMSE MAPE SMAPE
## 1 EGARCH(2,1) 15.87803 19.30879 5.556202 5.508405
MAE menunjukkan rata-rata nilai absolut kesalahan prediksi. Secara sederhana, hasil ini berarti: rata-rata selisih absolut antara harga aktual dan harga forecast sekitar 14,73 USD. MAE semakin kecil → kesalahan rata-rata semakin kecil.
RMSE memberikan bobot lebih besar terhadap kesalahan yang besar karena error dikuadratkan. Nilai 18,62 menunjukkan besarnya kesalahan prediksi setelah memperhitungkan error yang besar. Karena: \[ RMSE > MAE \] terdapat indikasi bahwa terdapat beberapa error yang relatif besar.
MAPE menunjukkan rata-rata persentase absolut kesalahan prediksi terhadap harga aktual. Hasilnya sekitar 5,34%. Artinya, secara rata-rata, kesalahan relatif forecast sekitar 5,34% dari harga aktual.
SMAPE merupakan ukuran error persentase yang menggunakan rata-rata nilai absolut aktual dan forecast sebagai penyebut. Nilai 5,17% menunjukkan tingkat kesalahan relatif yang diperoleh model berdasarkan formula SMAPE yang digunakan dalam penelitian.
Secara khusus, data return sudah stasioner dan residual model mean memiliki efek ARCH yang signifikan. GARCH kemudian menunjukkan adanya indikasi negative sign bias, sehingga model EGARCH digunakan untuk mengakomodasi kemungkinan asimetri tersebut.
EGARCH memiliki AIC dan BIC yang lebih rendah dibandingkan GARCH dalam hasil penelitian ini. Selain itu, diagnostik residual EGARCH menunjukkan tidak adanya autokorelasi residual yang signifikan, tidak adanya ARCH effect yang signifikan, dan tidak adanya sign bias yang signifikan.
n_forecast2 <- 7
forecast_mean2 <- forecast(
model_000_mean,
h = n_forecast2
)
# Mengambil hasil ramalan return
return_7 <- as.numeric(
forecast_mean2$mean
)
#PERAMALAN VOLATILITAS MENGGUNAKAN EGARCH(2,1)
forecast_egarch2 <- ugarchforecast(
fit_egarch21,
n.ahead = n_forecast2
)
# Mengambil hasil ramalan volatilitas
vol_7 <- as.numeric(
sigma(forecast_egarch2)
)
# Mengambil closing price terakhir
harga_terakhir <- as.numeric(
tail(data_AAPL$Close, 1)
)
# MENGHITUNG RAMALAN HARGA DARI LOG RETURN
harga_7 <- harga_terakhir * exp(
cumsum(return_7)
)
# MENENTUKAN 7 TANGGAL SETELAH TANGGAL TERAKHIR
# (MENGABAIKAN AKHIR PEKAN)
tanggal_terakhir <- max(data_AAPL$Date)
tanggal_kandidat <- seq(
from = tanggal_terakhir + 1,
by = "day",
length.out = 20
)
tanggal_kandidat <- tanggal_kandidat[
!weekdays(tanggal_kandidat) %in%
c("Saturday", "Sunday")
]
tanggal_7 <- tanggal_kandidat[1:7]
tabel_forecast_7 <- data.frame(
Periode = 1:7,
Tanggal = tanggal_7,
Forecast_Return = return_7,
Forecast_Volatilitas = vol_7,
Forecast_Harga_USD = harga_7
)
print(tabel_forecast_7)
## Periode Tanggal Forecast_Return Forecast_Volatilitas Forecast_Harga_USD
## 1 1 2026-10-01 0.000545156 0.01124388 333.2016
## 2 2 2026-10-02 0.000545156 0.01218449 333.3833
## 3 3 2026-10-05 0.000545156 0.01228692 333.5651
## 4 4 2026-10-06 0.000545156 0.01238768 333.7470
## 5 5 2026-10-07 0.000545156 0.01248675 333.9290
## 6 6 2026-10-08 0.000545156 0.01258416 334.1111
## 7 7 2026-10-09 0.000545156 0.01267991 334.2933
Forecast return untuk 7 periode bernilai konstan:
\[ 0,0007404735 \]
Hal ini konsisten dengan model mean ARIMA(0,0,0).
Sementara itu, volatilitas diproyeksikan meningkat dari:
\[ 0,011995 \]
menjadi:
\[ 0,013028. \]
Jadi, model memperkirakan return ekspektasian yang relatif konstan, tetapi volatilitas meningkat secara bertahap selama horizon 12 hari.
Harga hasil forecast meningkat dari:
\[ 333,2667 \]
menjadi:
\[ 335,9923. \]
Kenaikan tersebut merupakan konsekuensi dari return forecast positif yang diaplikasikan secara kumulatif ke harga terakhir sebesar 333,02 USD.
ggplot(tabel_forecast_7, aes(x = Tanggal, y = Forecast_Harga_USD)) +
geom_line(color = "blue", linewidth = 1) +
geom_point(color = "red", size = 2) +
scale_x_date(date_labels = "%d %b %Y", date_breaks = "2 days") +
labs(
title = "Proyeksi Pergerakan Harga Saham AAPL (7 Periode Ke Depan)",
subtitle = "Diestimasi Menggunakan Model EGARCH(1,1)",
x = "Tanggal Perdagangan",
y = "Perkiraan Harga Saham (USD)"
) +
theme_minimal()
Kesimpulan: Pertama, data harga saham AAPL dikumpulkan untuk periode April 2022 sampai September 2026. Harga penutupan kemudian digunakan untuk membentuk log return. Kedua, return diuji menggunakan ADF dan diperoleh hasil stasioner. Ketiga, model mean ditentukan menggunakan Auto ARIMA dan diperoleh ARIMA(0,0,0) dengan zero mean. Keempat, residual model mean diuji menggunakan ARCH-LM dan ditemukan adanya efek ARCH yang signifikan, sehingga pemodelan volatilitas menggunakan keluarga GARCH diperlukan. Kelima, model GARCH(1,1) dibangun dan ditemukan indikasi Negative Sign Bias. Oleh karena itu, digunakan EGARCH(2,1) yang dapat mengakomodasi asimetri volatilitas. Keenam, hasil EGARCH menunjukkan AIC dan BIC yang lebih rendah dibandingkan GARCH. Diagnostik residual EGARCH juga menunjukkan tidak adanya autokorelasi residual dan tidak adanya ARCH effect yang signifikan. Ketujuh, model EGARCH digunakan untuk melakukan forecasting pada data testing dan menghasilkan MAE 14,73405, RMSE 18,6248, MAPE 5,3391%, dan SMAPE 5,1705%. Terakhir, forecasting 12 periode ke depan menghasilkan proyeksi harga dari 333,27 USD hingga 335,99 USD dengan volatilitas yang meningkat dari sekitar 0,0120 menjadi 0,0130.