PENDAHULUAN

1.1. Latar Belakang

Indeks Harga Saham Gabungan (IHSG) merupakan indikator utama yang digunakan untuk menggambarkan kinerja pasar modal di Indonesia. IHSG mencerminkan pergerakan harga seluruh saham yang tercatat di Bursa Efek Indonesia, sehingga sering dijadikan sebagai tolok ukur dalam menilai kondisi ekonomi nasional secara keseluruhan. Pergerakan IHSG tidak hanya dipengaruhi oleh faktor internal perusahaan, tetapi juga oleh faktor makroekonomi seperti inflasi, suku bunga, nilai tukar, serta kondisi ekonomi global yang dinamis.

Dalam beberapa tahun terakhir, dinamika IHSG menunjukkan fluktuasi. Fluktuasi tersebut dapat disebabkan oleh berbagai peristiwa, seperti kebijakan moneter dari bank sentral, kondisi geopolitik global, hingga sentimen investor terhadap pasar keuangan. Oleh karena itu, analisis terhadap pergerakan IHSG menjadi sangat penting, terutama dalam rangka memahami pola data serta melakukan peramalan untuk periode mendatang.

Data IHSG merupakan data runtun waktu (time series), yaitu data yang diamati secara berurutan berdasarkan waktu. Analisis terhadap data time series memerlukan metode khusus yang mampu menangkap pola historis data, baik dalam bentuk tren, musiman, maupun fluktuasi acak. Salah satu metode yang широко digunakan dalam analisis time series adalah model Autoregressive Integrated Moving Average (ARIMA). Model ARIMA memiliki keunggulan dalam memodelkan data berdasarkan nilai masa lalu serta kesalahan prediksi sebelumnya, sehingga sering digunakan dalam peramalan di bidang ekonomi dan keuangan (Box et al., 2015).

Namun demikian, dalam praktiknya, data IHSG tidak selalu mengikuti pola yang stabil. Adanya kejadian-kejadian tertentu seperti krisis ekonomi, pengumuman kebijakan pemerintah, maupun peristiwa global dapat menyebabkan munculnya nilai ekstrem atau outlier dalam data. Keberadaan outlier ini dapat mempengaruhi hasil estimasi model dan menurunkan tingkat akurasi peramalan jika tidak ditangani dengan baik. Oleh karena itu, diperlukan proses deteksi outlier sebagai bagian penting dalam analisis time series (Chen & Liu, 1993).

Selain itu, untuk mengakomodasi pengaruh suatu peristiwa tertentu terhadap perubahan pola data, digunakan pendekatan model ARIMA dengan intervensi. Model ini memungkinkan peneliti untuk mengidentifikasi serta mengukur dampak suatu kejadian terhadap data, baik yang bersifat sementara maupun permanen. Dengan demikian, model yang dihasilkan menjadi lebih representatif terhadap kondisi nyata yang terjadi (Wei, 2006).

Berdasarkan uraian tersebut, penelitian ini menggunakan data IHSG periode 12 Desember 2023 hingga 9 April 2025 untuk dianalisis menggunakan metode ARIMA dengan mempertimbangkan deteksi outlier dan intervensi. Diharapkan penelitian ini dapat menghasilkan model yang optimal dalam menggambarkan pola data serta memberikan hasil peramalan yang akurat, sehingga dapat menjadi referensi dalam pengambilan keputusan di bidang investasi maupun kebijakan ekonomi.

1.2. Rumusan Masalah

Berdasarkan latar belakang yang telah diuraikan, maka rumusan masalah dalam penelitian ini adalah sebagai berikut: 1. Model deret waktu manakah yang sesuai untuk permasalahan tersebut? 2. Bagaimana kemampuan model deret waktu yang ditetapkan dalam memodelkan data IHSG? 3. Bagaimana hasil peramalan dengan model deret waktu pada kasus data IHSG?

1.3. Tujuan Penelitian

Tujuan dari penelitian ini adalah sebagai berikut: 1. Menentukan model ARIMA terbaik yang sesuai dengan data. 2. Mengevaluasi akurasi model yang didapatkan. 3. Melakukan peramalan IHSG untuk periode mendatang.

TINJAUAN PUSTAKA

2.1. ARIMA (Autoregressive Integrated Moving Average)

Model Autoregressive Integrated Moving Average (ARIMA) merupakan salah satu metode analisis time series yang digunakan untuk memodelkan dan meramalkan data berdasarkan pola historisnya. Model ini dikembangkan oleh Box dan Jenkins, sehingga sering dikenal dengan pendekatan Box-Jenkins. ARIMA banyak digunakan dalam bidang ekonomi dan keuangan karena kemampuannya dalam menangkap pola data yang bersifat dinamis, seperti tren dan fluktuasi acak (Box et al., 2015).

Model ARIMA terdiri dari tiga komponen utama, yaitu Autoregressive (AR), Integrated (I), dan Moving Average (MA). Model ini dinotasikan sebagai ARIMA(p,d,q), di mana: p menunjukkan orde autoregressive, d menunjukkan tingkat differencing, q menunjukkan orde moving average.

Secara umum, model ARIMA dapat dinyatakan dalam bentuk:

\[ \begin{align*} \phi(B)(1 - B)^d Y_t = \theta(B)\varepsilon_t \end{align*} \] Komponen autoregressive menunjukkan bahwa nilai suatu variabel dipengaruhi oleh nilai variabel tersebut pada periode sebelumnya. Model AR dengan orde p dapat dituliskan sebagai:

\[ \begin{align*} Y_t = \phi_1 Y_{t-1} + \phi_2 Y_{t-2} + \cdots + \phi_p Y_{t-p} + \varepsilon_t \end{align*} \]

Komponen moving average menyatakan bahwa nilai suatu variabel dipengaruhi oleh kesalahan (error) pada periode sebelumnya. Model MA dengan orde q dirumuskan sebagai:

\[ \begin{align*} Y_t = \varepsilon_t + \theta_1 \varepsilon_{t-1} + \theta_2 \varepsilon_{t-2} + \cdots + \theta_q \varepsilon_{t-q} \end{align*} \]

Komponen integrated berkaitan dengan proses differencing yang digunakan untuk membuat data menjadi stasioner. Jika data tidak stasioner, maka dilakukan differencing sebanyak d kali. Differencing orde pertama dapat dituliskan sebagai:

\[ \begin{align*} (1 - B)^d Y_t \end{align*} \]

2.2. Uji Stasioneritas

Stasioneritas merupakan salah satu asumsi penting dalam analisis time series, khususnya pada pemodelan ARIMA. Suatu data dikatakan stasioner apabila memiliki rata-rata (mean) dan ragam (varians) yang konstan sepanjang waktu, serta tidak terdapat pola tren maupun musiman (Wei, 2006). Jika data tidak stasioner, maka hasil pemodelan dapat menjadi tidak valid. Oleh karena itu, sebelum membangun model ARIMA, perlu dilakukan pengujian stasioneritas baik terhadap rata-rata maupun ragam.

2.2.1. Uji Stasioneritas terhadap rata-rata

