1 Permasalahan
Indeks Harga Saham Gabungan (IHSG) merupakan salah satu indeks pasar saham yang digunakan oleh Bursa Efek Indonesia. Setiap hari IHSG mengalami fluktuasi secara tidak pasti dan menjadikan kegiatan perdagangan saham beresiko tinggi. Fluktuasi yang tinggi pada data IHSG kemungkinan besar akan memiliki nilai pencilan. Pada beberapa hari terakhir, terdapat kebijakan pemerintah yang ramai dan menimbulkan sentimen negative sehingga membuat saham-saham di Indonesia menjadi anjlok termasuk IHSG. Kebijakan pemerintah tersebut adalah pengesahan RUU TNI yang disahkan pada tanggal 20 Maret 2025. Semenjak RUU TNI disahkan, nilai IHSG mengalami penurunan dan pada awal bulan April 2025 mengalami penurunan yang sangat tinggi. Berdasarkan karakteristik dari data IHSG yang selalu mengalami perubahan perlu dilakukan peramalan. Peramalan pada data close price IHSG dapat membantu investor dalam mengambil keputusan dalam berinvestasi.
2 Rumusan Masalah
Berdasarkan permasalahan pada data IHSG terdapat beberapa pertanyaan yang ditetapkan adalah
Model deret waktu manakah yang sesuai untuk permasalahan tersebut?
Bagaimana kemampuan model deret waktu yang ditetapkan dalam memodelkan data IHSG?
Bagaimana hasil peramalan dengan model deret waktu pada kasus data IHSG?
3 Pembahasan
3.1 Library
3.2 Import Data
data_ihsg <- read_excel("D:/Perkuliahan/Mata Kuliah/Semester 6/Metode Peramalan/Praktikum/Data IHSG.xlsx")
paged_table(data_ihsg)3.3 Plot Data
# Memastikan kolom tanggal bertipe Date
data_ihsg$Tanggal <- as.Date(data_ihsg$Tanggal)
# Mengambil nilai harga saham
ts_ihsg <- data_ihsg$`Harga Saham`
# Plot Time Series
plot(data_ihsg$Tanggal, ts_ihsg, type = "l", xlab = "Tanggal", ylab = "Harga Saham",
main = "Plot Time Series IHSG", col = "blue", lwd = 2, xaxt = "n")
axis.Date(1, at = seq(min(data_ihsg$Tanggal), max(data_ihsg$Tanggal), by = "months"),
format = "%d-%b-%Y", las = 1)Plot deret waktu IHSG menunjukkan fluktuasi harga saham yang cukup tajam selama periode 2024 hingga 2025. Terlihat bahwa pada awalnya IHSG mengalami kenaikan yang stabil, namun mulai menurun secara signifikan sejak akhir tahun 2024 dan semakin tajam pada awal tahun 2025. Penurunan paling drastis terjadi setelah tanggal 20 Maret 2025, yang bertepatan dengan pengesahan RUU TNI. Momen ini tampaknya memicu sentimen negatif di kalangan investor, tercermin dari anjloknya indeks secara berturut-turut, termasuk penurunan tajam di awal April 2025. Plot ini mengindikasikan adanya intervensi yang menyebabkan perubahan signifikan dalam perilaku pasar. Melihat karakteristik data IHSG yang sangat volatil dan rentan terhadap kejadian-kejadian politik atau kebijakan pemerintah, maka analisis deret waktu dan peramalan dapat dilakukan pada data IHSG.
3.4 Uji Stasioneritas
Pemeriksaan stasioneritas data deret waktu dilakukan dengan menguji stasioneritas terhadap ragam dan terhadap rata-rata. Berikut hasil uji stasioneritas data IHSG.
## [1] 1.999924
##
## Augmented Dickey-Fuller Test
##
## data: ts_ihsg
## Dickey-Fuller = -0.58748, Lag order = 6, p-value = 0.9775
## alternative hypothesis: stationary
##
## Augmented Dickey-Fuller Test
##
## data: diff_ts_ihsg
## Dickey-Fuller = -7.5443, Lag order = 6, p-value = 0.01
## alternative hypothesis: stationary
Pemeriksaan stasioneritas terhadap ragam menggunakan uji Box-Cox memberikan nilai lambda sekitar 2 (1.999924) sehingga data IHSG dikatakan stasioner terhadap ragam. Selanjutnya, dilakukan Uji Augmented Dickey-Fuller (ADF) terhadap data asli IHSG yang menghasilkan p-value sebesar 0.9775, jauh di atas 0.05, sehingga data tidak stasioner terhadap rata-rata. Oleh karena itu, dilakukan differencing untuk mengurangi tren dalam data. Setelah differencing, Uji ADF kembali dilakukan dan menunjukkan nilai Dickey-Fuller sebesar -7.5443 dengan p-value 0.01, yang lebih kecil dari 0.05. Hal ini menunjukkan data IHSG setelah differencing sudah stasioner terhadap rata-rata dan dapat digunakan untuk pemodelan lebih lanjut.
3.5 Identifikasi Model ARIMA
Identifikasi Model ARIMA dilakukan berdasarkan pola dari ACF (Autocorrelation Function) dan PACF (Partial Autocorrelation Function) yang dapat dilihat dari tabel berikut.| Model | ACF | PACF |
|---|---|---|
| AR(p) | Tails off | Cuts off after lag p |
| MA(q) | Cuts off after lag q | Tails off |
| ARMA(p,q) | Tails off | Tails off |
Plot ACF dan PACF menunjukkan signifikansi pada lag 2, 7, 10, dan 19 sehingga model yang dapat digunakan adalah model ARIMA Restricted. Kandidat model tentatif yang mungkin digunakan adalah model ARIMA ([2,7,10,19],0,0) dan model ARIMA (0,0,[2,7,10,19]). Model ini menunjukkan hanya lag 2, 7, 10, dan 19 yang digunakan sebagai komponen AR atau komponen MA dengan tidak ada differencing (d = 0).
3.6 Pendugaan Parameter Model
# Model ARIMA([2,7,10,19],0,0)
fixed_ar <- rep(0, 19)
fixed_ar[c(2, 7, 10, 19)] <- NA
fixed_ar <- c(fixed_ar, NA)
arima.ar <- arima(diff_ts_ihsg, order = c(19, 0, 0),
fixed = fixed_ar,
method = 'ML', include.mean = TRUE)
# Uji signifikansi parameter
coeftest(arima.ar)##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar2 -0.119000 0.059988 -1.9837 0.047287 *
## ar7 -0.159661 0.061409 -2.5999 0.009324 **
## ar10 0.178227 0.062994 2.8293 0.004666 **
## ar19 -0.202618 0.063239 -3.2040 0.001355 **
## intercept -4.224442 3.236245 -1.3054 0.191773
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Model ARIMA(0,0,[2,7,10,19])
fixed_ma <- rep(0, 19)
fixed_ma[c(2, 7, 10, 19)] <- NA
fixed_ma <- c(fixed_ma, NA)
arima.ma <- arima(diff_ts_ihsg, order = c(0, 0, 19),
fixed = fixed_ma,
method = 'ML', include.mean = TRUE)
# Uji signifikansi parameter
coeftest(arima.ma)##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ma2 -0.103411 0.055671 -1.8575 0.063236 .
## ma7 -0.129024 0.056667 -2.2769 0.022793 *
## ma10 0.110941 0.059280 1.8715 0.061281 .
## ma19 -0.188566 0.062381 -3.0228 0.002504 **
## intercept -4.080116 2.970385 -1.3736 0.169566
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Hasil pendugaan parameter dari kedua model ARIMA menunjukkan seluruh parameter dari model ARIMA ([2,7,10,19],0,0) signifikan sementara seluruh parameter dari model ARIMA (0,0,[2,7,10,19]) tidak semuanya signifikan.
3.7 Pengujian Asumsi Sisaan Model ARIMA
3.7.1 Asumsi Autokorelasi Sisaan
Hipotesis untuk uji autokorelasi sisaan
\(H_0\) : \(\rho_1=\rho_2=...=\rho_k=0\) (tidak
terdapat autokorelasi pada sisaan)
\(H_1\) : minimal terdapat satu \(\rho_k \neq 0\) ( terdapat autokorelasi
pada sisaan)
Taraf nyata: 0,05
##
## Box-Ljung test
##
## data: resid_arima
## X-squared = 5.1712, df = 10, p-value = 0.8794
##
## Box-Ljung test
##
## data: resid_arima2
## X-squared = 5.1801, df = 10, p-value = 0.8788
3.7.2 Asumsi Normalitas Sisaan
\(H_0\) : \(\epsilon_i\sim N(0, \sigma_e^{2})\) (sisaan
menyebar normal)
\(H_1\) : \(\varepsilon\not\sim N(0, \sigma_e^2)\)
(sisaan tidak menyebar normal)
Taraf nyata: 0,05
##
## Jarque Bera Test
##
## data: resid_arima
## X-squared = 174.04, df = 2, p-value < 2.2e-16
##
## Jarque Bera Test
##
## data: resid_arima2
## X-squared = 299.59, df = 2, p-value < 2.2e-16
Hasil pengujian asumsi menunjukkan bahwa kedua model tentatif tidak memiliki autokorelasi sisaan (p-value \(>α\)) tetapi kedua model memiliki sisaan yang tidak menyebar normal (p-value \(<α\)). Pada pemodelan deret waktu asumsi normalitas sisaan tidak wajib terpenuhi sehingga model tetap layak digunakan. Setelah seluruh asumsi diuji, maka dapat dilanjutkan pemilihan model terbaik dengan AIC.
3.8 Pemilihan Model Terbaik
## [1] 3394.388
## [1] 3399.425
Model tentatif yang digunakan adalah model ARIMA ([2,7,10,19],0,0) karena mempunyai nilai AIC terkecil.
3.9 Deteksi Outlier
Plot data deret waktu IHSG menunjukkan tren menurun yang tajam akibat pengesahan RUU TNI sehingga mengindikasikan adanya outlier. Maaka dari itu, dilakukan pemodelan ARIMA terdapat outlier dengan menggunakan deteksi Additive Outlier, Innovative Outlier, Level Shift, dan Transitory Change.
prediksi.arima <- ts_ihsg[2:298]-resid_arima
outlier <- tso(prediksi.arima, types = c('AO','IO','IS','TC'))
print(outlier)## Series: prediksi.arima
## Regression with ARIMA(0,1,0) errors
##
## Coefficients:
## TC137 AO277 AO279 TC295 AO297
## -264.3652 -226.7568 -204.6376 264.6799 -337.9785
## s.e. 59.7140 45.7985 45.7985 62.0373 66.0661
##
## sigma^2 = 4267: log likelihood = -1654.57
## AIC=3321.14 AICc=3321.43 BIC=3343.28
##
## Outliers:
## type ind time coefhat tstat
## 1 TC 137 137 -264.4 -4.427
## 2 AO 277 277 -226.8 -4.951
## 3 AO 279 279 -204.6 -4.468
## 4 TC 295 295 264.7 4.266
## 5 AO 297 297 -338.0 -5.116
Hasil deteksi outlier menunjukkan terdapat data dengan tipe Additive Outlier pada periode ke-277, 279, dan 297, dan Transitory Change pada periode ke-137 dan 295. Berdasarkan hasil deteksi outlier tersebut, dapat dinyatakan bahwa model ARIMA yang sesuai adalah kombinasi model ARIMA Additive Outlier (AO) dan Transitory Change (TC). Efek dari outlier (AO & TC) dilihat dari plot berikut.
3.10 Pemodelan ARIMA Outlier
Data IHSG mengandung outlier bertipe TC dan AO sehingga perlu dibentuk model ARIMA dengan outlier. Model yang terbentuk adalah sebagai berikut.
## Time Series:
## Start = 1
## End = 297
## Frequency = 1
## [1] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [6] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [11] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [16] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [21] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [26] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [31] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [36] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [41] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [46] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [51] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [56] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [61] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [66] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [71] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [76] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [81] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [86] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [91] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [96] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [101] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [106] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [111] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [116] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [121] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [126] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [131] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
## [136] 0.000000e+00 -2.643652e+02 -1.850557e+02 -1.295390e+02 -9.067727e+01
## [141] -6.347409e+01 -4.443186e+01 -3.110230e+01 -2.177161e+01 -1.524013e+01
## [146] -1.066809e+01 -7.467663e+00 -5.227364e+00 -3.659155e+00 -2.561409e+00
## [151] -1.792986e+00 -1.255090e+00 -8.785631e-01 -6.149942e-01 -4.304959e-01
## [156] -3.013472e-01 -2.109430e-01 -1.476601e-01 -1.033621e-01 -7.235345e-02
## [161] -5.064742e-02 -3.545319e-02 -2.481723e-02 -1.737206e-02 -1.216044e-02
## [166] -8.512311e-03 -5.958618e-03 -4.171032e-03 -2.919723e-03 -2.043806e-03
## [171] -1.430664e-03 -1.001465e-03 -7.010254e-04 -4.907178e-04 -3.435025e-04
## [176] -2.404517e-04 -1.683162e-04 -1.178213e-04 -8.247494e-05 -5.773246e-05
## [181] -4.041272e-05 -2.828890e-05 -1.980223e-05 -1.386156e-05 -9.703094e-06
## [186] -6.792166e-06 -4.754516e-06 -3.328161e-06 -2.329713e-06 -1.630799e-06
## [191] -1.141559e-06 -7.990915e-07 -5.593641e-07 -3.915549e-07 -2.740884e-07
## [196] -1.918619e-07 -1.343033e-07 -9.401232e-08 -6.580862e-08 -4.606604e-08
## [201] -3.224623e-08 -2.257236e-08 -1.580065e-08 -1.106046e-08 -7.742319e-09
## [206] -5.419623e-09 -3.793736e-09 -2.655615e-09 -1.858931e-09 -1.301252e-09
## [211] -9.108761e-10 -6.376132e-10 -4.463293e-10 -3.124305e-10 -2.187013e-10
## [216] -1.530909e-10 -1.071637e-10 -7.501456e-11 -5.251019e-11 -3.675713e-11
## [221] -2.572999e-11 -1.801100e-11 -1.260770e-11 -8.825388e-12 -6.177772e-12
## [226] -4.324440e-12 -3.027108e-12 -2.118976e-12 -1.483283e-12 -1.038298e-12
## [231] -7.268087e-13 -5.087661e-13 -3.561362e-13 -2.492954e-13 -1.745068e-13
## [236] -1.221547e-13 -8.550831e-14 -5.985582e-14 -4.189907e-14 -2.932935e-14
## [241] -2.053055e-14 -1.437138e-14 -1.005997e-14 -7.041977e-15 -4.929384e-15
## [246] -3.450569e-15 -2.415398e-15 -1.690779e-15 -1.183545e-15 -8.284816e-16
## [251] -5.799371e-16 -4.059560e-16 -2.841692e-16 -1.989184e-16 -1.392429e-16
## [256] -9.747003e-17 -6.822902e-17 -4.776031e-17 -3.343222e-17 -2.340255e-17
## [261] -1.638179e-17 -1.146725e-17 -8.027076e-18 -5.618953e-18 -3.933267e-18
## [266] -2.753287e-18 -1.927301e-18 -1.349111e-18 -9.443775e-19 -6.610642e-19
## [271] -4.627450e-19 -3.239215e-19 -2.267450e-19 -1.587215e-19 -1.111051e-19
## [276] -7.777354e-20 -2.267568e+02 -3.810904e-20 -2.046376e+02 -1.867343e-20
## [281] -1.307140e-20 -9.149980e-21 -6.404986e-21 -4.483490e-21 -3.138443e-21
## [286] -2.196910e-21 -1.537837e-21 -1.076486e-21 -7.535402e-22 -5.274781e-22
## [291] -3.692347e-22 -2.584643e-22 -1.809250e-22 -1.266475e-22 2.646799e+02
## [296] 1.852759e+02 -2.082854e+02
xreg.cut <- matrix(head(c(xreg.outlier, rep(0, length(ts_ihsg))),
length(ts_ihsg)),
ncol = 1)
fixed_all <- c(rep(0, 19), NA, NA)
fixed_all[c(2, 7, 10, 19, 20)] <- NA
arima.TC_AO <- arima(ts_ihsg,
order = c(19, 0, 0),
fixed = fixed_all,
xreg = xreg.cut,
method = 'ML',
include.mean = TRUE)
coeftest(arima.TC_AO)##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar2 9.7525e-01 2.9892e-02 32.6260 <2e-16 ***
## ar7 -1.1143e-02 2.8799e-02 -0.3869 0.6988
## ar10 6.1671e-03 3.1528e-02 0.1956 0.8449
## ar19 1.6446e-02 2.6462e-02 0.6215 0.5343
## intercept 6.9339e+03 3.0388e+02 22.8175 <2e-16 ***
## xreg 1.2316e+00 1.2036e-01 10.2334 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Hasil pemodelan ARIMA Outlier (TC & AO) menunjukkan hanya satu parameter yang signifikan. Walaupun begitu, model masih dapat digunakan karena terdapat efek outlier.
3.11 Pengujian Asumsi Sisaan Model ARIMA Outlier
Seperti model ARIMA biasa, model ARIMA Outlier juga perlu dilakukan pengujian asumsi sisaan, yaitu autokorelasi sisaan dan normalitas sisaan.
3.11.1 Asumsi Autokorelasi Sisaan
\(H_0\) : \(\rho_1=\rho_2=...=\rho_k=0\) (tidak
terdapat autokorelasi pada sisaan)
\(H_1\) : minimal terdapat satu \(\rho_k \neq 0\) ( terdapat autokorelasi
pada sisaan)
Taraf nyata: 0,05
resid.arimaTC_AO <- residuals(arima.TC_AO)
Box.test(resid.arimaTC_AO, lag = 10, type = c('Ljung-Box'))##
## Box-Ljung test
##
## data: resid.arimaTC_AO
## X-squared = 81.685, df = 10, p-value = 2.345e-13
Hasil uji autokorelasi sisaan model ARIMA Outlier TS & AO memberikan p-value \(<0,05\) sehingga \(H_0\) ditolak. Terdapat autokorelasi sisaan pada Model ARIMA Outlier TS & AO.
3.11.2 Asumsi Normalitas Sisaan
\(H_0\) : \(\epsilon_i\sim N(0, \sigma_e^{2})\) (sisaan
menyebar normal)
\(H_1\) : \(\varepsilon\not\sim N(0, \sigma_e^2)\)
(sisaan tidak menyebar normal)
Taraf nyata: 0,05
##
## Jarque Bera Test
##
## data: resid.arimaTC_AO
## X-squared = 16.632, df = 2, p-value = 0.0002446
Hasil uji normalitas sisaan model ARIMA Outlier TS & AO memberikan p-value \(<0,05\) sehingga \(H_0\) ditolak. Model ARIMA Outlier TS & AO memiliki sisaan yang tidak menyebar normal.
3.12 Evaluasi Grafis ARIMA dan ARIMA TC & AO
prediksi.arimaTC_AO <- ts_ihsg[2:298]-resid.arimaTC_AO
n_obs <- length(ts_ihsg)
plot_data <- data.frame(
Tanggal = data_ihsg$Tanggal,
Aktual = ts_ihsg,
ARIMA = c(NA, prediksi.arima)[1:n_obs],
ARIMA_Outlier = c(NA, prediksi.arimaTC_AO)[1:n_obs])
ggplot(plot_data, aes(x=Tanggal)) +
geom_line(aes(y=Aktual, color="Aktual"), linewidth=1) +
geom_line(aes(y=ARIMA, color="ARIMA"), linewidth=1, na.rm=TRUE) +
geom_line(aes(y=ARIMA_Outlier, color="ARIMA+Outlier"), linewidth=1, na.rm=TRUE) +
scale_color_manual(values=c("Aktual"="blue", "ARIMA"="red", "ARIMA+Outlier"="green")) +
labs(title="Perbandingan Model", x="Tanggal", y="Harga Saham") +
theme_minimal()
Grafik di atas menunjukkan perbandingan antara data aktual harga saham
IHSG (garis biru), hasil peramalan menggunakan model ARIMA tanpa outlier
(garis merah), dan model ARIMA dengan outlier (garis hijau). Terlihat
bahwa kedua model ARIMA mampu mengikuti pola pergerakan data aktual
dengan cukup baik. Untuk memilih model yang lebih baik, dilakukan
perbandingan nilai AIC antara kedua model.
## [1] 3396.388
## [1] 3559.498
Berdasarkan nilai AIC, model ARIMA tanpa outlier mempunyai performa yang lebih baik karena memiliki nilai AIC terkecil. Maka dari itu, model yang digunakan untuk peramalan adalah model ARIMA ([2,7,10,19],0,0).
3.13 Peramalan
Peramalan dilakukan dengan model ARIMA terbaik, yaitu model ARIMA ([2,7,10,19],0,0). Peramalan data IHSG dilakukan untuk 60 hari ke depan.
# Model ARIMA Terbaik
fixed_ar <- rep(0, 19)
fixed_ar[c(2, 7, 10, 19)] <- NA
fixed_ar <- c(fixed_ar, NA)
Model_Terbaik <- Arima(ts_ihsg,
order = c(19, 0, 0),
fixed = fixed_ar,
include.mean = TRUE,
method = "ML")
# Peramalan 60 hari ke depan
forecast_values <- forecast(Model_Terbaik, h = 60)
forecast_values ## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 299 6024.662 5887.206 6162.119 5814.441 6234.884
## 300 6007.996 5870.540 6145.453 5797.775 6218.218
## 301 6060.110 5872.785 6247.434 5773.622 6346.598
## 302 6038.041 5850.717 6225.366 5751.553 6324.529
## 303 6080.842 5859.542 6302.143 5742.393 6419.292
## 304 6064.782 5843.482 6286.083 5726.333 6403.232
## 305 6116.840 5870.112 6363.568 5739.502 6494.178
## 306 6103.202 5856.474 6349.930 5725.864 6480.540
## 307 6123.827 5857.226 6390.428 5716.096 6531.558
## 308 6108.415 5841.814 6375.016 5700.684 6516.146
## 309 6130.817 5845.795 6415.838 5694.914 6566.720
## 310 6116.132 5831.111 6401.154 5680.229 6552.035
## 311 6138.848 5836.767 6440.929 5676.855 6600.841
## 312 6123.504 5821.422 6425.585 5661.510 6585.497
## 313 6147.265 5829.404 6465.127 5661.139 6633.392
## 314 6133.713 5815.852 6451.574 5647.586 6619.840
## 315 6158.705 5826.268 6491.143 5650.286 6667.124
## 316 6142.204 5809.767 6474.642 5633.785 6650.624
## 317 6166.279 5820.397 6512.161 5637.299 6695.260
## 318 6150.528 5804.643 6496.412 5621.543 6679.512
## 319 6173.891 5815.523 6532.259 5625.815 6721.967
## 320 6158.872 5800.498 6517.245 5610.787 6706.957
## 321 6181.560 5811.536 6551.583 5615.658 6747.462
## 322 6167.126 5797.093 6537.160 5601.209 6733.044
## 323 6189.280 5808.333 6570.228 5606.671 6771.890
## 324 6175.542 5794.580 6556.504 5592.911 6758.173
## 325 6197.283 5806.066 6588.499 5598.969 6795.597
## 326 6183.833 5792.598 6575.067 5585.491 6782.174
## 327 6205.132 5804.242 6606.022 5592.024 6818.240
## 328 6191.999 5791.087 6592.911 5578.856 6805.142
## 329 6212.856 5802.835 6622.878 5585.783 6839.930
## 330 6200.058 5790.009 6610.106 5572.943 6827.173
## 331 6220.467 5801.810 6639.124 5580.186 6860.747
## 332 6208.015 5789.326 6626.705 5567.685 6848.345
## 333 6227.992 5801.154 6654.830 5575.199 6880.784
## 334 6215.906 5789.030 6642.782 5563.056 6868.756
## 335 6235.442 5800.842 6670.042 5570.778 6900.106
## 336 6223.704 5789.061 6658.347 5558.975 6888.433
## 337 6242.814 5800.838 6684.789 5566.870 6918.757
## 338 6231.410 5789.386 6673.434 5555.393 6907.427
## 339 6250.106 5801.112 6699.100 5563.429 6936.783
## 340 6239.025 5789.978 6688.072 5552.267 6925.783
## 341 6257.318 5801.639 6712.998 5560.417 6954.220
## 342 6246.550 5790.813 6702.288 5549.560 6943.541
## 343 6264.453 5802.398 6726.508 5557.800 6971.106
## 344 6253.992 5791.873 6716.111 5547.242 6960.741
## 345 6271.511 5803.369 6739.653 5555.549 6987.473
## 346 6261.349 5793.138 6729.560 5545.282 6977.416
## 347 6278.493 5804.534 6752.451 5553.636 7003.350
## 348 6268.622 5794.590 6742.655 5543.653 6993.592
## 349 6285.399 5805.878 6764.920 5552.035 7018.763
## 350 6275.813 5796.213 6755.413 5542.329 7009.297
## 351 6292.231 5807.386 6777.076 5550.724 7033.738
## 352 6282.922 5797.993 6767.850 5541.287 7024.556
## 353 6298.989 5809.044 6788.934 5549.683 7048.296
## 354 6289.949 5799.915 6779.983 5540.507 7039.391
## 355 6305.674 5810.840 6800.508 5548.890 7062.458
## 356 6296.897 5801.969 6791.824 5539.971 7053.822
## 357 6312.287 5812.763 6811.811 5548.331 7076.243
## 358 6303.765 5804.144 6803.386 5539.660 7067.870
#Visualisasi
historical_dates <- data_ihsg$Tanggal
forecast_dates <- seq(from = max(historical_dates) + 1, by = "day", length.out = 60)
plot_df <- data.frame(
Tanggal = c(historical_dates, forecast_dates),
Harga = c(ts_ihsg, as.numeric(forecast_values$mean)),
Tipe = c(rep("Aktual", length(ts_ihsg)), rep("Prediksi", 60))
)
# Plot
ggplot(plot_df, aes(x = Tanggal, y = Harga, color = Tipe)) +
geom_line(size = 1) +
scale_color_manual(values = c("Aktual" = "blue", "Prediksi" = "red")) +
labs(title = "Peramalan IHSG Menggunakan ARIMA",
x = "Tanggal", y = "Harga Saham") +
theme_minimal()Hasil peramalan dengan model ARIMA([2,7,10,19],0,0) menunjukkan selama 60 hari ke depan, nilai IHSG akan perlahan meningkat kembali, mengindikasikan nilai IHSG akan kembali akibat naik setelah efek dari pengesahan RUU TNI memudar.
4 Kesimpulan dan Saran
4.1 Kesimpulan
Berdasarkan hasil analisis terhadap data IHSG, model deret waktu yang paling sesuai digunakan adalah ARIMA terbatas ARIMA ([2,7,10,19],0,0), yang dipilih berdasarkan pola signifikan pada grafik ACF dan PACF serta didukung oleh uji parameter dan asumsi sisaan yang terpenuhi. Model ini mampu merepresentasikan pergerakan IHSG dengan baik, terbukti dari hasil peramalan yang mengikuti pola historis dan residual yang memenuhi nonautokorelasi. Hasil peramalan menunjukkan bahwa nilai IHSG diperkirakan mengalami kenaikan selama 60 hari ke depan, mengindikasikan pemulihan IHSG karena efek dari RUU TNI yang semakin lama semakin mengecil.
4.2 Saran
Melihat hasil peramalan yang menunjukkan tren kenaikan IHSG, disarankan bagi investor untuk mempertimbangkan strategi investasi jangka pendek atau menengah yang lebih optimis. Namun demikian, kondisi pasar tetap perlu dipantau secara berkala karena fluktuasi pasar dapat dipengaruhi oleh faktor eksternal yang tidak tercermin dalam model, meskipun pengaruh RUU TNI mulai memudar. Selain itu, model ARIMA sebaiknya terus dievaluasi dan diperbarui secara berkala agar tetap relevan dengan kondisi pasar terkini dan dapat memberikan hasil peramalan yang lebih akurat.