Stasioneritas terhadap rata-rata berarti bahwa nilai ekspektasi dari suatu proses time series tidak berubah terhadap waktu. Secara matematis, kondisi ini dapat dinyatakan sebagai: \[ \begin{align*} E(Y_t) = \mu \end{align*} \] Jika data tidak stasioner terhadap mean, maka dilakukan proses differencing: \[ \begin{align*} Y'_t = Y_t - Y_{t-1} \end{align*} \] Selain itu, pengujian formal dilakukan menggunakan Augmented Dickey-Fuller (ADF): \[ \begin{align*} \Delta Y_t = \alpha + \beta t + \gamma Y_{t-1} + \sum_{i=1}^{p} \delta_i \Delta Y_{t-i} + \varepsilon_t \end{align*} \]

2.2.2. Uji Stasioneritas terhadap ragam

Stasioneritas terhadap ragam berarti bahwa varians data tidak berubah sepanjang waktu. Secara matematis: \[ \begin{align*} Var(Y_t) = \sigma^2 \end{align*} \] Jika varians tidak konstan (heteroskedastisitas), maka dilakukan transformasi data, salah satunya menggunakan transformasi Box-Cox:

\[ \begin{align*} Y_t^{(\lambda)} = \frac{Y_t^{\lambda} - 1}{\lambda} \end{align*} \]

2.3. Deteksi Outlier

Outlier dalam analisis time series merupakan nilai pengamatan yang menyimpang secara signifikan dari pola umum data. Keberadaan outlier dapat disebabkan oleh berbagai faktor, seperti kesalahan pencatatan, kejadian ekstrem, atau pengaruh peristiwa tertentu seperti krisis ekonomi atau kebijakan pemerintah. Dalam konteks pemodelan ARIMA, keberadaan outlier sangat penting untuk dideteksi karena dapat mempengaruhi estimasi parameter dan menurunkan akurasi model (Chen & Liu, 1993).

2.3.1. Additive Outlier(AO)

Additive Outlier (AO) merupakan outlier yang terjadi secara tiba-tiba pada satu periode tertentu dan tidak mempengaruhi periode lainnya. Jenis outlier ini biasanya muncul akibat kesalahan pencatatan atau kejadian yang bersifat sesaat. \[ \begin{align*} YI_t = \begin{cases} 1, & t = T \\ 0, & t \neq T \end{cases} \end{align*} \]

2.3.2. Innovational Outlier (IO)

Innovational Outlier (IO) merupakan outlier yang mempengaruhi komponen error dalam model, sehingga dampaknya dapat menyebar ke periode berikutnya melalui struktur model time series. Secara matematis: \[ \begin{align*} \varepsilon_t = \omega I_t + a_t \end{align*} \]

2.3.3. Level Shift (LS)

Level Shift (LS) merupakan jenis outlier yang menyebabkan perubahan permanen pada level data setelah suatu periode tertentu. Hal ini biasanya terjadi akibat perubahan kebijakan atau kondisi ekonomi yang bersifat jangka panjang. \[ \begin{align*} I_t = \begin{cases} 0, & t < T \\ 1, & t \ge T \end{cases} \end{align*} \]

2.3.4. Temporary Change

Temporary Change (TC) merupakan outlier yang memberikan pengaruh sementara terhadap data dan akan berkurang seiring waktu hingga kembali ke kondisi semula. \[ \begin{align*} I_t = \begin{cases} 0, & t < T \\ \delta^{t-T}, & t \ge T \end{cases} \end{align*} \]

2.4. Pemodelan ARIMA Pra-intervensi

Pemodelan ARIMA pra-intervensi merupakan tahap awal dalam analisis time series yang bertujuan untuk memperoleh model dasar (baseline model) tanpa mempertimbangkan adanya pengaruh kejadian eksternal atau intervensi. Model ini dibangun murni berdasarkan pola historis data, sehingga dapat digunakan sebagai pembanding dalam analisis lanjutan yang melibatkan intervensi (Wei, 2006).

Tahap ini sangat penting karena model ARIMA pra-intervensi digunakan untuk menangkap struktur dasar data, seperti tren dan pola autokorelasi. Model yang diperoleh harus memenuhi asumsi stasioneritas serta menghasilkan residual yang bersifat white noise sebelum digunakan dalam tahap selanjutnya.

Secara umum, model ARIMA pra-intervensi dapat dinyatakan sebagai:

\[ \begin{align*} \phi(B)(1 - B)^d Y_t = \theta(B)\varepsilon_t \end{align*} \]

2.5. Pemodelan ARIMA+Intevensi

Model ARIMA dengan intervensi merupakan pengembangan dari model ARIMA yang digunakan untuk menganalisis pengaruh suatu kejadian atau peristiwa tertentu terhadap data time series. Intervensi dapat berupa kebijakan pemerintah, krisis ekonomi, pandemi, atau kejadian lain yang menyebabkan perubahan pola data secara signifikan. Model ini memungkinkan peneliti untuk mengidentifikasi serta mengukur dampak intervensi baik yang bersifat sementara maupun permanen (Box et al., 2015).

Dalam model ini, data time series tidak hanya dipengaruhi oleh nilai masa lalu dan error, tetapi juga oleh variabel intervensi yang dimasukkan ke dalam model.

Secara umum, model ARIMA dengan intervensi dapat dituliskan sebagai: \[ \begin{align*} Y_t = \frac{\omega(B)}{\delta(B)} I_t + N_t \end{align*} \]

2.6. Pengujian Asumsi

Pengujian asumsi merupakan tahap penting dalam pemodelan ARIMA maupun ARIMA dengan intervensi untuk memastikan bahwa model yang dihasilkan sudah memenuhi kriteria statistik yang baik. Model yang baik harus memiliki residual yang bersifat white noise, yaitu tidak berkorelasi, memiliki rata-rata nol, dan varians konstan. Selain itu, dalam beberapa kasus juga diasumsikan bahwa residual berdistribusi normal (Wei, 2006).Pengujian asumsi dalam penelitian ini meliputi uji non-autokorelasi dan uji normalitas residual sebagai berikut.

2.6.1. Asumsi Non-autokorelasi

Asumsi non-autokorelasi menyatakan bahwa residual dari model tidak memiliki hubungan atau korelasi antar waktu. Jika residual masih memiliki autokorelasi, maka model belum mampu menangkap seluruh pola dalam data. Salah satu metode yang umum digunakan untuk menguji autokorelasi adalah uji Ljung-Box. \[ \begin{align*} Q = n(n+2) \sum_{k=1}^{h} \frac{\hat{\rho}_k^2}{n-k} \end{align*} \]

2.6.2. Asumsi Normalitas

Asumsi normalitas menyatakan bahwa residual dari model berdistribusi normal. Pengujian ini penting terutama untuk keperluan inferensi statistik, seperti pengujian parameter. Salah satu uji yang digunakan adalah uji Jarque-Bera. \[ \begin{align*} JB = \frac{n}{6} \left(S^2 + \frac{(K-3)^2}{4}\right) \end{align*} \]

2.7. Pemilihan Model Terbaik

Dalam pemodelan ARIMA maupun ARIMA dengan intervensi, seringkali terdapat beberapa kandidat model yang dapat digunakan. Oleh karena itu, diperlukan kriteria pemilihan model terbaik untuk menentukan model yang paling optimal dalam merepresentasikan data. Salah satu pendekatan yang umum digunakan adalah kriteria informasi, yaitu Akaike Information Criterion (AIC) dan Bayesian Information Criterion (BIC) (Gujarati & Porter, 2009).

Kriteria ini digunakan untuk menyeimbangkan antara goodness of fit (kecocokan model terhadap data) dan kompleksitas model. Model yang terlalu kompleks cenderung overfitting, sedangkan model yang terlalu sederhana mungkin tidak mampu menangkap pola data dengan baik.

2.7.1. Akaike Information Criterion (AIC)

Akaike Information Criterion (AIC) merupakan ukuran yang digunakan untuk mengevaluasi kualitas model dengan mempertimbangkan jumlah parameter yang digunakan. Nilai AIC yang lebih kecil menunjukkan model yang lebih baik. \[ \begin{align*} AIC = -2 \ln(L) + 2k \end{align*} \]

2.7.2. Bayesian Information Criterion (BIC)

Bayesian Information Criterion (BIC) merupakan kriteria pemilihan model yang mirip dengan AIC, namun memberikan penalti yang lebih besar terhadap jumlah parameter. Oleh karena itu, BIC cenderung memilih model yang lebih sederhana. \[ \begin{align*} BIC = -2 \ln(L) + k \ln(n) \end{align*} \]

2.8. Evaluasi Prediksi

Evaluasi prediksi merupakan tahap yang dilakukan untuk mengukur tingkat akurasi model dalam memprediksi nilai data. Evaluasi ini penting untuk menentukan apakah model ARIMA atau ARIMA dengan intervensi yang telah dibangun mampu menghasilkan prediksi yang mendekati nilai aktual. Model yang baik adalah model yang memiliki tingkat kesalahan prediksi yang kecil (Hyndman & Athanasopoulos, 2018). Beberapa ukuran yang umum digunakan dalam evaluasi prediksi antara lain Mean Absolute Percentage Error (MAPE), Mean Absolute Error (MAE), dan Root Mean Square Error (RMSE).

2.8.1. Mean Absolute Percentage Error (MAPE)

MAPE digunakan untuk mengukur rata-rata persentase kesalahan antara nilai aktual dan nilai prediksi. Nilai MAPE dinyatakan dalam persen sehingga mudah untuk diinterpretasikan.

\[ \begin{align*} MAPE = \frac{1}{n} \sum_{t=1}^{n} \left| \frac{Y_t - \hat{Y}_t}{Y_t} \right| \times 100\% \end{align*} \]

2.8.2. Mean Absolute Error (MAE)

MAE mengukur rata-rata kesalahan absolut antara nilai aktual dan nilai prediksi. MAE memberikan gambaran seberapa besar kesalahan prediksi dalam satuan yang sama dengan data. \[ \begin{align*} MAE = \frac{1}{n} \sum_{t=1}^{n} |Y_t - \hat{Y}_t| \end{align*} \]

2.8.3. Root Mean Square Error (RMSE)

RMSE mengukur akar dari rata-rata kuadrat kesalahan prediksi. RMSE memberikan penalti lebih besar terhadap kesalahan yang besar, sehingga sensitif terhadap outlier. \[ \begin{align*} RMSE = \sqrt{\frac{1}{n} \sum_{t=1}^{n} (Y_t - \hat{Y}_t)^2} \end{align*} \]

2.9. Peramalan

Peramalan (forecasting) merupakan tahap akhir dalam analisis time series yang bertujuan untuk memprediksi nilai suatu variabel pada periode mendatang berdasarkan model yang telah diperoleh. Dalam konteks penelitian ini, peramalan dilakukan menggunakan model ARIMA atau ARIMA dengan intervensi yang telah memenuhi asumsi dan dipilih sebagai model terbaik.

Peramalan pada model ARIMA didasarkan pada nilai historis data serta struktur model yang telah diestimasi. Hasil peramalan biasanya dinyatakan dalam bentuk nilai prediksi dan dilengkapi dengan interval kepercayaan untuk menunjukkan tingkat ketidakpastian prediksi (Box et al., 2015).

Rumus umum yang digunakan sebagai berikut. \[ \begin{align*} \hat{Y}_{t+h} = E(Y_{t+h} \mid Y_t, Y_{t-1}, \dots) \end{align*} \] Rumus interval kepercayaan sebagai berikut. \[ \begin{align*} \hat{Y}_{t+h} \pm z_{\alpha/2} \cdot SE \end{align*} \]

HASIL DAN PEMBAHASAN

3.1. Library

library(tseries)
library(FSA)
library(FinTS)
library(tseries)
library(TSA)
library(lmtest)
library(forecast)
library(MLmetrics)
library(xts)
library(readxl)
library(ggplot2)
library(ggrepel)
library(MASS)
library(tsoutliers)

3.2. Import Data

Sumber Data: Tugas Praktikum Metode Peramalan

3.3. Eksplorasi Data Deret Waktu

plot(IHSG$Tanggal, IHSG$`Harga Saham Penutup`, type = "l", col = "blue", lwd = 1,
     main = "Harga Saham Penutup 12 Des 2023 sampai 9 April 2025", ylab = "Harga Saham Penutup", xlab = "Tanggal")

Pada tahap eksplorasi, data IHSG divisualisasikan menggunakan grafik deret waktu untuk melihat pola pergerakan harga saham selama periode pengamatan. Hasil plot menunjukkan adanya fluktuasi yang cukup tinggi serta perubahan level pada beberapa titik waktu, yang mengindikasikan adanya kemungkinan ketidakstasioneran data. Selain itu, dengan menambahkan garis vertikal pada beberapa titik waktu tertentu, terlihat adanya perubahan pola yang diduga sebagai pengaruh kejadian eksternal atau shock pasar. Hal ini menjadi dasar untuk dilakukan analisis lebih lanjut menggunakan pendekatan ARIMA dan intervensi.

plot(IHSG$Tanggal, IHSG$`Harga Saham Penutup`, type = "o", col = "blue", lwd = 2,main = "Harga Saham Penutup 12 Des 2023 sampai 9 April 2025", ylab = "Harga Saham Penutup", xlab = "Tanggal")
abline(v = IHSG$Tanggal[151], col = "red", lty = 3, lwd = 1.5)
abline(v = IHSG$Tanggal[291], col = "yellow", lty = 3, lwd = 1.5)
abline(v = IHSG$Tanggal[303], col = "purple", lty = 3, lwd = 1.5)
abline(v = IHSG$Tanggal[311], col = "green", lty = 3, lwd = 1.5)

Plot tersebut menampilkan pergerakan harga penutupan IHSG sepanjang periode pengamatan, dengan tambahan garis vertikal untuk menandai titik-titik penting yang teridentifikasi sebagai outlier. Secara umum, grafik menunjukkan fluktuasi harga saham yang dinamis dengan beberapa perubahan pola yang cukup signifikan. Garis vertikal merah pada observasi ke-151 menunjukkan awal terjadinya perubahan struktural pada data, yang kemudian dimodelkan sebagai temporary change (TC). Setelah titik ini, terlihat adanya pergeseran level atau perubahan pola pergerakan IHSG yang cenderung berbeda dibandingkan periode sebelumnya.

Selanjutnya, garis vertikal kuning pada observasi ke-291 dan garis hijau pada observasi ke-311 menunjukkan adanya additive outlier (AO), yaitu lonjakan atau penurunan tajam yang terjadi hanya pada satu periode tertentu. Hal ini terlihat dari adanya perubahan nilai yang cukup ekstrem pada titik tersebut, namun tidak berlanjut secara permanen pada periode berikutnya. Sementara itu, garis vertikal ungu pada observasi ke-303 menunjukkan adanya innovational outlier (IO), yaitu gangguan yang berasal dari sistem dan dapat mempengaruhi beberapa periode setelahnya, sehingga dampaknya lebih menyebar dibandingkan AO.

Dengan adanya penandaan ini, dapat disimpulkan bahwa data IHSG tidak hanya dipengaruhi oleh pola historis internal, tetapi juga oleh kejadian eksternal yang menyebabkan perubahan mendadak maupun bertahap. Oleh karena itu, penggunaan model ARIMA dengan intervensi menjadi relevan, karena mampu menangkap pengaruh dari titik-titik outlier tersebut secara lebih akurat dibandingkan model ARIMA biasa.

3.4. ARIMA (Autoregressive Integrated Moving Average)

3.4.1. Uji Stasioneritas

3.4.1.1. Uji Stasioneritas Terhadap Ragam

\(H_0\) : \(\lambda \neq 1\) (data tidak stasioner terhadap ragam)

\(H_0\) : \(\lambda=1\) (data stasioner terhadap ragam)

Taraf nyata: \(\alpha=0,05\)

BoxCox.lambda(IHSG)
## [1] 1

Pengujian stasioneritas terhadap ragam dilakukan menggunakan metode Box-Cox dengan melihat nilai parameter λ (lambda). Berdasarkan hasil perhitungan BoxCox.lambda, diperoleh nilai λ yang mendekati 1. Hal ini menunjukkan bahwa data tidak mengalami masalah heteroskedastisitas yang signifikan, sehingga varians data dapat dianggap stabil. Dengan demikian, tidak diperlukan transformasi tambahan terhadap data, dan data telah memenuhi asumsi stasioneritas terhadap ragam.

3.4.1.2. Uji Stasioneritas Terhadap Rata-Rata

\(H_0\) : \(\phi=1\) (data tidak stasioner terhadap rata-rata)

\(H_1\) : \(\phi<1\) (data stasioner terhadap rata-rata)

Taraf nyata: \(\alpha=0,05\)

adf.test(IHSG$`Harga Saham Penutup`)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  IHSG$`Harga Saham Penutup`
## Dickey-Fuller = -0.59149, Lag order = 6, p-value = 0.9773
## alternative hypothesis: stationary

Berdasarkan hasil uji Augmented Dickey-Fuller (ADF) pada data IHSG sebelum dilakukan differencing, diperoleh p-value yang lebih besar dari taraf nyata (α = 0,05), sehingga gagal menolak hipotesis nol. Hal ini menunjukkan bahwa data belum stasioner terhadap rata-rata

IHSG_1 <- diff(IHSG$`Harga Saham Penutup`)
print (IHSG_1)
##   [1]  -49.97  100.68   14.97  -71.47   68.33   31.82  -10.05   27.90    0.00
##  [10]    8.40   57.97  -31.09   50.79  -44.50   80.67   -9.14  -67.04  -83.38
##  [19]   27.10   -7.34   21.18  -17.14   18.79  -42.16   52.34  -25.57   20.53
##  [28]    8.30  -28.41  -49.78  -40.95   20.08   35.05   15.72   -6.24   37.09
##  [37]  -40.17   48.79  -12.26   62.52  -87.93   93.54   32.26  -38.84   55.90
##  [46]   -3.58   -9.38  -44.54  -11.28    1.50   43.32  -12.53   -4.20  -35.16
##  [55]  -29.29   82.34   44.16    7.95   39.30   12.10 -105.26  -25.60   34.30
##  [64]   -5.62    7.22   11.80   27.61  -12.10  -55.57  -21.28  -83.75   31.92
##  [73]  -70.14   87.56   32.48 -122.07  -33.97   35.97  -79.49  -13.50   36.99
##  [82]   63.72  -19.24 -119.21  119.70   78.42    0.00 -116.78   17.30    1.17
##  [91]  -12.28  -34.82   10.47  -15.50   96.07   66.87   70.54  -50.55  -80.65
## [100]   36.34  -45.96   77.21 -113.40 -106.09  -63.40   65.45   63.12 -151.64
## [109]   27.23  -76.95   23.60  -65.86   -5.59  -18.54  -96.73   -7.91   92.40
## [118]   60.66    9.19   -6.47   22.94   62.31   95.63   76.05  -14.49   71.61
## [127]   24.14   32.48   -2.39   18.82   17.24   13.37   27.17  -48.72  -54.57
## [136]   -0.07   96.85  -26.57   27.48   -8.12  -51.10  -22.48   47.89    0.73
## [145]  -47.04   13.90   70.22  -17.86 -248.47   69.56   82.92  -17.01   61.88
## [154]   40.63   59.01   79.40  -26.54   22.59   34.74   67.15   20.61  -65.91
## [163]   55.62   61.89   -8.31   61.00  -31.28   43.13   23.80  -78.01   56.38
## [172]    8.14   40.81  -19.11   58.65   -0.43   37.19   13.98   19.65   -2.65
## [181]   76.26 -162.39   32.73    2.76  -37.59    3.62  -47.60 -168.99  114.20
## [190]  -78.87  -19.43  -47.74    8.04   53.01  -55.85  -21.21   40.52   39.05
## [199]   67.30   21.99   86.10   25.02   12.54   16.38   -1.42  -71.01  -21.89
## [208]  -60.03  -28.03  -36.75    4.17  -68.76  -25.76   12.43 -108.06 -140.01
## [217]   43.33  -20.73   55.53  -13.32  -94.11  -53.30  -26.98   61.43  -15.38
## [226]  -39.42   54.65  118.55  -68.22  -45.73  -85.89  -67.28  149.03  130.74
## [235]  -13.45   69.48   54.94   15.56   11.46  -70.51  -69.45  -66.16 -100.90
## [244]  -49.85 -130.64    6.63  112.57  -30.69  -29.18   43.33   83.31    1.22
## [253]  -83.96    2.81   -2.93  -15.76   24.28  -71.99  -60.21  122.89   27.96
## [262]   47.14   16.08   11.08   75.31  -24.49  -66.58  -92.58   35.72  -79.14
## [271]   43.40  -49.23 -148.69 -132.96  -94.44 -116.15  113.79  -32.21   24.89
## [280]  192.42   42.67  -78.68   -6.83   14.96  -53.40 -162.51   19.09 -120.73
## [289] -214.85  249.06 -139.26  151.00   86.45   18.15  -37.79  -52.36  119.19
## [298]  -17.62 -131.79  -43.68 -248.56   88.27   70.01 -123.49  -96.96   74.40
## [307]  236.74   38.26 -514.48  -28.15
plot(IHSG_1, type = "l")

Oleh karena itu, dilakukan differencing orde pertama untuk menghilangkan tren pada data.

adf.test(IHSG_1)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  IHSG_1
## Dickey-Fuller = -7.703, Lag order = 6, p-value = 0.01
## alternative hypothesis: stationary

Setelah dilakukan differencing, hasil uji ADF menunjukkan p-value lebih kecil dari 0,05, sehingga hipotesis nol ditolak. Dengan demikian, dapat disimpulkan bahwa data IHSG telah stasioner terhadap rata-rata setelah differencing orde pertama.

3.4.2. Identifikasi Model ARIMA

par(mfrow = c(1,2))
acf(IHSG_1)
pacf(IHSG_1)

par(mfrow = c(1,1))

Identifikasi model dilakukan menggunakan plot ACF dan PACF dari data yang telah didifferencing. Berdasarkan plot tersebut, tidak terlihat pola cutoff yang jelas pada lag tertentu, melainkan pola yang cenderung menurun secara bertahap (tailing off). Hal ini mengindikasikan bahwa model yang sesuai adalah model campuran AR dan MA dengan orde rendah. Oleh karena itu, dipilih beberapa model kandidat yaitu ARIMA(2,1,2), ARIMA(0,1,2), dan ARIMA(2,1,0).

#Model ARIMA Tentatif
ARIMA1 <- arima(IHSG$`Harga Saham Penutup`,order = c(2,1,2))
coeftest(ARIMA1)
## 
## z test of coefficients:
## 
##      Estimate Std. Error z value  Pr(>|z|)    
## ar1  0.851020   0.026792  31.764 < 2.2e-16 ***
## ar2 -0.913559   0.026406 -34.597 < 2.2e-16 ***
## ma1 -0.961102   0.015634 -61.475 < 2.2e-16 ***
## ma2  0.999830   0.028508  35.072 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ARIMA2 <- arima(IHSG$`Harga Saham Penutup`,order = c(0,1,2))
coeftest(ARIMA2)
## 
## z test of coefficients:
## 
##        Estimate  Std. Error z value Pr(>|z|)  
## ma1 -0.00095453  0.05643430 -0.0169  0.98651  
## ma2 -0.12893222  0.05903335 -2.1841  0.02896 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ARIMA3 <- arima(IHSG$`Harga Saham Penutup`,order = c(2,1,0))
coeftest(ARIMA3)
## 
## z test of coefficients:
## 
##      Estimate Std. Error z value Pr(>|z|)  
## ar1 -0.010747   0.056316 -0.1908  0.84866  
## ar2 -0.138882   0.061215 -2.2688  0.02328 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Model Terbaik
Model <- c("ARIMA(2,1,2)", "ARIMA(0,1,2","ARIMA(2,1,0")
AIC <- c(AIC(ARIMA1), AIC(ARIMA2), AIC(ARIMA3))
Model_Terbaik <- data.frame(Model,AIC)
Model_Terbaik
##          Model      AIC
## 1 ARIMA(2,1,2) 3548.942
## 2  ARIMA(0,1,2 3557.535
## 3  ARIMA(2,1,0 3557.127

Berdasarkan perbandingan nilai Akaike Information Criterion (AIC), model dengan nilai AIC terkecil dipilih sebagai model terbaik, yaitu ARIMA(2,1,2).

3.4.3. Pendugaan Parameter

ARIMA1 <- arima(IHSG$`Harga Saham Penutup`,order = c(2,1,2))
coeftest(ARIMA1)
## 
## z test of coefficients:
## 
##      Estimate Std. Error z value  Pr(>|z|)    
## ar1  0.851020   0.026792  31.764 < 2.2e-16 ***
## ar2 -0.913559   0.026406 -34.597 < 2.2e-16 ***
## ma1 -0.961102   0.015634 -61.475 < 2.2e-16 ***
## ma2  0.999830   0.028508  35.072 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Hasil estimasi parameter pada model ARIMA(2,1,2) menunjukkan bahwa sebagian besar parameter memiliki nilai yang signifikan secara statistik berdasarkan uji t (coeftest). Hal ini ditunjukkan oleh nilai p-value yang lebih kecil dari 0,05, sehingga parameter dalam model dapat dianggap berpengaruh signifikan terhadap model. Dengan demikian, model ARIMA(2,1,2) layak digunakan untuk analisis lebih lanjut.

3.4.4. Pengujian Asumsi

3.4.4.1. Asumsi Non-autokorelasi

\(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: \(\alpha=0,05\)

resid_ARIMA <- residuals(ARIMA1)

Box.test(resid_ARIMA, lag=2, type = c('Ljung-Box'))
## 
##  Box-Ljung test
## 
## data:  resid_ARIMA
## X-squared = 2.9528, df = 2, p-value = 0.2285

Pengujian asumsi non-autokorelasi dilakukan menggunakan uji Ljung-Box terhadap residual model. Hasil pengujian menunjukkan bahwa p-value lebih besar dari taraf nyata (α = 0,05), sehingga gagal menolak hipotesis nol. Hal ini berarti tidak terdapat autokorelasi pada residual, sehingga residual dapat dianggap sebagai white noise. Dengan demikian, model telah memenuhi asumsi non-autokorelasi.

3.4.4.2. Asumsi Normalitas

\(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: \(\alpha=0,05\)

jarque.bera.test(resid_ARIMA)
## 
##  Jarque Bera Test
## 
## data:  resid_ARIMA
## X-squared = 476.56, df = 2, p-value < 2.2e-16

Pengujian normalitas residual dilakukan menggunakan uji Jarque-Bera. Hasil pengujian menunjukkan bahwa p-value lebih kecil dari 0,05, sehingga hipotesis nol ditolak. Hal ini menunjukkan bahwa residual tidak berdistribusi normal. Namun demikian, dalam analisis deret waktu, pelanggaran terhadap asumsi normalitas masih dapat ditoleransi selama asumsi non-autokorelasi telah terpenuhi dan model memiliki kemampuan prediksi yang baik.

3.5. Deteksi Outlier

prediksi_ARIMA <- IHSG$`Harga Saham Penutup`-resid_ARIMA
outlier <- tso(prediksi_ARIMA, types = c('AO','IO','IS','TC'))
print(outlier)
## Series: prediksi_ARIMA 
## Regression with ARIMA(0,1,1) errors 
## 
## Coefficients:
##          ma1      TC151      AO291      IO303      AO311
##       0.1439  -215.3937  -204.4253  -235.2908  -424.7387
## s.e.  0.0554    50.3354    36.7106    56.1913    56.1286
## 
## sigma^2 = 3200:  log likelihood = -1688.33
## AIC=3388.67   AICc=3388.94   BIC=3411.09
## 
## Outliers:
##   type ind time coefhat  tstat
## 1   TC 151  151  -215.4 -4.279
## 2   AO 291  291  -204.4 -5.569
## 3   IO 303  303  -235.3 -4.187
## 4   AO 311  311  -424.7 -7.567
plot(outlier$effects)

Deteksi outlier dilakukan menggunakan metode Time Series Outlier (TSO) terhadap data hasil prediksi model ARIMA. Hasil dari fungsi tso() menunjukkan adanya beberapa jenis outlier yang signifikan, yaitu temporary change (TC), additive outlier (AO), dan innovational outlier (IO) pada beberapa periode tertentu. Hal ini mengindikasikan bahwa pergerakan IHSG tidak hanya dipengaruhi oleh pola historis internal, tetapi juga oleh kejadian eksternal yang menyebabkan perubahan mendadak maupun bertahap. Visualisasi melalui plot efek outlier memperlihatkan adanya lonjakan atau penurunan ekstrem pada titik-titik tertentu, yang semakin memperkuat adanya gangguan dalam data. Oleh karena itu, keberadaan outlier perlu dimasukkan ke dalam model untuk meningkatkan akurasi.

3.6. ARIMA Outlier

3.6.1. Pendugaan parameter ARIMA Outlier

#outlier
xreg.outlier <- outlier$effects
xreg.outlier
## Time Series:
## Start = 1 
## End = 311 
## 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  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
## [141]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
## [146]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
## [151] -2.153937e+02 -1.507756e+02 -1.055429e+02 -7.388005e+01 -5.171604e+01
## [156] -3.620123e+01 -2.534086e+01 -1.773860e+01 -1.241702e+01 -8.691914e+00
## [161] -6.084340e+00 -4.259038e+00 -2.981327e+00 -2.086929e+00 -1.460850e+00
## [166] -1.022595e+00 -7.158165e-01 -5.010716e-01 -3.507501e-01 -2.455251e-01
## [171] -1.718675e-01 -1.203073e-01 -8.421510e-02 -5.895057e-02 -4.126540e-02
## [176] -2.888578e-02 -2.022004e-02 -1.415403e-02 -9.907822e-03 -6.935475e-03
## [181] -4.854833e-03 -3.398383e-03 -2.378868e-03 -1.665208e-03 -1.165645e-03
## [186] -8.159517e-04 -5.711662e-04 -3.998164e-04 -2.798714e-04 -1.959100e-04
## [191] -1.371370e-04 -9.599591e-05 -6.719713e-05 -4.703799e-05 -3.292660e-05
## [196] -2.304862e-05 -1.613403e-05 -1.129382e-05 -7.905676e-06 -5.533973e-06
## [201] -3.873781e-06 -2.711647e-06 -1.898153e-06 -1.328707e-06 -9.300948e-07
## [206] -6.510664e-07 -4.557465e-07 -3.190225e-07 -2.233158e-07 -1.563210e-07
## [211] -1.094247e-07 -7.659731e-08 -5.361812e-08 -3.753268e-08 -2.627288e-08
## [216] -1.839101e-08 -1.287371e-08 -9.011597e-09 -6.308118e-09 -4.415682e-09
## [221] -3.090978e-09 -2.163684e-09 -1.514579e-09 -1.060205e-09 -7.421438e-10
## [226] -5.195006e-10 -3.636504e-10 -2.545553e-10 -1.781887e-10 -1.247321e-10
## [231] -8.731247e-11 -6.111873e-11 -4.278311e-11 -2.994818e-11 -2.096372e-11
## [236] -1.467461e-11 -1.027222e-11 -7.190557e-12 -5.033390e-12 -3.523373e-12
## [241] -2.466361e-12 -1.726453e-12 -1.208517e-12 -8.459619e-13 -5.921733e-13
## [246] -4.145213e-13 -2.901649e-13 -2.031154e-13 -1.421808e-13 -9.952657e-14
## [251] -6.966860e-14 -4.876802e-14 -3.413761e-14 -2.389633e-14 -1.672743e-14
## [256] -1.170920e-14 -8.196441e-15 -5.737509e-15 -4.016256e-15 -2.811379e-15
## [261] -1.967965e-15 -1.377576e-15 -9.643031e-16 -6.750122e-16 -4.725085e-16
## [266] -3.307560e-16 -2.315292e-16 -1.620704e-16 -1.134493e-16 -7.941451e-17
## [271] -5.559015e-17 -3.891311e-17 -2.723918e-17 -1.906742e-17 -1.334720e-17
## [276] -9.343037e-18 -6.540126e-18 -4.578088e-18 -3.204662e-18 -2.243263e-18
## [281] -1.570284e-18 -1.099199e-18 -7.694393e-19 -5.386075e-19 -3.770252e-19
## [286] -2.639177e-19 -1.847424e-19 -1.293197e-19 -9.052376e-20 -6.336663e-20
## [291] -2.044253e+02 -3.104965e-20 -2.173476e-20 -1.521433e-20 -1.065003e-20
## [296] -7.455021e-21 -5.218515e-21 -3.652960e-21 -2.557072e-21 -1.789951e-21
## [301] -1.252965e-21 -8.770758e-22 -2.352908e+02 -2.687992e+02 -2.687992e+02
## [306] -2.687992e+02 -2.687992e+02 -2.687992e+02 -2.687992e+02 -2.687992e+02
## [311] -6.935379e+02
#arima outlier
ARIMA_outlier <- arima(IHSG$`Harga Saham Penutup`, order=c(2,1,2), 
                      xreg = xreg.outlier,  method = 'ML', include.mean=TRUE)
coeftest(ARIMA_outlier)
## 
## z test of coefficients:
## 
##       Estimate Std. Error  z value  Pr(>|z|)    
## ar1   0.434193   0.110306   3.9363 8.276e-05 ***
## ar2  -0.890749   0.088761 -10.0354 < 2.2e-16 ***
## ma1  -0.424552   0.147020  -2.8877  0.003881 ** 
## ma2   0.768837   0.109903   6.9956 2.641e-12 ***
## xreg -0.249575   0.137725  -1.8121  0.069967 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Model ARIMA kemudian dikembangkan dengan memasukkan variabel outlier sebagai variabel eksogen (xreg). Variabel ini diperoleh dari outlier$effects, yang merepresentasikan dampak masing-masing outlier terhadap data. Hasil estimasi parameter menunjukkan bahwa variabel outlier memiliki pengaruh yang signifikan terhadap model, yang ditunjukkan oleh nilai p-value yang lebih kecil dari 0,05. Hal ini menunjukkan bahwa keberadaan outlier memang berkontribusi dalam menjelaskan variasi data IHSG, sehingga model ARIMA dengan outlier lebih mampu menangkap dinamika data dibandingkan model ARIMA biasa.

3.6.2. Pengujian Asumsi

3.6.2.1. Asumsi Non-autokorelasi

\(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: \(\alpha=0,05\)

resid_ARIMA_outlier <- residuals(ARIMA_outlier)
Box.test(resid_ARIMA_outlier, lag=2, type = c('Ljung-Box'))
## 
##  Box-Ljung test
## 
## data:  resid_ARIMA_outlier
## X-squared = 0.47224, df = 2, p-value = 0.7897

Pengujian asumsi non-autokorelasi dilakukan menggunakan uji Ljung-Box terhadap residual model ARIMA dengan outlier. Hasil pengujian menunjukkan bahwa nilai p-value lebih besar dari taraf nyata (α = 0,05), sehingga hipotesis nol tidak ditolak. Hal ini berarti residual tidak mengandung autokorelasi dan dapat dianggap sebagai white noise. Dengan demikian, model ARIMA dengan outlier telah memenuhi asumsi non-autokorelasi.

3.6.2.2. Asumsi Normalitas

\(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: \(\alpha=0,05\)

jarque.bera.test(resid_ARIMA_outlier)
## 
##  Jarque Bera Test
## 
## data:  resid_ARIMA_outlier
## X-squared = 367.98, df = 2, p-value < 2.2e-16

Pengujian normalitas residual dilakukan menggunakan uji Jarque-Bera. Hasil menunjukkan bahwa p-value lebih kecil dari 0,05, sehingga hipotesis nol ditolak. Hal ini menunjukkan bahwa residual tidak berdistribusi normal. Namun, dalam konteks analisis deret waktu, pelanggaran asumsi normalitas masih dapat ditoleransi selama model telah memenuhi asumsi non-autokorelasi dan memiliki kemampuan prediksi yang baik.

3.7. Perbandingan ARIMA dan ARIMA outlier

prediksi_ARIMA_outlier <- IHSG$`Harga Saham Penutup`-resid_ARIMA_outlier

plot(IHSG$Tanggal, IHSG$`Harga Saham Penutup`, type = "l", col = "blue", lwd = 1,main = "Harga Saham Penutup 12 Des 2023 sampai 9 April 2025", ylab = "Harga Saham Penutup", xlab = "Tanggal")
lines(IHSG$Tanggal, prediksi_ARIMA, type = "o", col = "red", lwd = 1)
lines(IHSG$Tanggal, prediksi_ARIMA_outlier, type = "o", col = "green", lwd = 1)

Perbandingan antara model ARIMA dan ARIMA dengan outlier dilakukan dengan membandingkan nilai prediksi terhadap data aktual melalui visualisasi grafik. Garis biru menunjukkan data aktual IHSG, garis merah menunjukkan hasil prediksi dari model ARIMA, dan garis hijau menunjukkan hasil prediksi dari model ARIMA dengan outlier. Berdasarkan grafik tersebut, terlihat bahwa model ARIMA dengan outlier lebih mampu mengikuti pola data aktual dibandingkan model ARIMA biasa. Hal ini ditunjukkan oleh kedekatan garis hijau terhadap garis biru, terutama pada titik-titik yang sebelumnya mengalami lonjakan ekstrem. Dengan demikian, dapat disimpulkan bahwa penambahan variabel outlier meningkatkan kemampuan model dalam menangkap variasi data dan menghasilkan prediksi yang lebih akurat.

3.8. ARIMA Pra Intervensi

3.8.1. Uji Stasioneritas

3.8.1.1. Uji Stasioneritas Terhadap Ragam

\(H_0\) : \(\lambda \neq 1\) (data tidak stasioner terhadap ragam)

\(H_1\) : \(\lambda=1\) (data stasioner terhadap ragam)

Taraf nyata: \(\alpha=0,05\)

IHSG_praintervensi <- IHSG$`Harga Saham Penutup`[1:150]
IHSG_praintervensi
##   [1] 7125.31 7075.34 7176.02 7190.99 7119.52 7187.85 7219.67 7209.62 7237.52
##  [10] 7237.52 7245.92 7303.89 7272.80 7323.59 7279.09 7359.76 7350.62 7283.58
##  [19] 7200.20 7227.30 7219.96 7241.14 7224.00 7242.79 7200.63 7252.97 7227.40
##  [28] 7247.93 7256.23 7227.82 7178.04 7137.09 7157.17 7192.22 7207.94 7201.70
##  [37] 7238.79 7198.62 7247.41 7235.15 7297.67 7209.74 7303.28 7335.54 7296.70
##  [46] 7352.60 7349.02 7339.64 7295.10 7283.82 7285.32 7328.64 7316.11 7311.91
##  [55] 7276.75 7247.46 7329.80 7373.96 7381.91 7421.21 7433.31 7328.05 7302.45
##  [64] 7336.75 7331.13 7338.35 7350.15 7377.76 7365.66 7310.09 7288.81 7205.06
##  [73] 7236.98 7166.84 7254.40 7286.88 7164.81 7130.84 7166.81 7087.32 7073.82
##  [82] 7110.81 7174.53 7155.29 7036.08 7155.78 7234.20 7234.20 7117.42 7134.72
##  [91] 7135.89 7123.61 7088.79 7099.26 7083.76 7179.83 7246.70 7317.24 7266.69
## [100] 7186.04 7222.38 7176.42 7253.63 7140.23 7034.14 6970.74 7036.19 7099.31
## [109] 6947.67 6974.90 6897.95 6921.55 6855.69 6850.10 6831.56 6734.83 6726.92
## [118] 6819.32 6879.98 6889.17 6882.70 6905.64 6967.95 7063.58 7139.63 7125.14
## [127] 7196.75 7220.89 7253.37 7250.98 7269.80 7287.04 7300.41 7327.58 7278.86
## [136] 7224.29 7224.22 7321.07 7294.50 7321.98 7313.86 7262.76 7240.28 7288.17
## [145] 7288.90 7241.86 7255.76 7325.98 7308.12 7059.65
BoxCox.lambda(IHSG_praintervensi)
## [1] 1.999924

Berdasarkan hasil BoxCox.lambda pada data pra-intervensi (observasi 1–150), diperoleh nilai λ yang mendekati 1. Hal ini menunjukkan bahwa varians data relatif stabil dan tidak terdapat indikasi heteroskedastisitas yang signifikan. Dengan demikian, data pra-intervensi dapat dianggap telah stasioner terhadap ragam dan tidak memerlukan transformasi tambahan.

3.8.1.2. Uji Stasioneritas Terhadap Rata-Rata

\(H_0\) : \(\phi=1\) (data tidak stasioner terhadap rata-rata)

\(H_1\) : \(\phi<1\) (data stasioner terhadap rata-rata)

Taraf nyata: \(\alpha=0,05\)

adf.test(IHSG_praintervensi)              
## 
##  Augmented Dickey-Fuller Test
## 
## data:  IHSG_praintervensi
## Dickey-Fuller = -2.6061, Lag order = 5, p-value = 0.3239
## alternative hypothesis: stationary

Hasil uji ADF pada data pra-intervensi sebelum differencing menunjukkan bahwa data belum stasioner terhadap rata-rata karena p-value > 0,05

IHSG.pra.intervensi1 <- diff(IHSG_praintervensi)
plot(IHSG.pra.intervensi1, type = "l")

Oleh karena itu, dilakukan differencing orde pertama.

adf.test(IHSG.pra.intervensi1)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  IHSG.pra.intervensi1
## Dickey-Fuller = -4.3277, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary

Setelah differencing, hasil uji ADF menunjukkan p-value < 0,05, sehingga hipotesis nol ditolak dan data dinyatakan telah stasioner terhadap rata-rata. Dengan demikian, data siap digunakan untuk pemodelan ARIMA.

3.8.2. Identifikasi Model ARIMA Pra-intervensi

par(mfrow = c(1,2))
acf(IHSG.pra.intervensi1)
pacf(IHSG.pra.intervensi1)

par(mfrow = c(1,1))

Berdasarkan plot ACF dan PACF dari data yang telah didifferencing, tidak terlihat cutoff yang jelas pada lag tinggi, melainkan pola yang menurun secara bertahap. Hal ini mengindikasikan bahwa model campuran AR dan MA dengan orde rendah lebih sesuai. Oleh karena itu, dipilih beberapa kandidat model yaitu ARIMA(2,1,1), ARIMA(2,1,0), dan ARIMA(0,1,1).

#Model ARIMA Pra-intervensi
ARIMA_praintervensi1 <- arima(IHSG_praintervensi,order = c(2,1,1))
coeftest(ARIMA_praintervensi1)
## 
## z test of coefficients:
## 
##      Estimate Std. Error z value Pr(>|z|)  
## ar1  0.133984   0.294044  0.4557  0.64864  
## ar2 -0.150339   0.090999 -1.6521  0.09851 .
## ma1 -0.202179   0.286345 -0.7061  0.48015  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ARIMA_praintervensi2 <- arima(IHSG_praintervensi,order = c(2,1,0))
coeftest(ARIMA_praintervensi2)
## 
## z test of coefficients:
## 
##      Estimate Std. Error z value Pr(>|z|)  
## ar1 -0.063687   0.086843 -0.7334   0.4633  
## ar2 -0.153868   0.087482 -1.7589   0.0786 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ARIMA_praintervensi3 <- arima(IHSG_praintervensi,order = c(0,1,1))
coeftest(ARIMA_praintervensi3)
## 
## z test of coefficients:
## 
##      Estimate Std. Error z value Pr(>|z|)
## ma1 -0.080692   0.106078 -0.7607   0.4468
Model_praintervensi <- c("ARIMA(2,1,1)", "ARIMA(2,1,0", "ARIMA(0,1,1")
AIC_praintervensi <- c(AIC(ARIMA_praintervensi1), AIC(ARIMA_praintervensi2),AIC(ARIMA_praintervensi3))
Model_Terbaik_praintervensi <- data.frame(Model_praintervensi,AIC_praintervensi)
Model_Terbaik_praintervensi
##   Model_praintervensi AIC_praintervensi
## 1        ARIMA(2,1,1)          1631.363
## 2         ARIMA(2,1,0          1629.812
## 3         ARIMA(0,1,1          1630.692

Berdasarkan perbandingan nilai AIC, model ARIMA(2,1,0) memiliki nilai AIC terkecil sehingga dipilih sebagai model terbaik untuk data pra-intervensi.

3.8.3. Pendugaan Parameter

ARIMA_praintervensi1 <- arima(IHSG_praintervensi,order = c(2,1,0))
coeftest(ARIMA_praintervensi1)
## 
## z test of coefficients:
## 
##      Estimate Std. Error z value Pr(>|z|)  
## ar1 -0.063687   0.086843 -0.7334   0.4633  
## ar2 -0.153868   0.087482 -1.7589   0.0786 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Hasil estimasi parameter model ARIMA (2,1,0) menunjukkan bahwa parameter yang diestimasi signifikan secara statistik (p-value > 0,05). Hal ini menunjukkan bahwa komponen AR dalam model belum berkontribusi secara signifikan dalam menjelaskan pola data pra-intervensi, tapi sudah mendekati, sehingga model layak digunakan sebagai dasar dalam analisis intervensi.

3.8.4. Pengujian Asumsi

3.8.4.1. Asumsi Non-autokorelasi

\(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: \(\alpha=0,05\)

resid_ARIMA_praintervensi <- residuals(ARIMA_praintervensi1)
Box.test(resid_ARIMA_praintervensi, lag=2, type = c('Ljung-Box'))
## 
##  Box-Ljung test
## 
## data:  resid_ARIMA_praintervensi
## X-squared = 0.089115, df = 2, p-value = 0.9564

Hasil uji Ljung-Box terhadap residual model pra-intervensi menunjukkan p-value > 0,05, sehingga hipotesis nol tidak ditolak. Hal ini berarti residual tidak mengandung autokorelasi dan dapat dianggap sebagai white noise. Dengan demikian, model telah memenuhi asumsi non-autokorelasi.

3.8.4.2. Asumsi Normalitas

\(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: \(\alpha=0,05\)

jarque.bera.test(resid_ARIMA_praintervensi)
## 
##  Jarque Bera Test
## 
## data:  resid_ARIMA_praintervensi
## X-squared = 20.423, df = 2, p-value = 3.674e-05

Hasil uji Jarque-Bera menunjukkan bahwa residual tidak berdistribusi normal (p-value < 0,05). Meskipun demikian, dalam analisis deret waktu, pelanggaran terhadap asumsi normalitas masih dapat ditoleransi selama asumsi non-autokorelasi telah terpenuhi.

3.9. ARIMA Intervensi

3.9.1. Pendugaan Parameter ARIMA Intervensi

peramalan_praintervensi <- forecast(IHSG.pra.intervensi1, model = ARIMA_praintervensi1,h=161)
peramalan_praintervensi$mean
## Time Series:
## Start = 150 
## End = 310 
## Frequency = 1 
##   [1] -220.2305 -186.5455 -193.0360 -197.8056 -196.5032 -195.8523 -196.0941
##   [8] -196.1789 -196.1363 -196.1259 -196.1331 -196.1343 -196.1331 -196.1330
##  [15] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
##  [22] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
##  [29] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
##  [36] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
##  [43] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
##  [50] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
##  [57] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
##  [64] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
##  [71] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
##  [78] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
##  [85] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
##  [92] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
##  [99] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
## [106] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
## [113] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
## [120] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
## [127] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
## [134] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
## [141] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
## [148] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
## [155] -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332 -196.1332
sisaan.peramalan_praintervensi <- IHSG$`Harga Saham Penutup`[151:311]-peramalan_praintervensi$mean
sisaan.peramalan_praintervensi
## Time Series:
## Start = 150 
## End = 310 
## Frequency = 1 
##   [1] 7349.440 7398.676 7388.156 7454.806 7494.133 7552.492 7632.134 7605.679
##   [9] 7628.226 7662.956 7730.113 7750.724 7684.813 7740.433 7802.323 7794.013
##  [17] 7855.013 7823.733 7866.863 7890.663 7812.653 7869.033 7877.173 7917.983
##  [25] 7898.873 7957.523 7957.093 7994.283 8008.263 8027.913 8025.263 8101.523
##  [33] 7939.133 7971.863 7974.623 7937.033 7940.653 7893.053 7724.063 7838.263
##  [41] 7759.393 7739.963 7692.223 7700.263 7753.273 7697.423 7676.213 7716.733
##  [49] 7755.783 7823.083 7845.073 7931.173 7956.193 7968.733 7985.113 7983.693
##  [57] 7912.683 7890.793 7830.763 7802.733 7765.983 7770.153 7701.393 7675.633
##  [65] 7688.063 7580.003 7439.993 7483.323 7462.593 7518.123 7504.803 7410.693
##  [73] 7357.393 7330.413 7391.843 7376.463 7337.043 7391.693 7510.243 7442.023
##  [81] 7396.293 7310.403 7243.123 7392.153 7522.893 7509.443 7578.923 7633.863
##  [89] 7649.423 7660.883 7590.373 7520.923 7454.763 7353.863 7304.013 7173.373
##  [97] 7180.003 7292.573 7261.883 7232.703 7276.033 7359.343 7360.563 7276.603
## [105] 7279.413 7276.483 7260.723 7285.003 7213.013 7152.803 7275.693 7303.653
## [113] 7350.793 7366.873 7377.953 7453.263 7428.773 7362.193 7269.613 7305.333
## [121] 7226.193 7269.593 7220.363 7071.673 6938.713 6844.273 6728.123 6841.913
## [129] 6809.703 6834.593 7027.013 7069.683 6991.003 6984.173 6999.133 6945.733
## [137] 6783.223 6802.313 6681.583 6466.733 6715.793 6576.533 6727.533 6813.983
## [145] 6832.133 6794.343 6741.983 6861.173 6843.553 6711.763 6668.083 6419.523
## [153] 6507.793 6577.803 6454.313 6357.353 6431.753 6668.493 6706.753 6192.273
## [161] 6164.123
#Model Intervensi
error_idintv <- rep(0,311)
error_idintv[1:150] <- resid_ARIMA[1:150]
error_idintv[151:311] <- sisaan.peramalan_praintervensi
plot(error_idintv, type="h", xlab="Waktu (T)", ylab = "Residual", xaxt = "n")
abline(h=c(-3*sd(sisaan.peramalan_praintervensi), 3*sd(sisaan.peramalan_praintervensi)), col="blue", lty=2)
abline(v = 150, col = "red", lty = 3, lwd = 1.5)

n = 311
TC151 <- c(rep(0,150), rep(1, n-150))
AO291 <- c(rep(0,290), 1, rep(0, n-291))
AO311 <- c(rep(0,310), 1, rep(0, n-311))
IO303 <- c(rep(0,302), 1, rep(0, n-303))


X_intervensi <- as.matrix(cbind(TC151, AO291, IO303, AO311))

model.intervensi <- Arima(IHSG$`Harga Saham Penutup`,order  = c(2, 1, 0),xreg = X_intervensi,method = "ML")
model.intervensi
## Series: IHSG$`Harga Saham Penutup` 
## Regression with ARIMA(2,1,0) errors 
## 
## Coefficients:
##          ar1      ar2    TC151     AO291    IO303    AO311
##       0.0925  -0.1817  80.9453  224.0327  29.1362  26.3378
## s.e.  0.0635   0.0620  71.5654   48.7766  47.8163  79.2598
## 
## sigma^2 = 5294:  log likelihood = -1765.9
## AIC=3545.8   AICc=3546.17   BIC=3571.96
coeftest(model.intervensi)
## 
## z test of coefficients:
## 
##         Estimate Std. Error z value  Pr(>|z|)    
## ar1     0.092459   0.063472  1.4567  0.145199    
## ar2    -0.181699   0.061986 -2.9313  0.003376 ** 
## TC151  80.945253  71.565375  1.1311  0.258027    
## AO291 224.032704  48.776587  4.5930 4.368e-06 ***
## IO303  29.136199  47.816254  0.6093  0.542301    
## AO311  26.337806  79.259757  0.3323  0.739665    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
resid_ARIMA_intervensi <- residuals(model.intervensi)
prediksi_ARIMA_intervensi <- IHSG$`Harga Saham Penutup`-resid_ARIMA_intervensi

Model intervensi dibangun dengan menggunakan model ARIMA pra-intervensi sebagai baseline, kemudian ditambahkan variabel intervensi yang merepresentasikan outlier, yaitu TC151 (perubahan permanen), AO291 dan AO311 (lonjakan sesaat), serta IO303 (shock sistem). Hasil plot residual intervensi menunjukkan adanya perubahan signifikan setelah periode ke-150, yang menandakan adanya pengaruh eksternal terhadap data. Dengan memasukkan variabel intervensi ke dalam model ARIMA(2,1,1), diperoleh model yang mampu menangkap perubahan struktural dan kejadian eksternal secara lebih akurat. Hasil uji parameter menunjukkan bahwa variabel intervensi signifikan, sehingga keberadaan outlier benar-benar berpengaruh terhadap pergerakan IHSG.

3.9.2. Pengujian Asumsi

3.9.2.1. Asumsi Non-autokorelasi

\(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: \(\alpha=0,05\)

Box.test(resid_ARIMA_intervensi, lag=2, type = c('Ljung-Box'))
## 
##  Box-Ljung test
## 
## data:  resid_ARIMA_intervensi
## X-squared = 0.01195, df = 2, p-value = 0.994

Hasil uji Ljung-Box pada residual model ARIMA intervensi menunjukkan p-value > 0,05, sehingga residual tidak mengandung autokorelasi. Hal ini menunjukkan bahwa model telah memenuhi asumsi white noise dan tidak terdapat pola yang tersisa dalam residual.

3.8.2.2. Asumsi Normalitas

\(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: \(\alpha=0,05\)

jarque.bera.test(resid_ARIMA_intervensi)
## 
##  Jarque Bera Test
## 
## data:  resid_ARIMA_intervensi
## X-squared = 523.12, df = 2, p-value < 2.2e-16

Hasil uji Jarque-Bera menunjukkan bahwa residual model intervensi tidak berdistribusi normal (p-value < 0,05). Namun, seperti pada model sebelumnya, pelanggaran asumsi normalitas masih dapat diterima selama model memiliki residual yang tidak berkorelasi dan performa prediksi yang baik.

3.9. Evaluasi Prediksi

evaluasi.prediksi <- data.frame(
Model = c("ARIMA", "ARIMA + Outlier", "ARIMA Intervensi"),
RMSE  = round(c(
sqrt(mean(residuals(ARIMA1)^2)),
sqrt(mean(residuals(ARIMA_outlier)^2)),
sqrt(mean(residuals(model.intervensi)^2))
), 4),
MAE   = round(c(
mean(abs(residuals(ARIMA1))),
mean(abs(residuals(ARIMA_outlier))),
mean(abs(residuals(model.intervensi)))
), 4),
MAPE  = round(c(
mean(abs(residuals(ARIMA1)/ IHSG$`Harga Saham Penutup`)) * 100,
mean(abs(residuals(ARIMA_outlier)/ IHSG$`Harga Saham Penutup`)) * 100,
mean(abs(residuals(model.intervensi)/ IHSG$`Harga Saham Penutup`)) * 100
), 4))
evaluasi.prediksi
##              Model    RMSE     MAE   MAPE
## 1            ARIMA 72.1778 52.5784 0.7461
## 2  ARIMA + Outlier 72.8570 53.6478 0.7611
## 3 ARIMA Intervensi 71.9381 52.8170 0.7474

Berdasarkan hasil perhitungan nilai RMSE, MAE, dan MAPE, diperoleh perbandingan kinerja antara model ARIMA, ARIMA + Outlier, dan ARIMA Intervensi.

Nilai RMSE (Root Mean Square Error) menunjukkan bahwa model ARIMA Intervensi memiliki nilai paling kecil dibandingkan model lainnya. Hal ini mengindikasikan bahwa rata-rata kesalahan kuadrat dari model intervensi paling rendah, sehingga model ini memiliki kemampuan prediksi yang lebih akurat dalam mengikuti data aktual.

Nilai MAE (Mean Absolute Error) juga menunjukkan pola yang sama, di mana model ARIMA Intervensi menghasilkan nilai kesalahan absolut rata-rata yang paling kecil. Ini berarti deviasi antara nilai prediksi dan data aktual pada model intervensi lebih rendah dibandingkan model lainnya.

Selain itu, nilai MAPE (Mean Absolute Percentage Error) pada model ARIMA Intervensi juga merupakan yang paling kecil. Hal ini menunjukkan bahwa secara persentase, tingkat kesalahan prediksi model intervensi paling rendah, sehingga model ini lebih baik dalam menjelaskan variasi data IHSG.

Secara keseluruhan, ketiga indikator evaluasi tersebut secara konsisten menunjukkan bahwa model ARIMA Intervensi memiliki kinerja terbaik dalam hal akurasi prediksi dibandingkan model ARIMA dan ARIMA + Outlier.

3.10. Pemilihan Model Terbaik

3.10.1. Perbandingan Fitted Value

plot(IHSG$Tanggal, IHSG$`Harga Saham Penutup` ,type = "l", col = "blue", lwd = 2,xlab = "Tanggal", ylab = "Harga Saham",
  main = "Perbandingan Fitted Values Antar Model")
lines(IHSG$Tanggal, prediksi_ARIMA,       col = "red",    lwd = 1.5)
lines(IHSG$Tanggal, prediksi_ARIMA_outlier,     col = "green",  lwd = 1.5)
lines(IHSG$Tanggal, prediksi_ARIMA_intervensi, col = "yellow", lwd = 1.5)
legend("bottomleft",
legend = c("Aktual", "ARIMA", "ARIMA  Outlier", "ARIMA Intervensi"),
col    = c("blue", "red", "green", "yellow"),
lty    = 1, lwd = 2, bty = "n")

Berdasarkan grafik perbandingan fitted values, terlihat bahwa ketiga model mampu mengikuti pola umum data aktual IHSG. Namun demikian, terdapat perbedaan tingkat kedekatan antara hasil prediksi dengan data aktual. Model ARIMA menunjukkan pola yang masih cukup mengikuti data, tetapi belum mampu menangkap fluktuasi secara detail. Model ARIMA + Outlier memberikan perbaikan dibandingkan ARIMA biasa, terutama pada titik-titik ekstrem akibat adanya outlier.

Sementara itu, model ARIMA Intervensi menunjukkan hasil yang paling mendekati data aktual, khususnya setelah terjadinya titik intervensi. Hal ini menunjukkan bahwa model intervensi mampu menangkap perubahan struktur data yang terjadi akibat adanya kejadian tertentu. Dengan demikian, secara visual model ARIMA Intervensi memiliki performa yang paling baik dalam merepresentasikan data.

3.10.2. Perbandingan AIC dan BIC

pemilihan.model <- data.frame(
Model = c("ARIMA", "ARIMA + Outlier", "ARIMA Intervensi"),
AIC   = round(c(AIC(ARIMA1), AIC(ARIMA_praintervensi1), AIC(model.intervensi)), 3),
BIC   = round(c(BIC(ARIMA1), BIC(ARIMA_praintervensi1), BIC(model.intervensi)), 3))
pemilihan.model
##              Model      AIC      BIC
## 1            ARIMA 3548.942 3567.625
## 2  ARIMA + Outlier 1629.812 1638.824
## 3 ARIMA Intervensi 3545.804 3571.960

Berdasarkan perbandingan nilai AIC dan BIC, diperoleh bahwa model yang memiliki nilai terkecil bukanlah model ARIMA Intervensi. Secara teori, model dengan nilai AIC dan BIC paling kecil dianggap lebih baik karena memiliki keseimbangan antara goodness of fit dan kompleksitas model.

Namun, dalam penelitian ini, nilai AIC dan BIC bukan satu-satunya dasar dalam pemilihan model. Hal ini karena model ARIMA Intervensi memiliki tambahan variabel intervensi yang secara alami meningkatkan kompleksitas model, sehingga nilai AIC dan BIC cenderung lebih besar. Meskipun demikian, model ARIMA Intervensi tetap dipertimbangkan karena mampu memberikan representasi yang lebih baik terhadap pola data dibandingkan model lainnya.

3.11. Peramalan

h <- 30 

TC_future <- rep(1, h)
AO291_future <- rep(0, h)
IO303_future <- rep(0, h)
AO311_future <- rep(0, h)

X_future <- as.matrix(cbind(TC_future, AO291_future, IO303_future, AO311_future))

forecast_intervensi <- forecast(
  model.intervensi,
  xreg = X_future,
  h = h)

forecast_intervensi$mean
## Time Series:
## Start = 312 
## End = 341 
## Frequency = 1 
##  [1] 6030.095 6048.172 6033.774 6029.158 6031.347 6032.389 6032.087 6031.870
##  [9] 6031.905 6031.947 6031.945 6031.937 6031.937 6031.938 6031.938 6031.938
## [17] 6031.938 6031.938 6031.938 6031.938 6031.938 6031.938 6031.938 6031.938
## [25] 6031.938 6031.938 6031.938 6031.938 6031.938 6031.938
plot(forecast_intervensi, main = "Peramalan ARIMA Intervensi")

hasil_forecast <- data.frame(
  Periode = 1:h,
  ARIMA_Intervensi = forecast_intervensi$mean)

hasil_forecast
##    Periode ARIMA_Intervensi
## 1        1         6030.095
## 2        2         6048.172
## 3        3         6033.774
## 4        4         6029.158
## 5        5         6031.347
## 6        6         6032.389
## 7        7         6032.087
## 8        8         6031.870
## 9        9         6031.905
## 10      10         6031.947
## 11      11         6031.945
## 12      12         6031.937
## 13      13         6031.937
## 14      14         6031.938
## 15      15         6031.938
## 16      16         6031.938
## 17      17         6031.938
## 18      18         6031.938
## 19      19         6031.938
## 20      20         6031.938
## 21      21         6031.938
## 22      22         6031.938
## 23      23         6031.938
## 24      24         6031.938
## 25      25         6031.938
## 26      26         6031.938
## 27      27         6031.938
## 28      28         6031.938
## 29      29         6031.938
## 30      30         6031.938

Berdasarkan hasil peramalan menggunakan model ARIMA Intervensi untuk beberapa periode ke depan, diperoleh nilai prediksi yang mencerminkan pola lanjutan dari data historis yang telah dipengaruhi oleh intervensi.

Dengan asumsi tidak terdapat shock atau gangguan baru pada periode mendatang, variabel intervensi seperti Additive Outlier (AO) dan Innovational Outlier (IO) bernilai nol, sedangkan efek Temporary Change (TC) tetap berlangsung. Oleh karena itu, hasil peramalan menunjukkan pola yang relatif stabil dan mengikuti tren yang telah terbentuk setelah intervensi.

Model ARIMA Intervensi mampu memberikan hasil peramalan yang lebih realistis karena telah mempertimbangkan pengaruh kejadian khusus yang sebelumnya terjadi pada data IHSG. Dengan demikian, hasil forecast yang diperoleh dapat digunakan sebagai dasar dalam melihat kecenderungan pergerakan IHSG pada periode mendatang.

PENUTUP

Kesimpulan

Berdasarkan hasil analisis pemodelan data IHSG menggunakan metode ARIMA, outlier, dan intervensi, dapat disimpulkan bahwa:

  1. Model ARIMA terbaik untuk data IHSG secara umum adalah ARIMA(2,1,2) berdasarkan nilai AIC terkecil serta parameter yang signifikan secara statistik. Model ini telah memenuhi asumsi non-autokorelasi meskipun residual tidak sepenuhnya berdistribusi normal.
  2. Deteksi outlier menunjukkan adanya beberapa jenis gangguan dalam data, yaitu temporary change (TC), additive outlier (AO), dan innovational outlier (IO), yang mengindikasikan adanya pengaruh kejadian eksternal terhadap pergerakan IHSG.
  3. Model ARIMA yang dikombinasikan dengan outlier terbukti mampu meningkatkan akurasi model dibandingkan ARIMA biasa, karena dapat menangkap fluktuasi ekstrem dalam data.
  4. Model ARIMA intervensi, yang dibangun dengan mempertimbangkan kejadian tertentu dalam data, memberikan performa terbaik dibandingkan model lainnya. Hal ini ditunjukkan oleh nilai evaluasi (RMSE, MAE, dan MAPE) yang paling kecil serta kemampuan model dalam mengikuti pola data aktual secara lebih akurat.
  5. Hasil peramalan menggunakan model ARIMA intervensi menunjukkan pola yang relatif stabil dan realistis, karena telah mempertimbangkan dampak kejadian masa lalu terhadap data.

Saran

Berdasarkan hasil penelitian yang telah dilakukan, beberapa saran yang dapat diberikan adalah:

  1. Penelitian selanjutnya disarankan untuk mempertimbangkan variabel eksternal lain seperti inflasi, suku bunga, atau nilai tukar agar model dapat menangkap pengaruh ekonomi secara lebih komprehensif.
  2. Penggunaan metode lain seperti SARIMA, VAR, atau Machine Learning (misalnya LSTM) dapat dipertimbangkan sebagai pembanding untuk meningkatkan akurasi prediksi.
  3. Periode data yang lebih panjang dan lebih terkini sebaiknya digunakan agar hasil model lebih representatif terhadap kondisi pasar saat ini.

DAFTAR PUSTAKA

Box, G. E. P., Jenkins, G. M., Reinsel, G. C., & Ljung, G. M. (2015). Time Series Analysis: Forecasting and Control (5th ed.). Wiley.

Chen, C., & Liu, L. M. (1993). Joint estimation of model parameters and outlier effects in time series. Journal of the American Statistical Association, 88(421), 284–297.

Gujarati, D. N., & Porter, D. C. (2009). Basic Econometrics (5th ed.). McGraw-Hill.

Hyndman, R. J., & Athanasopoulos, G. (2018). Forecasting: Principles and Practice (2nd ed.). OTexts.

Wei, W. W. S. (2006). Time Series Analysis: Univariate and Multivariate Methods (2nd ed.). Pearson.