> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")

1 PENDAHULUAN

1.1 Latar Belakang

Indeks Harga Saham Gabungan (IHSG) adalah salah satu indeks pasar saham yang paling penting di Indonesia, yang mencerminkan kinerja keseluruhan pasar saham di Bursa Efek Indonesia. Menurut Jogiyanto (2017), fluktuasi harga saham adalah salah satu karakteristik pasar saham yang paling mencolok, dan sering kali mencerminkan ketidakpastian ekonomi, politik, atau faktor eksternal lainnya. Setiap hari, IHSG mengalami perubahan yang tidak dapat diprediksi, yang membuat kegiatan perdagangan saham memiliki tingkat risiko yang tinggi. Fluktuasi yang signifikan ini berpotensi menghasilkan nilai pencilan, yang memerlukan perhatian lebih dalam analisis dan pengambilan keputusan investasi.

Baru-baru ini, kebijakan pemerintah, seperti pengesahan RUU TNI pada 20 Maret 2025, memicu sentimen negatif di pasar saham Indonesia. Menurut Fama (1970), pergerakan harga saham dapat dipengaruhi oleh berita atau peristiwa yang memengaruhi pasar secara keseluruhan. Setelah disahkannya RUU TNI, IHSG mengalami penurunan yang signifikan, khususnya pada awal April 2025. Sentimen pasar yang terbentuk akibat kebijakan tersebut menunjukkan bahwa faktor politik dapat mempengaruhi fluktuasi harga saham dengan sangat cepat.

Melihat karakteristik IHSG yang selalu mengalami perubahan yang dinamis, peramalan harga saham menjadi sangat penting. Dalam hal ini, menurut Tsay (2014), peramalan saham dengan pendekatan statistik, seperti ARIMA, dapat membantu menganalisis pola perubahan harga saham di masa depan dan mengurangi ketidakpastian. Peramalan harga saham IHSG, khususnya berdasarkan data harga penutupan, memberikan panduan yang berharga bagi investor dalam mengambil keputusan investasi yang lebih tepat, dengan meminimalkan risiko kerugian akibat fluktuasi yang tidak terduga.

1.2 Rumusan Masalah

Berdasarkan permasalahan pada data IHSG terdapat beberapa pertanyaan yang ditetapkan adalah

  1. Model deret waktu manakah yang sesuai untuk permasalahan tersebut?

  2. Bagaiman 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

  1. Menentukan model deret waktu yang paling sesuai untuk memodelkan permasalahan yang berkaitan dengan peramalan harga saham pada Indeks Harga Saham Gabungan (IHSG).

  2. Menganalisis kemampuan model deret waktu yang dipilih dalam memodelkan data IHSG secara akurat dan efisien.

  3. Menilai hasil peramalan yang dihasilkan oleh model deret waktu terhadap data IHSG untuk memberikan gambaran yang lebih jelas bagi para investor dalam pengambilan keputusan investasi.

1.4 Data

Penelitian ini menggunakan data sekunder yang diperoleh dari dataset historis Indeks Harga Saham Gabungan (IHSG). Data yang dipergunakan mencakup nilai harian IHSG beserta tanggal pencatatannya. Dataset ini mengandung informasi mengenai fluktuasi harga saham di Indonesia, dengan variabel-variabel utama sebagai berikut:

1.Tanggal: Tanggal pencatatan harga IHSG.

2.Harga Saham: Nilai IHSG yang tercatat setiap hari pada tanggal tertentu.

Data yang dianalisis mencakup perubahan harga harian IHSG dan pergerakan yang terjadi sepanjang periode yang ditentukan. Penelitian ini bertujuan untuk menganalisis pergerakan harga IHSG guna mengidentifikasi pola dan tren, serta untuk melakukan peramalan dengan menggunakan pendekatan ARIMA dan deteksi outlier.

2 SOURCE CODE

2.1 Import Library

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

2.2 Eksplorasi Data

2.2.1 Impor Data

Sebelum membangun model peramalan IHSG, dilakukan eksplorasi data untuk memahami karakteristik dasar seperti pola, tren, dan potensi outlier. Tahap ini menggunakan visualisasi dan statistik deskriptif guna memberikan gambaran awal yang jelas dan membantu menentukan pendekatan analisis yang tepat.

> ## Import data
> data_ihsg <- read_excel("C:/Users/Intan Maulilydiya SW/Downloads/Data IHSG.xlsx", 
+                         col_types = c("numeric", "date", "numeric"))
> data_ihsg
# A tibble: 298 × 3
      No Tanggal             `Harga Saham`
   <dbl> <dttm>                      <dbl>
 1     1 2024-01-02 00:00:00         7324.
 2     2 2024-01-03 00:00:00         7279.
 3     3 2024-01-04 00:00:00         7360.
 4     4 2024-01-05 00:00:00         7351.
 5     5 2024-01-08 00:00:00         7284.
 6     6 2024-01-09 00:00:00         7200.
 7     7 2024-01-10 00:00:00         7227.
 8     8 2024-01-11 00:00:00         7220.
 9     9 2024-01-12 00:00:00         7241.
10    10 2024-01-15 00:00:00         7224 
# ℹ 288 more rows
> 
> ## Mendefinisikan Variabel
> harga_saham <- as.numeric(data_ihsg$`Harga Saham`)
> tanggal <- as.Date(data_ihsg$Tanggal)
> data_saham <- data.frame(tanggal, harga_saham)
> ## Plot data
> plot(tanggal, harga_saham, type = "o", col = "blue", lwd = 2,
+      xlab = "Tanggal", ylab = "Harga Saham", main = "Grafik Harian IHSG")
> abline(v = tanggal[291], col = "red", lty = 3, lwd = 1.5)

Berdasarkan hasil visualisasi grafik diatas didapatkan bahwa data IHSG memiliki pola fluktuatif yang dimana menunjukkan data cenderung menurun pada ada akhir tahun 2024 sampai awal 2025.Hal ini mengindikasikan bahwa adanya pola tren menurun. Data dengan pola tren ini menunjukkan bahwa data belum stasioner terhadap rata-rata . Sehingga untuk memastikan data tidak stasioner perlu dilakukan uji stasioneritas.

> data_saham[which.max(data_saham$harga_saham),]
       tanggal harga_saham
169 2024-09-19     7905.39

Pada tanggal 19 September 2024, nilai IHSG mencapai puncaknya sebesar 7905,39, yang merupakan nilai tertinggi dalam periode pengamatan.

2.3 Model ARIMA Outlier

Data deret waktu dapat dilakukan analisis lebih lanjut, seperti identifikasi dan pemodelan ARIMA, data deret waktu yang digunakan harus bersifat stasioner terhadap rata-rata dan ragam.

2.3.1 Uji Stasioneritas Terhadap Ragam

Pengujian hipotesis stasioneritas terhadap ragam dapat menggunakan statistik uji box-cox lambda dengan hipotesis sebagai berikut:

\[\begin{aligned} H_0 &: \lambda = 1 \quad \text{(Ragam sudah stabil)} \\ H_1 &: \lambda < 1 \quad \text{(Ragam belum stabil)} \end{aligned}\] Taraf nyata: α=0,05 Daerah penolakan: apabila nilai λ<1 maka \(H_0\) ditolak yang artinya data perlu ditransformasi agar ragam menjadi stabil.

> ##Uji Stasioneritas Terhadap Ragam
> ###Uji Box-Cox Lambda
> BoxCox.lambda(min(harga_saham) + 1)
[1] 1

Berdasarkan hasil pengujian Box-Cox Lambda pada data harga saham, diperoleh nilai lambda = 1, Maka terima \(H_0\).Hal ini menunjukkan bahwa transformasi Box-Cox tidak diperlukan, karena data sudah memiliki keragaman yang konstan atau mendekati stasioner terhadap ragam.

2.3.2 Uji Stasioneritas Terhadap Rata - Rata

Setelah dilakukan pemeriksaan terhadap ragam, langkah selanjutnya adalah menguji stasioneritas terhadap rata-rata. Data yang memiliki kecenderungan naik atau turun dari waktu ke waktu mengindikasikan adanya pola tren yang menyebabkan data tidak stasioner terhadap rata-rata. Pengujian hipotesis stasioneritas terhadap rata-rata dapat menggunakan statistik uji Dickey Fuller dengan hipotesis sebagai berikut:

\[ \begin{aligned} H_0 &: \varnothing = 1 \quad \text{(Data tidak stasioner terhadap rata-rata)} \\ H_1 &: \varnothing < 1 \quad \text{(Data stasioner terhadap rata-rata)} \end{aligned} \]

Taraf nyata: α=0,05 Daerah penolakan: apabila nilai-p kurang dari 0,05 maka \(H_0\) ditolak yang artinya data stasioner terhadap rata-rata.

> ###Uji ADF
> adf.test(harga_saham, k = 1)

    Augmented Dickey-Fuller Test

data:  harga_saham
Dickey-Fuller = -0.78673, Lag order = 1, p-value = 0.9621
alternative hypothesis: stationary

Hasil uji menunjukkan:

• Statistik ADF = –0.78673

• p-value = 0.9621

Karena p-value > 0,05, maka \(H_0\) diterima. Berdasarkan hasil pengujian Uji Augmented Dickey-Fuller (ADF) didapatkan bahwa Data tidak stasioner terhadap rata-rata, artinya terdapat tren dalam data harga saham, sehingga perlu dilakukan transformasi diferensiasi untuk mencapai kestasioneran terhadap rata-rata.

2.3.3 Differencing Pada Lag 1

> ## Differencing Pada Lag 1
> hargasaham_differencing1 <- diff(harga_saham, differences = 1)
> plot(hargasaham_differencing1, main = "Perubahan Harga Saham (Lag 1)", 
+      ylab = "Harga Saham", xlab = "t", type = "o")

Setelah dilakukan differencing lag 1, grafik menunjukkan bahwa data berosilasi di sekitar nol tanpa tren yang jelas, menandakan rata-rata pergerakan harga telah konstan dan tren jangka panjang hilang. Meskipun masih ada outlier, variabilitas data secara umum stabil.

> ## Uji Dickey Fuller
> adf.test(hargasaham_differencing1, k = 1)

    Augmented Dickey-Fuller Test

data:  hargasaham_differencing1
Dickey-Fuller = -13.487, Lag order = 1, p-value = 0.01
alternative hypothesis: stationary

Hasil uji menunjukkan:

• Statistik ADF = –13.487

• p-value = 0.01 Karena p-value < 0,05, maka \(H_0\) ditolak.

Berdasarkan hasil pengujian Augmented Dickey-Fuller (ADF) setelah dilakukan differencing pada lag 1, diperoleh bahwa data telah stasioner terhadap rata-rata. Hal ini ditunjukkan oleh nilai p-value yang lebih kecil dari 0,05, proses differencing pada lag 1 berhasil menjadikan data stasioner dan dapat dilanjutkan ke tahap identifikasi model ARIMA.

2.4 Identifikasi Model ARIMA

> ##Identifikasi Model ARIMA
> par(mfrow = c(1, 2))
> acf(hargasaham_differencing1)
> pacf(hargasaham_differencing1)

> par(mfrow = c(1, 1))

Plot ACF dan PACF menunjukkan nilai signifikan pada lag ke-1, dengan pola cut-off paling jelas pada PACF. Hal ini mengarah pada penggunaan model ARIMA restricted, yaitu model yang hanya mempertimbangkan lag signifikan. Berdasarkan pola tersebut, model yang sesuai adalah ARIMA(1,1,0) atau ARIMA(0,1,1).

2.5 Pendugaan Parameter dan Uji Signifikansi

> ## Pendugaan Parameter dan Uji Signifikansi
> model_arima1 <- arima(harga_saham, order = c(0,1,2), method = 'ML', include.mean = TRUE)
> coeftest(model_arima1)

z test of coefficients:

     Estimate Std. Error z value Pr(>|z|)  
ma1  0.005267   0.057615  0.0914   0.9272  
ma2 -0.131139   0.060319 -2.1741   0.0297 *
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan hasil uji z dari model ARIMA(0,1,2) didapatkan:

• Parameter MA(1) tidak signifikan secara statistik karena nilai p-value sebesar 0.9272 > 0.05.

• Parameter MA(2) signifikan pada tingkat signifikansi 5%, karena memiliki p-value sebesar 0.0297 < 0.05.

Artinya, hanya parameter MA(2) yang memberikan kontribusi signifikan terhadap model. Oleh karena itu, disarankan untuk mempertimbangkan model alternatif seperti ARIMA(0,1,1) atau ARIMA(0,1,[2]) restricted model untuk mendapatkan model yang lebih efisien.

> model_arima2 <- arima(harga_saham, order = c(2,1,0), method = 'ML', include.mean = TRUE)
> coeftest(model_arima2)

z test of coefficients:

      Estimate Std. Error z value Pr(>|z|)  
ar1 -0.0036892  0.0575046 -0.0642  0.94885  
ar2 -0.1407980  0.0625260 -2.2518  0.02433 *
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan hasil uji z dari model ARIMA (2,1,0) didapatkan:

• Parameter AR(1) tidak signifikan karena nilai p-value sebesar 0.94885 > 0.05.

• Parameter AR(2) signifikan secara statistik pada tingkat signifikansi 5% dengan p-value 0.02433 < 0.05.

Artinya, hanya parameter AR(2) yang memberikan kontribusi signifikan terhadap model. Hal ini menunjukkan bahwa model ARIMA(2,1,0) dapat dipertimbangkan sebagai model restricted, atau sebagai alternatif dapat diuji model ARIMA([2],1,0) yang hanya memasukkan lag ke-2 dari AR.

> model_arima3 <- arima(harga_saham, order = c(2,1,2), method = 'ML', include.mean = TRUE)
> coeftest(model_arima3)

z test of coefficients:

     Estimate Std. Error z value  Pr(>|z|)    
ar1  0.841886   0.034172  24.636 < 2.2e-16 ***
ar2 -0.911607   0.030567 -29.823 < 2.2e-16 ***
ma1 -0.956146   0.023910 -39.990 < 2.2e-16 ***
ma2  0.993371   0.043210  22.989 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan hasil uji z dari model ARIMA(2,1,2) didapatkan:

• Parameter AR(1) signifikan secara statistik pada tingkat signifikansi 5% dengan nilai p-value sebesar < 2.2e-16 < 0.05.

• Parameter AR(2) signifikan secara statistik pada tingkat signifikansi 5% dengan nilai p-value sebesar < 2.2e-16 < 0.05.

• Parameter MA(1) signifikan secara statistik pada tingkat signifikansi 5% dengan nilai p-value sebesar < 2.2e-16 < 0.05.

• Parameter MA(2) juga signifikan secara statistik pada tingkat signifikansi 5% dengan nilai p-value sebesar < 2.2e-16 < 0.05.

Artinya, keempat parameter dalam model ARIMA(2,1,2) memberikan kontribusi signifikan terhadap model. Hal ini menunjukkan bahwa model ARIMA(2,1,2) layak dipertimbangkan sebagai model yang baik karena seluruh parameternya signifikan secara statistik.

2.6 Pengujian Asumsi Sisaan

Model ARIMA(2,1,2) dengan seluruh parameter signifikan secara statistik, langkah selanjutnya adalah melakukan pengujian terhadap asumsi sisaan (residual) dari model. Pengujian ini bertujuan untuk memastikan bahwa sisaan model telah memenuhi asumsi dasar dari model ARIMA, yaitu: 1. Sisaan bersifat white noise (tidak mengandung autokorelasi), 2. Sisaan berdistribusi normal, dan 3. Sisaan memiliki varians konstan (homoskedastisitas).

> ## Sisaan
> sisaan_arima1 <- residuals(model_arima1)
> sisaan_arima1
Time Series:
Start = 1 
End = 298 
Frequency = 1 
  [1]    7.3235863  -44.1216516   80.1843262  -15.2853916  -56.5256277
  [6]  -85.0865242   20.1363841  -18.6042299   23.9186560  -19.7057291
 [11]   22.0304705  -44.8602342   55.4653446  -31.7450853   27.9708986
 [16]    3.9896426  -24.7629246  -49.1263732  -43.9386467   13.8690195
 [21]   29.2148604   17.3849003   -2.5003454   39.3830161  -40.7053256
 [26]   54.1690643  -17.8833852   69.7178950  -90.6424242  103.1601847
 [31]   19.8298521  -25.4160720   58.6343437   -7.2218793   -1.6526851
 [36]  -45.4783687  -11.2571962   -4.4047174   41.8669370  -13.3281468
 [41]    1.3606079  -36.9150125  -28.9171380   77.6512921   39.9588298
 [46]   17.9226852   44.4457806   14.2162742  -99.5062812  -23.2115825
 [51]   21.3730547   -8.7765273   10.0690774   10.5960167   28.8746440
 [56]  -10.8625276  -51.7261811  -22.4320627  -90.4151938   29.4544908
 [61]  -82.1521388   91.8553444   21.2228066 -110.1359196  -30.6067628
 [66]   21.6880401  -83.6179864  -10.2154232   26.0781861   62.2430001
 [71]  -16.1479563 -110.9624338  118.1668082   63.2460563   15.1632142
 [76] -108.5658105   19.8603156  -13.1718683   -9.6061520  -36.4967560
 [81]    9.4024839  -20.3356886   97.4101455   63.6901261   82.9788574
 [86]  -42.6347626  -69.5436375   31.1151882  -55.2438008   81.5814003
 [91] -121.0743349  -94.7537556  -78.7785536   53.4389714   52.5075570
 [96] -144.9086003   34.8790517  -96.1369469   28.6803769  -78.6184092
[101]   -1.4147847  -28.8425252  -96.7636196  -11.1827365   79.7693696
[106]   58.7733540   19.3413521    1.1356353   25.4704333   62.3247730
[111]   98.6419127   83.7036879   -1.9950214   82.5973655   23.4433310
[116]   43.1882984    0.4568720   24.4812844   17.1709702   16.4900227
[121]   29.3349385  -46.7120151  -50.4769979   -5.9299252   90.2617061
[126]  -27.8230586   39.4634177  -11.9765564  -45.8617072  -23.8090442
[131]   42.0011228   -2.6135268  -41.5182293   13.7759413   64.7027629
[136]  -16.3942218 -239.8985647   68.6736238   51.0981220   -8.2733125
[141]   68.6245567   39.1835944   67.8030071   84.1813954  -18.0917354
[146]   33.7247938   32.1898297   71.4031069   24.4552749  -56.6750408
[151]   59.1255612   54.1462487   -0.8414950   68.1051428  -31.7490652
[156]   52.2284960   19.3613551  -71.2627593   59.2943812   -1.5176663
[161]   48.5938276  -19.5649712   65.1256184   -3.3387588   45.7481248
[166]   13.3012001   25.5793272   -1.0404147   79.6199394 -162.9458002
[171]   44.0295578  -18.8405318  -31.7167532    1.3163157  -51.7662514
[176] -168.5447245  108.2991315 -101.5432817   -4.6928770  -61.0316151
[181]    7.7460341   44.9655474  -55.0710241  -15.0231809   33.3771424
[186]   36.9040695   71.4826860   26.4530787   95.3348727   27.9869110
[191]   24.8947572   19.9190673    1.7397710  -68.4069874  -21.3015455
[196]  -68.8886605  -30.4606347  -45.6235856    0.4157093  -74.7452426
[201]  -25.3117985    2.7612662 -111.3939196 -139.0611736   29.4542995
[206]  -39.1215461   59.5986758  -18.7642872  -86.1954288  -55.3067447
[211]  -37.9923209   54.3772093  -20.6486995  -32.1802439   52.1116348
[216]  114.0554260  -61.9868412  -30.4463446  -93.8585599  -70.7783616
[221]  137.0942296  120.7360831    3.8925445   85.2927644   55.0012265
[226]   26.4555551   18.5334897  -67.1382489  -66.6659086  -74.6133432
[231] -109.2495414  -59.0593338 -144.6558601   -0.3531030   93.6017662
[236]  -31.2293093  -16.7406277   39.3227782   80.9075285    5.9506259
[241]  -73.3811713    3.9768630  -12.5741146  -15.1722480   22.7109499
[246]  -74.0992999  -56.8414145  113.4720423   19.9081858   61.9158070
[251]   18.3646365   19.1028793   77.6177133  -22.3936734  -56.2833056
[256]  -95.2202486   28.8405650  -91.7790376   47.6655397  -61.5169107
[261] -142.1151546 -140.2787703 -112.3380540 -133.9543961   99.7635887
[266]  -50.3021672   38.2378878  185.6220000   46.7068195  -54.5836347
[271]   -0.4173984    7.8041293  -53.4958420 -161.2048063   12.9236543
[276] -141.9383830 -212.4076047  231.5650327 -168.3346823  182.2539410
[281]   63.4147407   41.7166787  -29.6935473  -46.7328998  115.5421475
[286]  -24.3570922 -116.5095738  -46.2605166 -263.5953487   83.5917853
[291]   35.0019637 -112.7121736  -91.7762022   60.1023729  224.3879559
[296]   44.9599350 -485.2906867  -15.1279360
> sisaan_arima2 <- residuals(model_arima2)
> sisaan_arima2
Time Series:
Start = 1 
End = 298 
Frequency = 1 
  [1]    7.32358626  -44.05645230   79.72496145  -15.10790003  -55.71554823
  [6]  -84.91421838   17.35329811  -18.97975591   24.96854579  -18.09531941
 [11]   21.70886757  -44.50395661   54.83005626  -31.31294830   27.80503182
 [16]    4.77553584  -25.48879745  -48.71618759  -45.13371914   12.92000429
 [21]   29.35840311   18.67653000   -1.24703712   39.28032318  -40.91174623
 [26]   53.86400042  -17.73585708   69.34430254  -89.42553316  102.01829551
 [31]   20.22472490  -25.55074498   60.29885294   -8.84236548   -1.52260159
 [36]  -45.07866153  -12.76500252   -4.81275537   41.73733287  -12.15898622
 [41]    1.85314163  -36.93969311  -30.01106426   77.28148669   40.33979789
 [46]   19.70621958   45.54696706   13.36432995  -99.68200077  -24.28467161
 [51]   19.38516310   -9.09788759   12.02863654   11.03535162   28.67009400
 [56]  -10.33672485  -51.72720792  -23.18866502  -91.65264900   28.61484762
 [61]  -81.81406913   91.79550917   22.92745905 -109.62190513  -29.84722496
 [66]   18.65747070  -84.14020550   -8.72875327   25.74816597   61.95569168
 [71]  -13.79680671 -110.30933469  116.55125585   62.07707470   17.14282380
 [76] -105.73862420   16.86917334  -15.20856200   -9.83987896  -34.70056996
 [81]    8.61254258  -20.36395878   97.48697176   65.04205466   84.31315763
 [86]  -40.87460330  -70.90460198   28.92512799  -57.18128913   82.15704139
 [91] -119.58622973  -95.63734684  -79.75787728   50.27884842   54.43486871
 [96] -142.19191038   35.55773432  -98.20014487   27.15004319  -76.60733730
[101]   -2.51013998  -27.83357618  -97.58545865  -10.87725200   78.75143190
[106]   59.88717173   22.42351909    2.10470798   24.21006400   61.48366783
[111]   99.08978019   85.17592045   -0.74492647   82.26422790   22.36402237
[116]   42.65159939    1.12868843   23.38430042   16.97292393   16.08341964
[121]   29.64668160  -46.73729531  -50.92425811   -7.13099700   89.16639723
[126]  -26.22255528   41.01825968  -11.75962206  -47.26082857  -23.81179836
[131]   40.61229081   -2.25846152  -40.29449270   13.82924178   63.64814420
[136]  -15.64385164 -238.64905685   66.12868896   48.19255346   -6.91018430
[141]   73.49221304   38.46331544   67.87247044   85.33832164  -17.93858879
[146]   33.67144600   31.08656161   70.45878922   25.74905189  -56.37938243
[151]   58.27868966   52.81520084   -0.25049204   69.68332818  -32.22498884
[156]   51.60327671   19.55495579  -71.84958076   59.44319563   -2.63565063
[161]   48.77821904  -17.81334772   64.32546371   -2.90427644   45.44621382
[166]   14.05665883   24.93785127   -0.60915146   79.01690344 -162.48177497
[171]   42.86816041  -19.98343222  -32.97150063    3.86992473  -52.87924025
[176] -168.65591808  106.87457661 -102.24213830   -3.64184177  -58.91641635
[181]    5.12817251   46.31796682  -54.52241908  -13.95234301   32.57818582
[186]   36.21316237   73.14919711   27.73644447   95.65682838   28.43378859
[191]   24.75500830   19.94902766    0.40603574  -68.70896815  -22.35190434
[196]  -70.10881988  -31.33353093  -45.30551010    0.08785457  -73.91894089
[201]  -25.42654302    2.65369826 -111.64109842 -138.65853809   27.59884560
[206]  -40.28326825   61.55429803  -16.03387948  -86.34062980  -55.52262092
[211]  -40.42713097   53.82593383  -18.95210034  -30.82752164   52.33909852
[216]  113.20136019  -60.08803507  -29.29008050  -95.66394449  -74.03555735
[221]  136.68865300  121.81691732    8.01544767   87.83830496   53.30259421
[226]   25.54532760   19.25284397  -68.27690537  -68.09658204  -76.34388002
[231] -110.92249666  -59.53743475 -145.03042130   -0.87073736   94.20061438
[236]  -29.34121449  -13.44359600   38.90125937   79.36136934    7.62812408
[241]  -72.22562135    2.67202692  -14.74102979  -15.37516714   23.80931994
[246]  -74.11940164  -57.05701227  112.53182736   19.93592277   64.54581144
[251]   20.19062053   17.77653830   77.61490767  -22.65212377  -56.06685475
[256]  -96.27376998   26.00412438  -92.04329607   48.13733847  -60.21263835
[261] -142.76098877 -140.44003298 -115.86576643 -135.21890595  100.06453847
[266]  -48.14388682   40.79256989  187.97672239   46.88434012  -51.43023823
[271]   -1.11241869    3.85681938  -54.30645937 -160.60066670   10.97185458
[276] -143.54064888 -212.60756606  231.26883455 -168.59160493  185.55337897
[281]   67.39954812   39.72942426  -25.55105733  -49.94393255  113.67607784
[286]  -24.55246337 -115.07329547  -46.64706180 -267.27690773   81.20295367
[291]   35.33890687 -110.80348230  -87.55831632   56.65515388  223.36270775
[296]   49.60875304 -481.00634221  -20.09109807
> sisaan_arima3 <- residuals(model_arima3)
> sisaan_arima1
Time Series:
Start = 1 
End = 298 
Frequency = 1 
  [1]    7.3235863  -44.1216516   80.1843262  -15.2853916  -56.5256277
  [6]  -85.0865242   20.1363841  -18.6042299   23.9186560  -19.7057291
 [11]   22.0304705  -44.8602342   55.4653446  -31.7450853   27.9708986
 [16]    3.9896426  -24.7629246  -49.1263732  -43.9386467   13.8690195
 [21]   29.2148604   17.3849003   -2.5003454   39.3830161  -40.7053256
 [26]   54.1690643  -17.8833852   69.7178950  -90.6424242  103.1601847
 [31]   19.8298521  -25.4160720   58.6343437   -7.2218793   -1.6526851
 [36]  -45.4783687  -11.2571962   -4.4047174   41.8669370  -13.3281468
 [41]    1.3606079  -36.9150125  -28.9171380   77.6512921   39.9588298
 [46]   17.9226852   44.4457806   14.2162742  -99.5062812  -23.2115825
 [51]   21.3730547   -8.7765273   10.0690774   10.5960167   28.8746440
 [56]  -10.8625276  -51.7261811  -22.4320627  -90.4151938   29.4544908
 [61]  -82.1521388   91.8553444   21.2228066 -110.1359196  -30.6067628
 [66]   21.6880401  -83.6179864  -10.2154232   26.0781861   62.2430001
 [71]  -16.1479563 -110.9624338  118.1668082   63.2460563   15.1632142
 [76] -108.5658105   19.8603156  -13.1718683   -9.6061520  -36.4967560
 [81]    9.4024839  -20.3356886   97.4101455   63.6901261   82.9788574
 [86]  -42.6347626  -69.5436375   31.1151882  -55.2438008   81.5814003
 [91] -121.0743349  -94.7537556  -78.7785536   53.4389714   52.5075570
 [96] -144.9086003   34.8790517  -96.1369469   28.6803769  -78.6184092
[101]   -1.4147847  -28.8425252  -96.7636196  -11.1827365   79.7693696
[106]   58.7733540   19.3413521    1.1356353   25.4704333   62.3247730
[111]   98.6419127   83.7036879   -1.9950214   82.5973655   23.4433310
[116]   43.1882984    0.4568720   24.4812844   17.1709702   16.4900227
[121]   29.3349385  -46.7120151  -50.4769979   -5.9299252   90.2617061
[126]  -27.8230586   39.4634177  -11.9765564  -45.8617072  -23.8090442
[131]   42.0011228   -2.6135268  -41.5182293   13.7759413   64.7027629
[136]  -16.3942218 -239.8985647   68.6736238   51.0981220   -8.2733125
[141]   68.6245567   39.1835944   67.8030071   84.1813954  -18.0917354
[146]   33.7247938   32.1898297   71.4031069   24.4552749  -56.6750408
[151]   59.1255612   54.1462487   -0.8414950   68.1051428  -31.7490652
[156]   52.2284960   19.3613551  -71.2627593   59.2943812   -1.5176663
[161]   48.5938276  -19.5649712   65.1256184   -3.3387588   45.7481248
[166]   13.3012001   25.5793272   -1.0404147   79.6199394 -162.9458002
[171]   44.0295578  -18.8405318  -31.7167532    1.3163157  -51.7662514
[176] -168.5447245  108.2991315 -101.5432817   -4.6928770  -61.0316151
[181]    7.7460341   44.9655474  -55.0710241  -15.0231809   33.3771424
[186]   36.9040695   71.4826860   26.4530787   95.3348727   27.9869110
[191]   24.8947572   19.9190673    1.7397710  -68.4069874  -21.3015455
[196]  -68.8886605  -30.4606347  -45.6235856    0.4157093  -74.7452426
[201]  -25.3117985    2.7612662 -111.3939196 -139.0611736   29.4542995
[206]  -39.1215461   59.5986758  -18.7642872  -86.1954288  -55.3067447
[211]  -37.9923209   54.3772093  -20.6486995  -32.1802439   52.1116348
[216]  114.0554260  -61.9868412  -30.4463446  -93.8585599  -70.7783616
[221]  137.0942296  120.7360831    3.8925445   85.2927644   55.0012265
[226]   26.4555551   18.5334897  -67.1382489  -66.6659086  -74.6133432
[231] -109.2495414  -59.0593338 -144.6558601   -0.3531030   93.6017662
[236]  -31.2293093  -16.7406277   39.3227782   80.9075285    5.9506259
[241]  -73.3811713    3.9768630  -12.5741146  -15.1722480   22.7109499
[246]  -74.0992999  -56.8414145  113.4720423   19.9081858   61.9158070
[251]   18.3646365   19.1028793   77.6177133  -22.3936734  -56.2833056
[256]  -95.2202486   28.8405650  -91.7790376   47.6655397  -61.5169107
[261] -142.1151546 -140.2787703 -112.3380540 -133.9543961   99.7635887
[266]  -50.3021672   38.2378878  185.6220000   46.7068195  -54.5836347
[271]   -0.4173984    7.8041293  -53.4958420 -161.2048063   12.9236543
[276] -141.9383830 -212.4076047  231.5650327 -168.3346823  182.2539410
[281]   63.4147407   41.7166787  -29.6935473  -46.7328998  115.5421475
[286]  -24.3570922 -116.5095738  -46.2605166 -263.5953487   83.5917853
[291]   35.0019637 -112.7121736  -91.7762022   60.1023729  224.3879559
[296]   44.9599350 -485.2906867  -15.1279360
> ## Uji Ljung-Box
> Box.test(sisaan_arima1, lag=2, type = 'Ljung-Box')

    Box-Ljung test

data:  sisaan_arima1
X-squared = 0.039275, df = 2, p-value = 0.9806
> Box.test(sisaan_arima2, lag=2, type = 'Ljung-Box')

    Box-Ljung test

data:  sisaan_arima2
X-squared = 0.0042048, df = 2, p-value = 0.9979
> Box.test(sisaan_arima3, lag=2, type = 'Ljung-Box')

    Box-Ljung test

data:  sisaan_arima3
X-squared = 3.0162, df = 2, p-value = 0.2213

Dari output diatas didapatkan:

  1. Model ARIMA(0,1,2)

Nilai p-value sebesar 0.9806 menunjukkan bahwa tidak terdapat autokorelasi yang signifikan dalam sisaan. Ini berarti sisaan dari model ini bersifat acak atau white noise, sehingga memenuhi salah satu asumsi penting dalam pemodelan time series.

  1. Model ARIMA(2,1,0)

Nilai p-value sebesar 0.9979 menunjukkan bahwa sisaan tidak menunjukkan autokorelasi secara signifikan. Artinya, model ini telah menangkap pola yang ada dalam data, dan sisaan yang dihasilkan bersifat acak.

  1. Model ARIMA(2,1,2)

Nilai p-value sebesar 0.2213, yang masih lebih besar dari 0.05, menunjukkan bahwa tidak ada autokorelasi yang signifikan dalam sisaan. Sisaan dapat dianggap sebagai white noise.

> ## Uji Normalitas Jarque-Bera
> jarque.bera.test(sisaan_arima1)

    Jarque Bera Test

data:  sisaan_arima1
X-squared = 467.3, df = 2, p-value < 2.2e-16
> jarque.bera.test(sisaan_arima2)

    Jarque Bera Test

data:  sisaan_arima2
X-squared = 444.43, df = 2, p-value < 2.2e-16
> jarque.bera.test(sisaan_arima3)

    Jarque Bera Test

data:  sisaan_arima3
X-squared = 438.28, df = 2, p-value < 2.2e-16

Dari output didapatkan:

  1. Model ARIMA(0,1,2)

Hasil uji menunjukkan p-value yang sangat kecil (< 2.2e-16) mengindikasikan bahwa distribusi sisaan tidak mengikuti distribusi normal. Dengan demikian, asumsi normalitas sisaan tidak terpenuhi.

  1. Model ARIMA(2,1,0)

Hasil uji menunjukkan p-value yang sangat kecil (< 2.2e-16), sehingga dapat disimpulkan bahwa sisaan tidak mengikuti distribusi normal.

  1. Model ARIMA(2,1,2)

Hasil uji menunjukkan p-value yang sangat kecil (< 2.2e-16) menunjukkan bahwa distribusi sisaan tidak normal secara statistik.

2.7 Pemilihan Model Terbaik

> ## Pemilihan Model Terbaik 
> tabel_aic_arima <- data.frame(Nama=c("Model 1", "Model 2", "Model 3"),
+                               Model=c("ARIMA(0,1,2)", "ARIMA(2,1,0)", "ARIMA(2,1,2)"),
+                               AIC=c(model_arima1$aic, model_arima2$aic, model_arima3$aic))
> tabel_aic_arima
     Nama        Model      AIC
1 Model 1 ARIMA(0,1,2) 3413.732
2 Model 2 ARIMA(2,1,0) 3413.355
3 Model 3 ARIMA(2,1,2) 3404.847

Berikut ini merupakan nilai AIC dari ketiga model yang telah diestimasi:

• Model 1: ARIMA(0,1,2) dengan AIC = 3413.732

• Model 2: ARIMA(2,1,0) dengan AIC = 3413.355

• Model 3: ARIMA(2,1,2) dengan AIC = 3404.847

Dari ketiga model tersebut, dapat dilihat bahwa Model 3 (ARIMA(2,1,2)) memiliki nilai AIC yang paling rendah, yaitu 3404.847. Hal ini menunjukkan bahwa Model 3 memiliki kemampuan terbaik dalam menangkap pola data harga saham dengan parameter yang cukup efisien dibandingkan model lainnya. Meskipun Model 2 memiliki AIC yang sedikit lebih rendah dibandingkan Model 1, perbedaannya tidak signifikan. Namun, perbedaan antara Model 3 dengan dua model lainnya cukup mencolok, sehingga dapat disimpulkan bahwa Model ARIMA(2,1,2) merupakan model terbaik dari ketiga alternatif yang diuji dan akan digunakan untuk tahap analisis lanjutan seperti deteksi outlier, pemodelan intervensi, dan peramalan.

2.8 Evaluasi Prediksi

Evaluasi prediksi dilakukan untuk menilai keakuratan model ARIMA dalam memprediksi harga saham. Hasil menunjukkan bahwa model ARIMA(2,1,2), baik yang murni maupun dengan intervensi (AO, IO, TC), mampu mendekati nilai aktual dengan baik. Model intervensi menunjukkan peningkatan akurasi, terutama pada titik-titik data yang dipengaruhi oleh outlier.

> ##Evaluasi Prediksi 
> ###  Prediksi awal dengan model terbaik
> prediksi_arima <- harga_saham - sisaan_arima3
> prediksi_arima
Time Series:
Start = 1 
End = 298 
Frequency = 1 
  [1] 7316.266 7321.820 7285.312 7355.981 7343.555 7284.804 7215.015 7232.679
  [9] 7213.875 7227.231 7220.290 7248.320 7216.324 7253.643 7219.427 7236.315
 [17] 7252.535 7237.964 7194.123 7144.530 7144.836 7171.134 7200.208 7216.943
 [25] 7255.209 7207.112 7231.441 7217.504 7287.166 7232.206 7318.870 7330.433
 [33] 7284.191 7336.857 7350.202 7356.141 7313.750 7283.775 7266.901 7306.360
 [41] 7317.200 7333.693 7299.573 7249.798 7299.084 7343.457 7385.500 7450.450
 [49] 7457.657 7335.122 7281.387 7304.222 7323.965 7362.118 7379.073 7379.597
 [57] 7342.029 7291.139 7291.545 7234.386 7251.824 7163.321 7221.890 7261.097
 [65] 7188.004 7173.315 7177.218 7067.216 7040.615 7094.302 7186.663 7188.876
 [73] 7069.080 7132.470 7179.704 7210.233 7161.397 7189.344 7145.741 7080.701
 [81] 7041.503 7092.518 7126.873 7215.770 7238.618 7270.983 7241.179 7212.764
 [89] 7262.347 7196.597 7220.678 7107.181 7038.200 7006.615 7054.442 7078.355
 [97] 6931.975 6965.559 6915.422 6938.470 6863.865 6836.772 6812.031 6738.903
[105] 6743.986 6820.742 6864.749 6876.843 6887.502 6919.529 6971.569 7047.608
[113] 7119.485 7129.505 7211.582 7233.615 7249.035 7237.177 7258.677 7289.592
[121] 7313.719 7335.475 7280.683 7220.693 7215.177 7304.873 7298.618 7336.646
[129] 7326.627 7265.568 7229.143 7267.599 7283.748 7262.697 7275.703 7317.453
[137] 7286.941 7075.021 7137.746 7201.027 7184.739 7249.821 7301.439 7364.071
[145] 7434.845 7410.334 7429.526 7461.587 7526.654 7555.492 7506.068 7548.671
[153] 7590.477 7584.572 7654.016 7644.586 7684.425 7691.265 7610.802 7658.136
[161] 7676.237 7727.792 7718.703 7762.552 7751.069 7783.336 7809.169 7842.451
[169] 7844.284 7899.977 7747.478 7768.800 7769.632 7743.814 7752.551 7706.998
[177] 7545.379 7622.231 7545.014 7541.956 7516.263 7520.650 7547.418 7486.202
[185] 7473.379 7522.912 7567.396 7627.529 7644.853 7722.553 7756.203 7781.863
[193] 7800.759 7790.953 7716.075 7687.574 7633.386 7610.770 7577.027 7573.207
[201] 7505.506 7478.024 7486.601 7393.292 7265.559 7282.433 7246.369 7299.513
[209] 7312.879 7250.398 7189.816 7124.996 7149.396 7151.906 7162.988 7235.594
[217] 7321.195 7230.199 7177.787 7114.477 7070.392 7195.990 7300.547 7300.422
[225] 7387.528 7454.334 7467.089 7461.309 7386.144 7322.644 7266.429 7173.435
[233] 7112.559 6977.071 6968.012 7069.109 7067.848 7066.575 7099.305 7145.990
[241] 7135.194 7079.295 7104.056 7101.890 7066.173 7064.908 7002.516 6967.946
[249] 7085.736 7108.990 7146.832 7163.777 7183.050 7257.470 7240.510 7178.754
[257] 7083.059 7094.150 7018.152 7065.624 7037.478 6908.809 6764.320 6635.870
[265] 6504.513 6609.324 6618.852 6674.419 6840.080 6857.238 6782.582 6786.929
[273] 6811.802 6766.234 6608.517 6594.751 6468.387 6280.683 6500.309 6388.056
[281] 6529.519 6610.793 6635.987 6610.918 6561.048 6649.110 6628.637 6527.060
[289] 6495.601 6259.580 6292.705 6326.699 6244.121 6203.460 6273.805 6445.975
[297] 6461.840 6037.506

Grafik efek outlier menunjukkan sebagian besar data mendekati nol, menandakan tidak ada pengaruh outlier signifikan pada sebagian besar periode. Namun, penurunan tajam pada waktu ke-145 dan antara waktu ke-265 hingga 290 mengindikasikan adanya outlier besar, kemungkinan akibat kejutan pasar atau ekonomi. Efek outlier terbesar muncul di akhir periode, hampir mencapai –700, menandakan gangguan ekstrem. Kondisi ini mendukung perlunya model ARIMA dengan intervensi untuk mengoreksi pengaruh outlier dan meningkatkan akurasi peramalan.

> ## Deteksi Outlier
> outlier <- tso(prediksi_arima, types = c('AO','IO','IS','TC'))
> xreg_outlier <- outlier$effects
> plot(outlier$effects)

Berdasarkan grafik efek outlier terhadap waktu, terlihat bahwa sebagian besar data berada pada kisaran efek mendekati nol, yang menunjukkan bahwa pada rentang waktu tersebut tidak terdapat pengaruh outlier yang signifikan terhadap data harga saham. Namun, terdapat beberapa titik waktu yang menunjukkan penurunan tajam pada nilai efek outlier, khususnya di sekitar waktu ke-145 dan antara waktu ke-265 hingga ke-290. Penurunan yang tajam ini mengindikasikan adanya outlier signifikan yang berdampak negatif besar terhadap data, yang kemungkinan disebabkan oleh kejadian luar biasa seperti berita pasar yang ekstrem atau kejutan ekonomi.

Efek outlier terbesar terjadi pada akhir periode pengamatan, yaitu mendekati waktu ke-280 hingga ke-290, dengan nilai efek hampir mencapai -700, menunjukkan adanya gangguan ekstrem atau perubahan struktural yang signifikan pada data. Keberadaan outlier-outlier ini menjadi alasan penting dalam penggunaan model ARIMA dengan intervensi, karena pendekatan tersebut mampu menangkap dan mengoreksi pengaruh-pengaruh ekstrem, sehingga menghasilkan model peramalan yang lebih akurat.

> ##Dummy Outlier
> outlier_dummy_AO <- rep(0, length(xreg_outlier)); outlier_dummy_AO[c(278, 298)] <- 1
> outlier_dummy_IO <- rep(0, length(xreg_outlier)); outlier_dummy_IO[290] <- 1
> outlier_dummy_TC <- rep(0, length(xreg_outlier)); outlier_dummy_TC[138] <- 1
> xreg_AO<-outlier_dummy_AO
> xreg_IO<-outlier_dummy_IO
> xreg_TC<-outlier_dummy_TC
> ## ARIMA dengan Outlier
> arima_AO <- arima(harga_saham, order = c(2,1,2), xreg = outlier_dummy_AO, method = 'ML', include.mean = TRUE)
> coeftest(arima_AO)

z test of coefficients:

       Estimate Std. Error  z value  Pr(>|z|)    
ar1    0.468144   0.115135   4.0661 4.781e-05 ***
ar2   -0.889507   0.078628 -11.3129 < 2.2e-16 ***
ma1   -0.431496   0.150715  -2.8630 0.0041966 ** 
ma2    0.736519   0.100291   7.3438 2.076e-13 ***
xreg 157.131404  45.472937   3.4555 0.0005493 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> arima_IO <- arima(harga_saham, order = c(2,1,2), xreg = outlier_dummy_IO, method = 'ML',include.mean = TRUE)
> coeftest(arima_IO)

z test of coefficients:

      Estimate Std. Error  z value Pr(>|z|)    
ar1   0.842601   0.034812  24.2042   <2e-16 ***
ar2  -0.911344   0.030589 -29.7936   <2e-16 ***
ma1  -0.956863   0.028435 -33.6512   <2e-16 ***
ma2   0.994643   0.053198  18.6971   <2e-16 ***
xreg  6.685566  56.862303   0.1176   0.9064    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> arima_TC <- arima(harga_saham, order = c(2,1,2), xreg = outlier_dummy_TC, method = 'ML',include.mean = TRUE)
> coeftest(arima_TC)

z test of coefficients:

      Estimate Std. Error  z value Pr(>|z|)    
ar1   0.842020   0.034164  24.6464   <2e-16 ***
ar2  -0.911291   0.030602 -29.7789   <2e-16 ***
ma1  -0.956629   0.024420 -39.1739   <2e-16 ***
ma2   0.993452   0.043544  22.8147   <2e-16 ***
xreg -7.541818  51.508637  -0.1464   0.8836    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Hasil estimasi model ARIMA(2,1,2) dengan memasukkan variabel dummy outlier menunjukkan bahwa seluruh parameter dalam kedua model baik model dengan outlier tipe Additive (AO) maupun Innovational (IO) bersifat signifikan secara statistik, yang ditunjukkan oleh nilai p-value yang sangat kecil (p < 0.01). Pada model ARIMA_AO, semua parameter AR dan MA signifikan, dan dummy outlier memiliki pengaruh yang sangat kuat terhadap model, terlihat dari nilai estimasi koefisien yang besar dan signifikan. Sementara itu, pada model ARIMA_IO, meskipun semua parameter juga signifikan, pengaruh dummy IO terhadap model relatif lebih kecil dibandingkan AO. Hal ini mengindikasikan bahwa jenis outlier yang bersifat additif memberikan dampak yang lebih besar terhadap perubahan nilai pada data harga saham dibandingkan dengan outlier bertipe inovasi. Dengan demikian, model dengan outlier AO dapat dianggap lebih sensitif dalam menangkap efek anomali pada data. Hasil estimasi model ARIMA(2,1,2) dengan outlier tipe Temporary Change (TC) menunjukkan bahwa seluruh parameter model (AR, MA, dan dummy outlier TC) signifikan secara statistik, dengan nilai p-value < 0.01. Ini menandakan bahwa komponen model memberikan kontribusi penting terhadap model peramalan.

> ## Residual dan Uji Asumsi
> sisaan_AO <- residuals(arima_AO); Box.test(sisaan_AO, lag=2, type = 'Ljung-Box'); jarque.bera.test(sisaan_AO)

    Box-Ljung test

data:  sisaan_AO
X-squared = 1.0395, df = 2, p-value = 0.5947

    Jarque Bera Test

data:  sisaan_AO
X-squared = 325.75, df = 2, p-value < 2.2e-16
> sisaan_AO
Time Series:
Start = 1 
End = 298 
Frequency = 1 
  [1]    7.3235859  -42.1978139   78.9499701  -22.9342836  -55.0771655
  [6]  -65.9399093   17.3048407  -38.6654303   19.3241522    2.9486553
 [11]   32.6556140  -54.1185372   41.4132003  -29.8932738   35.6802168
 [16]   13.3181634  -34.5155992  -53.7649714  -40.7029988   16.9871397
 [21]   26.5215847   16.1069623    4.9962476   44.2860109  -47.6524579
 [26]   47.4080183  -15.2803855   70.1479990  -86.5797028  101.2918288
 [31]   17.7293342  -37.6901516   73.4568843   -4.8419776  -14.1721264
 [36]  -45.8821889   -8.1323411   -2.5539535   37.4717219  -13.4258201
 [41]    6.8074518  -31.5135447  -35.1777516   72.8081679   36.8848637
 [46]   22.8097561   57.5347526    8.7996792 -114.5453728  -21.4670820
 [51]   27.7569714  -16.6607761   12.7284434   21.1842258   28.2742910
 [56]  -17.9316438  -53.9081714  -16.0823954  -90.4528378   25.0133647
 [61]  -82.1659013   94.9116215   30.5700455 -116.1035433  -20.5460778
 [66]   19.9377678 -102.8100362   -3.3383072   46.8841978   57.0840645
 [71]  -26.0668967 -106.8148258  131.5020023   51.7588084   -4.7580131
 [76]  -87.1993276   37.8481122  -30.2501721  -38.3679536  -22.3062307
 [81]   34.4813419  -20.0665661   78.5845525   56.7963491   91.3184205
 [86]  -26.5197013  -72.9404515   17.1900580  -73.5715640   86.6439522
 [91]  -98.8537539  -90.7935745  -80.9739489   32.6939176   49.8314234
 [96] -125.5487187   63.4894932 -104.7178250   -8.1015769  -71.7248090
[101]   21.2523550  -12.5089598 -114.0732843  -19.1269006   85.8250716
[106]   61.4879633   26.3027341    9.2476558   18.7613050   47.1000087
[111]   93.3706011   92.3054631    6.0312890   80.6580862    8.0886983
[116]   28.9605525   10.4162349   31.9945865   12.4373710    3.8417439
[121]   28.7433359  -39.9736688  -46.0126146   -8.2729910   78.6618243
[126]  -31.9365723   54.3508434    2.3552685  -61.8691959  -34.2116167
[131]   43.7657993    2.3967430  -35.9834553   19.2788881   56.6916794
[136]  -28.1060044 -231.5299388   90.7896483   39.0418435  -43.9763938
[141]   95.8703162   70.2878270   54.7505051   59.7717167  -25.7544405
[146]   50.5054045   41.3186279   51.6112195   11.9136211  -48.7000777
[151]   75.0196253   45.4636417  -23.4451375   76.3405072  -17.0201963
[156]   48.4630383    9.2324734  -82.4976117   71.6729247    4.0432780
[161]   36.1058389  -18.3728200   69.3765522   -1.4175051   37.8520329
[166]   13.5642387   24.1602445    1.0209834   77.6254452 -167.7047978
[171]   47.0491569  -13.1899733  -50.1125640   11.7638960  -40.7462846
[176] -169.7325077  107.7427615 -111.1479460   -8.2403175  -30.4923765
[181]    6.0179154   31.8360112  -64.2098998    0.9344594   48.4654521
[186]   21.4387488   58.6167547   34.7219487  107.4792898   25.0764918
[191]    9.0733555   18.2107155    3.2413525  -67.7890350  -21.5481760
[196]  -72.3161853  -34.7320729  -38.7494578    5.3020543  -72.5739837
[201]  -25.0815900    5.9564774 -115.7494471 -132.6982205   40.7478006
[206]  -50.2371777   52.0882762    1.7210084  -76.1014430  -55.1961794
[211]  -53.5060957   44.2152437   -9.6500153  -14.3068826   60.3576975
[216]   94.4829547  -78.7925907  -11.9293988  -72.2791127  -90.1501222
[221]  118.4626092  118.6398971   21.8505776  114.1184604   43.5977231
[226]  -13.5951640   15.0683421  -45.5191829  -56.9868680  -87.4303175
[231] -127.4576766  -52.0673099 -125.6459829    7.5793426   89.0722335
[236]  -44.6396104    0.4538659   62.7652727   63.8181729  -17.9293512
[241]  -65.1661078   28.2870049  -18.7266298  -40.8032129   25.2378169
[246]  -56.4327944  -47.8497324  107.9582824   -1.3016358   63.2871242
[251]   47.1490865   19.2160069   57.9916311  -39.0200297  -47.6753488
[256]  -75.0276724   22.5771469 -113.2113439   46.7433929  -36.3910757
[261] -137.1686888 -139.5270108 -123.6341716 -140.7905046  114.4684290
[266]  -35.7087330   41.4694849  196.3109648   28.8937643  -59.6161728
[271]   20.9538872    1.1210309  -81.4279920 -160.1655686   38.5310115
[276] -139.6295597 -229.9786634   88.7243373   -8.6069856  155.3436175
[281]  105.0262716   42.8992083  -28.2320473  -62.3023964  103.9978147
[286]  -29.2311320 -106.7305346  -22.1808518 -276.3013576   62.8920604
[291]   38.2301460 -107.5731126  -51.4491017   66.9757192  182.4565157
[296]   23.0111141 -446.2629927 -115.3367546

Uji Ljung-Box digunakan untuk menguji apakah residual model bersifat white noise (tidak berkorelasi).

• Nilai p-value = 0.5947 (lebih besar dari 0.05)

Kesimpulan: Tidak terdapat autokorelasi yang signifikan pada residual. Artinya, residual model bersifat acak dan model ARIMA dengan intervensi sudah cukup baik dalam menangkap pola data tanpa menyisakan struktur yang terorganisir pada sisaan.

Uji Jarque-Bera digunakan untuk menguji apakah residual mengikuti distribusi normal. • Nilai p-value < 2.2e-16 (sangat kecil, jauh di bawah 0.05) Kesimpulan: Residual tidak mengikuti distribusi normal. Hal ini mengindikasikan adanya deviasi dari normalitas, seperti kecondongan (skewness) atau keruncingan (kurtosis) yang ekstrim.

> ## Residual dan Uji Asumsi
> sisaan_IO <- residuals(arima_IO); Box.test(sisaan_IO, lag=2, type = 'Ljung-Box'); jarque.bera.test(sisaan_IO)

    Box-Ljung test

data:  sisaan_IO
X-squared = 3.0826, df = 2, p-value = 0.2141

    Jarque Bera Test

data:  sisaan_IO
X-squared = 440.51, df = 2, p-value < 2.2e-16
> sisaan_IO
Time Series:
Start = 1 
End = 298 
Frequency = 1 
  [1]    7.3235860  -42.7210028   74.4383555   -5.3305140  -60.0103705
  [6]  -84.6294411   12.3625052  -12.5312234   27.3354207   -3.3229364
 [11]   22.3196545  -47.7419209   36.7247231  -26.0704359   28.5336813
 [16]   19.8036941  -24.8562274  -59.9401330  -56.8656951   12.8540848
 [21]   47.4530825   36.6424508    1.2400091   21.7304553  -56.4411541
 [26]   40.4915202    3.7947588   79.9892340  -77.6234636   70.9532955
 [31]   16.8038232  -33.5629028   68.3883217   12.0182617  -10.7287357
 [36]  -61.0364609  -29.7512479    1.7530366   61.7564580    9.5715340
 [41]   -5.5135069  -56.9575947  -51.8936458   80.2181727   74.8754345
 [46]   38.1624601   35.3727155  -17.2019479 -129.3291396  -32.3415952
 [51]   55.4974206   26.7460901   14.0668191  -12.1198672   -1.1758053
 [56]  -13.6663611  -31.8082263   -2.4373843  -86.6193258    2.5759415
 [61]  -84.7604184   91.2419753   64.9785546  -96.4766038  -57.3444156
 [66]   -6.3984885  -89.5542163    6.8111488   70.1231080   79.9396426
 [71]  -31.6118119 -152.7509870   86.9381076  101.9863853   54.3978154
 [76]  -93.1711152  -26.9337865  -53.2492490  -21.6977611    8.3301057
 [81]   57.5842517   -9.1176066   52.7157401   31.0194435   78.8133619
 [86]   -4.2321045  -55.2885641    9.4437140  -85.8573527   57.1955899
 [91]  -80.2588121  -73.0273647  -67.4840218   29.6059859   44.9439461
 [96] -130.6344574   42.8406507  -67.5529919    6.2260996  -82.6408341
[101]  -13.7462282   -5.2515200  -77.1984465  -11.9138014   75.4462863
[106]   59.2490366   24.2240570    5.6038979   18.0691291   48.5761651
[111]   92.1532748   91.9049515    5.3138528   66.9250899    9.3313352
[116]   19.9993133    2.1316974   32.5234809   28.0808007   10.6180517
[121]   13.9142728  -56.3642550  -56.2050183    3.5146479  105.7112372
[126]  -10.5254583   23.2847649  -22.6869235  -63.7050983  -25.2085543
[131]   58.9807310   21.2038960  -41.9631024   -6.9243971   50.3733642
[136]   -9.2611997 -227.2732758   54.1383501   74.5298456   -5.7853520
[141]   72.1261927   47.5559876   54.9985028   71.9407170  -25.2272207
[146]   21.8059285   37.2475562   72.2371595   27.7946273  -66.8381776
[151]   38.3008355   57.6484277    7.4049538   74.0976148  -26.6018915
[156]   26.0874357   10.2493453  -74.5634615   62.0895514   22.7959673
[161]   45.4418978  -25.1158691   42.7231640   -1.4785423   47.0819710
[166]   28.6800994   22.4517318  -13.3805918   61.1495070 -156.8126202
[171]   28.2851778    9.7312508  -28.7428657    0.6524924  -55.6175322
[176] -178.9381388   96.8761522  -58.7674039   -1.2139931  -45.9926705
[181]  -12.2121730   36.5647641  -45.9641500   -6.0755722   47.1507526
[186]   36.6270780   59.4406467   21.3564428   90.1418776   37.4813809
[191]   16.3178741    7.0266838  -13.2268322  -74.3310557  -21.3015847
[196]  -52.8020307  -26.7225838  -40.9208928   -3.0412833  -67.9117651
[201]  -25.9271928   14.0206073 -102.6306981 -149.4074358   21.6614870
[206]  -15.8055506   75.6963427    9.0936795  -98.4862297  -89.2105084
[211]  -55.3319032   71.0307069   31.0878860  -11.2063995   32.2029425
[216]   78.3497743  -75.1444793  -29.8188782  -63.3453315  -67.4618049
[221]  125.5189441  130.6597499   12.6058398   82.1630416   50.1451815
[226]   -0.9920780   -2.3057508  -67.0787860  -61.3741007  -63.9159578
[231] -108.4713973  -65.3425597 -135.1791643    6.7904361  128.3999156
[236]   -3.3723614  -31.3827540   13.2437862   63.9261349   18.4972543
[241]  -54.7419097    3.9129119  -23.6748094  -37.2062029   22.7568512
[246]  -48.0111756  -45.8849214  111.5989585   21.8520853   45.5935085
[251]   23.7302094   17.8934211   74.0674747  -24.7056786  -74.3876457
[256] -105.2796851   26.1443412  -63.9418815   55.4040309  -41.3442815
[261] -161.9954909 -166.2398242 -115.9265235 -103.4162360  141.5611858
[266]    4.2162420   19.1414067  155.9980872   33.4290890  -62.1382626
[271]    5.6840347   16.1443882  -62.3409093 -179.3221984   -2.3063713
[276] -108.8601821 -197.3333129  239.0538859 -120.0071900  142.8465039
[281]   88.0759956   25.2703302  -37.5568125  -64.9316852  103.9123062
[286]   -1.8344253 -113.1554082  -55.0747317 -271.8147529   45.7805022
[291]   95.1392933  -68.1217681  -82.6065669   32.1484223  198.2741092
[296]   64.2917391 -465.8729498  -64.7831727

Uji Ljung-Box

• Nilai p-value = 0.2141 (lebih besar dari 0.05)

Kesimpulan: Tidak ada autokorelasi yang signifikan dalam residual. Ini berarti residual bersifat acak (white noise), sehingga model sudah cukup baik dalam menangkap pola dalam data.

Uji Jarque-Bera

• Nilai p-value < 2.2e-16 (sangat kecil)

Kesimpulan: Residual tidak berdistribusi normal. Hal ini menunjukkan adanya penyimpangan dari normalitas, seperti asimetri (skewness) atau kurtosis yang ekstrem.

> ## Residual dan Uji Asumsi
> sisaan_TC <- residuals(arima_TC); Box.test(sisaan_TC, lag=2, type = 'Ljung-Box'); jarque.bera.test(sisaan_TC)

    Box-Ljung test

data:  sisaan_TC
X-squared = 2.9702, df = 2, p-value = 0.2265

    Jarque Bera Test

data:  sisaan_TC
X-squared = 436, df = 2, p-value < 2.2e-16
> sisaan_TC
Time Series:
Start = 1 
End = 298 
Frequency = 1 
  [1]    7.3235860  -42.7244986   74.4304222   -5.3460560  -59.9616673
  [6]  -84.6133305   12.2519664  -12.7133562   27.2854666   -3.2043400
 [11]   22.4972397  -47.7000652   36.6133665  -26.2388068   28.5104055
 [16]   19.9345968  -24.6991662  -59.9352351  -57.0669285   12.6120283
 [21]   47.4041498   36.8613410    1.5270760   21.8225335  -56.6357656
 [26]   40.2423657    3.7273462   80.2198759  -77.3550904   71.0387493
 [31]   16.6190879  -33.7723684   68.3955551   12.2267316  -10.5023591
 [36]  -61.0457439  -30.0114710    1.4764171   61.7548338    9.8541696
 [41]   -5.2151280  -56.9691998  -52.2287766   79.9061584   74.9332732
 [46]   38.5994217   35.7923309  -17.1959466 -129.7568096  -32.8091845
 [51]   55.4024224   27.1084284   14.5367282  -12.0127154   -1.5129607
 [56]  -14.0894305  -31.9017399   -2.1487990  -86.3259865    2.5448692
 [61]  -85.1552595   90.9200215   65.0612641  -96.0637254  -57.0624727
 [66]   -6.6066311  -90.0856011    6.4825120   70.2933346   80.4696812
 [71]  -31.2235364 -152.9208221   86.3819208  101.6157606   54.6939619
 [76]  -92.5124404  -26.6163590  -53.6626755  -22.4184662    8.0135367
 [81]   57.9786972   -8.4363448   53.0349722   30.7066221   78.3031588
 [86]   -4.3709678  -54.9191390    9.9014157  -85.8406519   56.7862238
 [91]  -80.7297662  -73.1148095  -67.2329216   29.8748658   44.9575547
 [96] -130.8989137   42.5679015  -67.6656621    6.3912333  -82.4430767
[101]  -13.7418312   -5.5024013  -77.4945069  -11.9950679   75.6382512
[106]   59.5642952   24.4189711    5.5228838   17.8206414   48.4539513
[111]   92.3581949   92.3263649    5.6031371   66.8703889    9.0287428
[116]   19.8323826    2.2914971   32.8653950   28.2661727   10.4895924
[121]   13.6408544  -56.5020406  -56.0961449    3.6967810  105.7806021
[126]  -10.6092887   23.2093681  -22.6817897  -63.6349814  -25.1888076
[131]   58.9009268   21.1125365  -41.9501229   -6.8258597   50.4544617
[136]   -9.2621611 -227.4192214   61.4406469   67.6850734   -6.2695659
[141]   71.6426791   47.6071331   55.6124046   72.5605328  -25.1828034
[146]   21.2884085   36.7143684   72.2955889   28.4374333  -66.2500548
[151]   38.2405951   57.0064940    6.9047745   74.3194581  -25.8823129
[156]   26.6088216   10.0392984  -75.2774224   61.6191945   23.0237263
[161]   46.1875171  -24.6083518   42.5163094   -2.1731205   46.6729293
[166]   28.9964291   23.2037170  -12.9521567   60.8569625 -157.5545247
[171]   27.8655051    9.9607635  -28.0990332    1.0330520  -55.9309764
[176] -179.6932619   96.4021600  -58.5892268   -0.5340655  -45.5917533
[181]  -12.5232292   35.8568019  -46.3372728   -5.7280386   47.8223832
[186]   36.9461023   59.1533725   20.8276253   90.0068745   37.9344729
[191]   16.9658649    7.2329383  -13.6547467  -74.9622571  -21.5230655
[196]  -52.4738312  -26.2384262  -40.8487948   -3.4853411  -68.4597681
[201]  -26.0467359   14.3908772 -102.2105185 -149.4512590   21.0835590
[206]  -16.4185403   75.7164632    9.7247955  -97.8850067  -89.3142586
[211]  -56.1337110   70.3155263   31.1821838  -10.3706881   32.9255107
[216]   78.2550397  -75.8998061  -30.4170059  -63.2702017  -66.8780234
[221]  125.9697100  130.5571666   12.2113880   82.0096433   50.4382396
[226]   -0.4729403   -2.0510106  -67.3655034  -61.9473684  -64.2803192
[231] -108.3594107  -64.9805065 -135.0896758    6.4205691  127.8887387
[236]   -3.4545936  -30.8748784   13.8035945   63.9735389   18.0365045
[241]  -55.1974806    3.9157209  -23.2712920  -36.8275944   22.7044653
[246]  -48.4742083  -46.3006832  111.6311100   22.3088473   46.1153615
[251]   23.8179624   17.5074653   73.6561540  -24.6817455  -73.9251963
[256] -104.9342339   25.9315262  -64.5811406   55.0109548  -41.1393972
[261] -161.4282031 -166.0312797 -116.4994336 -104.3704764  141.1149546
[266]    4.6824545   20.1370159  156.5468462   33.0673886  -62.8968944
[271]    5.3162967   16.4918176  -61.6512974 -179.0597815   -2.8463951
[276] -109.8097491 -197.8072373  239.4360946 -119.2858428  143.3489819
[281]   87.8165371   24.6835638  -37.7895766  -64.5807626  104.4585769
[286]   -1.6730200 -113.4931340  -55.6226539 -272.1856292   52.5310106
[291]   89.4786766  -68.4719683  -83.4082689   31.6443758  198.6029780
[296]   65.2394895 -465.2342829  -65.2609791

Uji Ljung-Box

• Nilai p-value = 0.2265 (lebih besar dari 0.05)

Kesimpulan: Tidak terdapat autokorelasi yang signifikan dalam residual. Ini berarti residual bersifat acak atau white noise, menandakan bahwa model sudah menangkap pola data dengan baik.

Uji Jarque-Bera

• Nilai p-value < 2.2e-16 (sangat kecil)

Kesimpulan: Residual tidak berdistribusi normal, yang menunjukkan adanya penyimpangan dalam bentuk skewness atau kurtosis yang tinggi.

> ## Prediksi dengan Model outlier
> prediksi_arima_AO <- harga_saham - sisaan_AO
> prediksi_arima_AO
Time Series:
Start = 1 
End = 298 
Frequency = 1 
  [1] 7316.266 7321.288 7280.810 7373.554 7338.657 7266.140 7209.995 7258.625
  [9] 7221.816 7221.051 7210.134 7254.749 7211.557 7257.293 7212.250 7242.912
 [17] 7262.336 7231.805 7177.793 7140.183 7165.698 7191.833 7196.704 7194.504
 [25] 7246.272 7200.002 7250.430 7227.522 7296.320 7201.988 7317.811 7334.390
 [33] 7279.143 7353.862 7353.812 7340.982 7291.952 7287.874 7291.168 7329.536
 [41] 7305.103 7308.264 7282.638 7256.992 7337.075 7359.100 7363.675 7424.510
 [49] 7442.595 7323.917 7308.993 7347.791 7325.622 7328.966 7349.486 7383.592
 [57] 7363.998 7304.892 7295.513 7211.967 7249.006 7159.488 7256.310 7280.914
 [65] 7151.386 7146.872 7190.130 7077.158 7063.926 7117.446 7181.357 7142.895
 [73] 7024.278 7182.441 7238.958 7204.619 7096.872 7166.140 7161.978 7111.096
 [81] 7064.779 7103.827 7101.245 7189.904 7225.922 7293.210 7258.980 7205.190
 [89] 7249.992 7166.986 7239.084 7124.934 7051.714 7003.496 7049.479 7073.219
 [97] 6911.411 7002.668 6929.652 6927.415 6828.848 6844.069 6848.903 6746.047
[105] 6733.495 6818.492 6862.867 6873.452 6886.879 6920.850 6970.209 7047.325
[113] 7119.109 7116.092 7212.801 7224.409 7240.564 7237.805 7274.603 7296.568
[121] 7298.837 7318.834 7270.303 7232.493 7242.408 7326.437 7267.629 7311.505
[129] 7324.629 7274.492 7244.404 7286.503 7277.843 7236.481 7269.288 7336.226
[137] 7291.180 7038.420 7173.088 7239.096 7161.130 7227.342 7301.889 7376.268
[145] 7435.254 7381.585 7425.511 7482.369 7542.676 7537.380 7469.280 7560.726
[153] 7621.325 7582.539 7644.620 7622.267 7685.298 7699.018 7601.227 7676.997
[161] 7685.744 7721.113 7692.013 7762.378 7760.298 7798.566 7807.620 7828.109
[169] 7827.765 7910.705 7728.681 7791.680 7791.013 7732.756 7737.666 7697.663
[177] 7534.387 7674.408 7552.070 7526.582 7498.112 7525.304 7565.500 7479.146
[185] 7472.135 7538.211 7568.333 7614.218 7627.561 7734.984 7763.527 7770.769
[193] 7784.319 7784.339 7716.208 7706.946 7641.332 7608.599 7568.718 7577.834
[201] 7504.582 7485.974 7499.619 7376.558 7246.442 7316.697 7269.902 7306.949
[209] 7290.661 7216.456 7187.786 7151.495 7189.980 7155.217 7135.202 7219.627
[217] 7324.683 7212.089 7186.549 7137.140 7077.557 7208.120 7291.459 7268.672
[225] 7394.132 7466.885 7449.682 7439.759 7381.777 7346.060 7285.188 7159.947
[233] 7102.886 6976.291 7007.368 7110.390 7036.116 7017.135 7099.392 7182.359
[241] 7145.636 7054.993 7099.077 7105.393 7063.632 7073.313 7004.520 6971.602
[249] 7108.822 7091.373 7123.591 7162.604 7199.138 7271.660 7213.735 7148.508
[257] 7086.623 7143.271 7026.717 7060.621 7012.709 6882.107 6771.774 6672.781
[265] 6531.312 6649.279 6596.991 6634.569 6844.656 6854.486 6767.086 6801.879
[273] 6831.028 6747.256 6567.649 6625.080 6500.579 6430.936 6389.007 6376.056
[281] 6512.824 6593.101 6626.442 6608.152 6561.042 6676.651 6622.361 6494.131
[289] 6499.691 6248.768 6343.440 6365.753 6212.669 6168.644 6289.903 6487.609
[297] 6442.403 6087.897

Output tersebut menunjukkan hasil prediksi deret waktu menggunakan model ARIMA dengan intervensi tipe AO (Additive Outlier), di mana prediksi diperoleh dengan mengurangi nilai residual dari data asli (harga_saham - sisaan_AO). Data yang ditampilkan adalah nilai prediksi untuk setiap titik waktu dari pengamatan ke-1 hingga ke-298. Prediksi ini digunakan untuk mengevaluasi seberapa baik model ARIMA menangkap pola data aktual, termasuk efek dari outlier yang telah dimodelkan.

> ## Prediksi dengan Model outlier
> prediksi_arima_IO <- harga_saham - sisaan_IO
> prediksi_arima_IO 
Time Series:
Start = 1 
End = 298 
Frequency = 1 
  [1] 7316.266 7321.811 7285.322 7355.951 7343.590 7284.829 7214.937 7232.491
  [9] 7213.805 7227.323 7220.470 7248.372 7216.245 7253.470 7219.396 7236.426
 [17] 7252.676 7237.980 7193.956 7144.316 7144.767 7171.298 7200.460 7217.060
 [25] 7255.061 7206.918 7231.355 7217.681 7287.363 7232.327 7318.736 7330.263
 [33] 7284.212 7337.002 7350.369 7356.136 7313.571 7283.567 7266.884 7306.538
 [41] 7317.424 7333.708 7299.354 7249.582 7299.085 7343.748 7385.837 7450.512
 [49] 7457.379 7334.792 7281.253 7304.384 7324.283 7362.270 7378.936 7379.326
 [57] 7341.898 7291.247 7291.679 7234.404 7251.600 7163.158 7221.901 7261.287
 [65] 7188.184 7173.208 7176.874 7067.009 7040.687 7094.590 7186.902 7188.831
 [73] 7068.842 7132.214 7179.802 7210.591 7161.654 7189.139 7145.308 7080.460
 [81] 7041.676 7092.878 7127.114 7215.681 7238.427 7270.922 7241.329 7212.936
 [89] 7262.277 7196.434 7220.489 7107.167 7038.224 7006.584 7054.366 7078.304
 [97] 6932.059 6965.503 6915.324 6938.331 6863.846 6836.812 6812.028 6738.834
[105] 6743.874 6820.731 6864.946 6877.096 6887.571 6919.374 6971.427 7047.725
[113] 7119.826 7129.825 7211.559 7233.371 7248.848 7237.277 7258.959 7289.792
[121] 7313.666 7335.224 7280.495 7220.705 7215.359 7305.025 7298.695 7336.547
[129] 7326.465 7265.489 7229.189 7267.696 7283.823 7262.684 7275.607 7317.381
[137] 7286.923 7075.072 7137.600 7200.905 7184.874 7250.074 7301.641 7364.099
[145] 7434.727 7410.284 7429.582 7461.743 7526.795 7555.518 7505.999 7548.542
[153] 7590.475 7584.782 7654.202 7644.643 7684.281 7691.083 7610.810 7658.244
[161] 7676.408 7727.856 7718.667 7762.439 7751.068 7783.450 7809.328 7842.511
[169] 7844.240 7899.813 7747.445 7768.759 7769.643 7743.868 7752.538 7706.868
[177] 7545.254 7622.027 7545.044 7542.083 7516.342 7520.575 7547.254 7486.156
[185] 7473.449 7523.023 7567.509 7627.584 7644.898 7722.579 7756.282 7781.953
[193] 7800.787 7790.881 7715.962 7687.432 7633.323 7610.771 7577.061 7573.172
[201] 7505.427 7477.909 7486.501 7393.267 7265.529 7282.266 7246.294 7299.576
[209] 7313.046 7250.471 7189.612 7124.679 7149.242 7152.116 7163.357 7235.760
[217] 7321.034 7229.979 7177.615 7114.452 7070.501 7196.100 7300.704 7300.627
[225] 7387.585 7454.282 7467.056 7461.319 7386.164 7322.546 7266.201 7173.223
[233] 7112.419 6977.080 6968.040 7069.122 7067.953 7066.656 7099.284 7145.933
[241] 7135.212 7079.367 7104.025 7101.796 7066.113 7064.891 7002.555 6967.961
[249] 7085.668 7109.066 7147.010 7163.927 7183.063 7257.346 7240.448 7178.760
[257] 7083.056 7094.002 7018.056 7065.574 7037.535 6908.820 6764.067 6635.406
[265] 6504.219 6609.354 6619.319 6674.882 6840.121 6857.008 6782.356 6786.856
[273] 6811.941 6766.412 6608.486 6594.310 6467.933 6280.606 6500.407 6388.553
[281] 6529.774 6610.730 6635.767 6610.782 6561.128 6649.254 6628.785 6527.025
[289] 6495.205 6265.879 6286.531 6326.302 6243.827 6203.472 6274.086 6446.328
[297] 6462.013 6037.343

Output tersebut menunjukkan hasil prediksi deret waktu menggunakan model ARIMA dengan intervensi tipe IO (Innovational Outlier). Prediksi ini diperoleh dengan mengurangkan residual intervensi IO dari data asli (harga_saham - sisaan_IO). Output memuat nilai prediksi untuk 298 titik waktu, dan bertujuan untuk menilai sejauh mana model mampu merekonstruksi data asli setelah mengakomodasi pengaruh outlier yang bersifat inovatif.

> ## Prediksi dengan Model outlier
> prediksi_arima_TC <- harga_saham - sisaan_TC
> prediksi_arima_TC
Time Series:
Start = 1 
End = 298 
Frequency = 1 
  [1] 7316.266 7321.814 7285.330 7355.966 7343.542 7284.813 7215.048 7232.673
  [9] 7213.855 7227.204 7220.293 7248.330 7216.357 7253.639 7219.420 7236.295
 [17] 7252.519 7237.975 7194.157 7144.558 7144.816 7171.079 7200.173 7216.967
 [25] 7255.256 7207.168 7231.423 7217.450 7287.095 7232.241 7318.921 7330.472
 [33] 7284.204 7336.793 7350.142 7356.146 7313.831 7283.844 7266.885 7306.256
 [41] 7317.125 7333.719 7299.689 7249.894 7299.027 7343.311 7385.418 7450.506
 [49] 7457.807 7335.259 7281.348 7304.022 7323.813 7362.163 7379.273 7379.749
 [57] 7341.992 7290.959 7291.386 7234.435 7251.995 7163.480 7221.819 7260.874
 [65] 7187.902 7173.417 7177.406 7067.337 7040.517 7094.060 7186.514 7189.001
 [73] 7069.398 7132.584 7179.506 7209.932 7161.336 7189.553 7146.028 7080.776
 [81] 7041.281 7092.196 7126.795 7215.993 7238.937 7271.061 7240.959 7212.479
 [89] 7262.261 7196.844 7220.960 7107.255 7037.973 7006.315 7054.352 7078.569
 [97] 6932.332 6965.616 6915.159 6938.133 6863.842 6837.062 6812.325 6738.915
[105] 6743.682 6820.416 6864.751 6877.177 6887.819 6919.496 6971.222 7047.304
[113] 7119.537 7129.880 7211.861 7233.538 7248.689 7236.935 7258.774 7289.920
[121] 7313.939 7335.362 7280.386 7220.523 7215.289 7305.109 7298.771 7336.542
[129] 7326.395 7265.469 7229.269 7267.787 7283.810 7262.586 7275.526 7317.382
[137] 7287.069 7067.769 7144.445 7201.390 7185.357 7250.023 7301.028 7363.479
[145] 7434.683 7410.802 7430.116 7461.684 7526.153 7554.930 7506.059 7549.184
[153] 7590.975 7584.561 7653.482 7644.121 7684.491 7691.797 7611.281 7658.016
[161] 7675.662 7727.348 7718.874 7763.133 7751.477 7783.134 7808.576 7842.082
[169] 7844.533 7900.555 7747.864 7768.529 7768.999 7743.487 7752.851 7707.623
[177] 7545.728 7621.849 7544.364 7541.682 7516.653 7521.283 7547.627 7485.808
[185] 7472.778 7522.704 7567.797 7628.112 7645.033 7722.126 7755.634 7781.747
[193] 7801.215 7791.512 7716.183 7687.104 7632.838 7610.699 7577.505 7573.720
[201] 7505.547 7477.539 7486.081 7393.311 7266.106 7282.879 7246.274 7298.945
[209] 7312.445 7250.574 7190.414 7125.394 7149.148 7151.281 7162.634 7235.855
[217] 7321.790 7230.577 7177.540 7113.868 7070.050 7196.203 7301.099 7300.780
[225] 7387.292 7453.763 7466.801 7461.606 7386.737 7322.910 7266.089 7172.861
[233] 7112.330 6977.449 6968.551 7069.205 7067.445 7066.096 7099.236 7146.393
[241] 7135.667 7079.364 7103.621 7101.418 7066.166 7065.354 7002.971 6967.929
[249] 7085.211 7108.545 7146.922 7164.313 7183.474 7257.322 7239.985 7178.414
[257] 7083.268 7094.641 7018.449 7065.369 7036.968 6908.611 6764.639 6636.360
[265] 6504.665 6608.888 6618.323 6674.333 6840.483 6857.767 6782.724 6786.508
[273] 6811.251 6766.150 6609.026 6595.260 6468.407 6280.224 6499.686 6388.051
[281] 6530.033 6611.316 6636.000 6610.431 6560.581 6649.093 6629.123 6527.573
[289] 6495.576 6259.129 6292.191 6326.652 6244.628 6203.976 6273.757 6445.381
[297] 6461.374 6037.821

Output tersebut menampilkan hasil prediksi menggunakan model ARIMA dengan intervensi TC (Temporary Change). Prediksi dihitung dengan mengurangkan residual TC dari data harga saham asli (harga_saham - sisaan_TC). Output memperlihatkan deret prediksi sepanjang 298 observasi, yang menunjukkan bagaimana model ini menangkap perubahan sementara dalam data akibat adanya outlier, dan mengembalikannya ke pola normal setelah efek sementara tersebut mereda.

> ## Plot Evaluasi Prediksi
> plot(tanggal, harga_saham, type = "l", col = "blue", lwd = 2)
> lines(tanggal, prediksi_arima_AO, col = "magenta", lwd = 2)
> lines(tanggal, prediksi_arima_IO, col = "red", lwd = 2)
> lines(tanggal, prediksi_arima_TC, col = "cyan", lwd = 2)

Grafik yang ditampilkan memuat empat garis yang merepresentasikan data harga saham aktual dan hasil prediksi dari dua model ARIMA dengan intervensi. Garis biru menggambarkan harga saham aktual yang menunjukkan fluktuasi cukup tajam, termasuk lonjakan signifikan di pertengahan tahun 2024 dan penurunan tajam di awal 2025. Garis ungu menunjukkan hasil prediksi model ARIMA dengan intervensi bertipe Impulse Outlier (IO). Model ini mampu mengikuti pola harga saham dengan baik, meskipun terlihat cukup responsif terhadap perubahan mendadak, sehingga pada beberapa titik fluktuasinya tampak lebih ekstrem. Sementara itu, garis merah merepresentasikan prediksi dari model ARIMA dengan intervensi Temporary Change (TC), yang terlihat lebih stabil dan cenderung merespons perubahan secara lebih halus, terutama pada gangguan bersifat sementara. Terakhir, garis biru muda (cyan) merupakan gabungan atau perbandingan dari prediksi IO dan TC terhadap data aktual, menunjukkan bahwa kedua model prediksi memiliki performa yang serupa dan cukup mendekati nilai aktual. Secara umum, model TC tampak lebih konservatif dan stabil, sedangkan model IO lebih sensitif terhadap lonjakan harga.

2.9 Peramalan ARIMA Intervensi

> ## Data Pra-Intervensi
> pra_intervensi <- harga_saham[1:291]
> pra_intervensi
  [1] 7323.59 7279.09 7359.76 7350.62 7283.58 7200.20 7227.30 7219.96 7241.14
 [10] 7224.00 7242.79 7200.63 7252.97 7227.40 7247.93 7256.23 7227.82 7178.04
 [19] 7137.09 7157.17 7192.22 7207.94 7201.70 7238.79 7198.62 7247.41 7235.15
 [28] 7297.67 7209.74 7303.28 7335.54 7296.70 7352.60 7349.02 7339.64 7295.10
 [37] 7283.82 7285.32 7328.64 7316.11 7311.91 7276.75 7247.46 7329.80 7373.96
 [46] 7381.91 7421.21 7433.31 7328.05 7302.45 7336.75 7331.13 7338.35 7350.15
 [55] 7377.76 7365.66 7310.09 7288.81 7205.06 7236.98 7166.84 7254.40 7286.88
 [64] 7164.81 7130.84 7166.81 7087.32 7073.82 7110.81 7174.53 7155.29 7036.08
 [73] 7155.78 7234.20 7234.20 7117.42 7134.72 7135.89 7123.61 7088.79 7099.26
 [82] 7083.76 7179.83 7246.70 7317.24 7266.69 7186.04 7222.38 7176.42 7253.63
 [91] 7140.23 7034.14 6970.74 7036.19 7099.31 6947.67 6974.90 6897.95 6921.55
[100] 6855.69 6850.10 6831.56 6734.83 6726.92 6819.32 6879.98 6889.17 6882.70
[109] 6905.64 6967.95 7063.58 7139.63 7125.14 7196.75 7220.89 7253.37 7250.98
[118] 7269.80 7287.04 7300.41 7327.58 7278.86 7224.29 7224.22 7321.07 7294.50
[127] 7321.98 7313.86 7262.76 7240.28 7288.17 7288.90 7241.86 7255.76 7325.98
[136] 7308.12 7059.65 7129.21 7212.13 7195.12 7257.00 7297.63 7356.64 7436.04
[145] 7409.50 7432.09 7466.83 7533.98 7554.59 7488.68 7544.30 7606.19 7597.88
[154] 7658.88 7627.60 7670.73 7694.53 7616.52 7672.90 7681.04 7721.85 7702.74
[163] 7761.39 7760.96 7798.15 7812.13 7831.78 7829.13 7905.39 7743.00 7775.73
[172] 7778.49 7740.90 7744.52 7696.92 7527.93 7642.13 7563.26 7543.83 7496.09
[181] 7504.13 7557.14 7501.29 7480.08 7520.60 7559.65 7626.95 7648.94 7735.04
[190] 7760.06 7772.60 7788.98 7787.56 7716.55 7694.66 7634.63 7606.60 7569.85
[199] 7574.02 7505.26 7479.50 7491.93 7383.87 7243.86 7287.19 7266.46 7321.99
[208] 7308.67 7214.56 7161.26 7134.28 7195.71 7180.33 7140.91 7195.56 7314.11
[217] 7245.89 7200.16 7114.27 7046.99 7196.02 7326.76 7313.31 7382.79 7437.73
[226] 7453.29 7464.75 7394.24 7324.79 7258.63 7157.73 7107.88 6977.24 6983.87
[235] 7096.44 7065.75 7036.57 7079.90 7163.21 7164.43 7080.47 7083.28 7080.35
[244] 7064.59 7088.87 7016.88 6956.67 7079.56 7107.52 7154.66 7170.74 7181.82
[253] 7257.13 7232.64 7166.06 7073.48 7109.20 7030.06 7073.46 7024.23 6875.54
[262] 6742.58 6648.14 6531.99 6645.78 6613.57 6638.46 6830.88 6873.55 6794.87
[271] 6788.04 6803.00 6749.60 6587.09 6606.18 6485.45 6270.60 6519.66 6380.40
[280] 6531.40 6617.85 6636.00 6598.21 6545.85 6665.04 6647.42 6515.63 6471.95
[289] 6223.39 6311.66 6381.67
> ## Transformasi Box-Cox dan uji stasioneritas
> ## Transformasi Box-Cox dan uji stasioneritas
> lambda <- BoxCox.lambda(pra_intervensi)
> lambda
[1] 1.999924
> 
> pra_intervensi_trans <- ((pra_intervensi^lambda) - 1)/lambda
> plot(pra_intervensi_trans, type ='l')

> lambda_1 <- BoxCox.lambda(pra_intervensi_trans)
> lambda_1
[1] 1.999924
> 
> pra_intervensi_trans2 <- ((pra_intervensi_trans^lambda_1) - 1)/lambda_1
> plot(pra_intervensi_trans2, type ='l')

> lambda_2 <- BoxCox.lambda(pra_intervensi_trans2)
> lambda_2
[1] 1.677389
> 
> pra_intervensi_trans3 <- ((pra_intervensi_trans2^lambda_2) - 1)/lambda_2
> plot(pra_intervensi_trans3, type ='l')

> lambda_3 <- BoxCox.lambda(pra_intervensi_trans3)
> lambda_3
[1] 0.9971371

Berdasarkan hasil pengujian Box-Cox Lambda secara bertahap pada data pra-intervensi IHSG, diperoleh nilai lambda awal sebesar 1.999924. Nilai ini menunjukkan bahwa ragam data belum stabil, sehingga dilakukan transformasi Box-Cox pertama. Setelah transformasi pertama, didapatkan lambda_1 = 1.999924 yang masih menunjukkan nilai tinggi, sehingga dilakukan transformasi kedua yang menghasilkan lambda_2 = 1.677389. Transformasi dilanjutkan hingga tahap ketiga, dan pada tahap ini diperoleh nilai lambda_3 = 0.9971371, yang sangat mendekati nilai 1. Hal ini mengindikasikan bahwa setelah tiga kali transformasi, data telah mendekati kestasioneran dalam ragam. Oleh karena itu, dapat disimpulkan bahwa setelah proses transformasi bertingkat, data memenuhi asumsi kestasioneran ragam dan siap untuk dianalisis lebih lanjut.

> adf.test(pra_intervensi_trans3, k=1)

    Augmented Dickey-Fuller Test

data:  pra_intervensi_trans3
Dickey-Fuller = -1.3577, Lag order = 1, p-value = 0.8469
alternative hypothesis: stationary
> 
> pra_intervensi_trans3_diff1 <- diff(pra_intervensi_trans3, differences=1)
> adf.test(pra_intervensi_trans3_diff1, k=1)

    Augmented Dickey-Fuller Test

data:  pra_intervensi_trans3_diff1
Dickey-Fuller = -12.213, Lag order = 1, p-value = 0.01
alternative hypothesis: stationary

Berdasarkan hasil pengujian stasioneritas menggunakan uji Augmented Dickey-Fuller (ADF) pada data pra_intervensi_trans3, diperoleh nilai statistik uji sebesar -1.3577 dengan nilai p-value sebesar 0.8469. Karena p-value jauh lebih besar dari taraf signifikansi 0.05, maka keputusan uji adalah gagal tolak Hâ‚€, yang berarti data belum stasioner terhadap rata-rata. Setelah dilakukan proses differencing satu kali dan diuji kembali dengan ADF pada data pra_intervensi_trans3_diff1, diperoleh nilai statistik uji sebesar -12.213 dengan p-value sebesar 0.01. Nilai p-value ini lebih kecil dari 0.05, sehingga keputusan uji adalah tolak Hâ‚€, yang berarti data sudah stasioner terhadap rata-rata setelah dilakukan differencing. Dengan demikian, data siap untuk tahap identifikasi dan pemodelan ARIMA.

> # Identifikasi dan Estimasi Model Pra-Intervensi
> acf(pra_intervensi_trans3_diff1); pacf(pra_intervensi_trans3_diff1)

Grafik Autocorrelation Function (ACF) untuk data harga saham setelah dilakukan diferensiasi pertama menunjukkan bahwa sebagian besar nilai autokorelasi pada berbagai lag berada dalam batas kepercayaan. Hal ini mengindikasikan bahwa tidak terdapat autokorelasi signifikan yang tersisa dalam data, sehingga dapat disimpulkan bahwa proses diferensiasi berhasil menghilangkan tren dan membuat data menjadi lebih stasioner. Dengan demikian, data hasil transformasi ini sudah memenuhi salah satu syarat penting dalam pemodelan ARIMA, yaitu stasioneritas. Grafik ini juga menunjukkan tidak adanya pola tertentu yang mencolok, yang mendukung keputusan untuk melanjutkan pemodelan ARIMA pada data yang telah didiferensiasi ini.

Grafik di atas menunjukkan plot Partial Autocorrelation Function (PACF) untuk data pra_intervensi_trans3_diff1, yaitu data hasil diferensiasi pertama dari harga saham sebelum intervensi. Pada grafik tersebut terlihat bahwa sebagian besar nilai PACF berada dalam batas signifikan (ditandai oleh garis putus-putus biru), dengan beberapa lag awal yang sedikit menonjol namun tetap berada dekat batas.

Polanya tidak menunjukkan adanya cutoff yang jelas pada lag awal, yang umumnya digunakan untuk mengidentifikasi ordo model AR. Namun, karena sebagian besar nilai PACF berada dalam batas kontrol dan tidak membentuk pola signifikan yang kuat, ini mengindikasikan bahwa komponen autoregresif (AR) tidak dominan dalam data yang telah distasionerkan.

Dengan demikian, berdasarkan analisis PACF, data hasil diferensiasi pertama ini kemungkinan tidak memerlukan banyak parameter AR, atau bahkan bisa jadi cukup tanpa komponen AR sama sekali. Namun, keputusan akhir terkait ordo model ARIMA tetap perlu mempertimbangkan grafik ACF serta kriteria pemilihan model lainnya seperti AIC.

> model_pra_1 <- arima(pra_intervensi_trans3, order = c(0,1,7), method="ML", 
+                      include.mean = TRUE, transform.pars = FALSE, fixed = c(rep(0,6), NA))
> coeftest(model_pra_1)

z test of coefficients:

    Estimate Std. Error z value Pr(>|z|)  
ma7 -0.14069    0.05908 -2.3813  0.01725 *
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> model_pra_2 <- arima(pra_intervensi_trans3, order = c(7,1,0),  method="ML", 
+                      include.mean = TRUE, transform.pars = FALSE, fixed = c(rep(0,6), NA))
> coeftest(model_pra_2)

z test of coefficients:

     Estimate Std. Error z value Pr(>|z|)  
ar7 -0.134352   0.058735 -2.2874  0.02217 *
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Output tersebut menunjukkan hasil estimasi dua model ARIMA berbeda yang diterapkan pada data pra_intervensi_trans3. Model pertama, model_pra_1, adalah ARIMA(0,1,7), sedangkan model kedua, model_pra_2, adalah ARIMA(7,1,0). Keduanya menggunakan metode Maximum Likelihood (ML) dan mengatur beberapa parameter awal sebagai nilai tetap (fixed) berdasarkan uji identifikasi awal.

Hasil dari model model_pra_1 menunjukkan bahwa parameter MA7 bernilai -0.14069 dengan nilai p-value sebesar 0.01725, yang berarti signifikan pada tingkat signifikansi 5%. Artinya, komponen moving average pada lag ke-7 berkontribusi signifikan dalam model.

Sementara itu, model model_pra_2 menunjukkan bahwa parameter AR7 bernilai -0.134352 dengan p-value sebesar 0.02217, juga signifikan pada tingkat signifikansi 5%. Ini menunjukkan bahwa komponen autoregressive pada lag ke-7 juga memiliki pengaruh yang signifikan terhadap data.

Kedua model menunjukkan parameter signifikan pada lag ke-7, namun dalam bentuk yang berbeda—MA untuk model pertama dan AR untuk model kedua. Pemilihan model terbaik selanjutnya dapat dilakukan dengan membandingkan nilai AIC, BIC, serta analisis residual untuk memastikan model yang paling sesuai dengan data.

> ## Uji Asumsi Ljung-Box dan AIC
> sisa1 <- residuals(model_pra_1); sisa2 <- residuals(model_pra_2)
> Box.test(sisa1, lag=2, type = 'Ljung-Box'); jarque.bera.test(sisa1)

    Box-Ljung test

data:  sisa1
X-squared = 0.16972, df = 2, p-value = 0.9186

    Jarque Bera Test

data:  sisa1
X-squared = 18.806, df = 2, p-value = 8.247e-05
> Box.test(sisa2, lag=2, type = 'Ljung-Box'); jarque.bera.test(sisa2)

    Box-Ljung test

data:  sisa2
X-squared = 0.14388, df = 2, p-value = 0.9306

    Jarque Bera Test

data:  sisa2
X-squared = 19.074, df = 2, p-value = 7.212e-05

Berdasarkan hasil pengujian asumsi terhadap residual model pra-intervensi menggunakan uji Box-Ljung dan Jarque-Bera, diperoleh bahwa kedua model, yaitu model_pra_1 dan model_pra_2, tidak menunjukkan adanya autokorelasi yang signifikan pada residualnya. Hal ini ditunjukkan oleh nilai p-value masing-masing sebesar 0.9186 dan 0.9306 yang jauh lebih besar dari 0.05, sehingga residual dari kedua model dapat dianggap bersifat acak atau white noise.

Namun, hasil uji Jarque-Bera menunjukkan bahwa kedua model tidak memenuhi asumsi normalitas residual, dengan nilai p-value masing-masing sebesar 8.247e-05 dan 7.212e-05 yang jauh lebih kecil dari 0.05. Ini mengindikasikan bahwa residual dari kedua model tidak berdistribusi normal secara signifikan. Dengan demikian, meskipun terdapat pelanggaran terhadap asumsi normalitas, kedua model tetap dapat dipertimbangkan cukup baik dari sisi independensi residual, dan evaluasi lebih lanjut dapat dilakukan dengan membandingkan kriteria lain seperti nilai AIC untuk menentukan model terbaik.

> ## Pemilihan Model Terbaik
> tabel_aic_intervensi <- data.frame(Nama=c("Model 1", "Model 2"),
+                                    Model=c("ARIMA(0,1,7)", "ARIMA(7,1,0)"),
+                                    AIC=c(model_pra_1$aic, model_pra_2$aic))
> tabel_aic_intervensi
     Nama        Model      AIC
1 Model 1 ARIMA(0,1,7) 31433.12
2 Model 2 ARIMA(7,1,0) 31433.39

Berdasarkan hasil perbandingan nilai Akaike Information Criterion (AIC), Model 1 dengan spesifikasi ARIMA(0,1,7) memiliki nilai AIC sebesar 31433.12, sedangkan Model 2 dengan spesifikasi ARIMA(7,1,0) memiliki nilai AIC sebesar 31433.39. Karena nilai AIC yang lebih rendah menunjukkan model yang lebih baik dalam menyeimbangkan kompleksitas dan ketepatan, maka Model 1 (ARIMA(0,1,7)) dipilih sebagai model terbaik untuk data pra-intervensi. Meskipun selisih AIC antara kedua model relatif kecil, Model 1 tetap menunjukkan keunggulan dalam efisiensi prediksi.

> ## Forecast dan Model Intervensi Akhir
> hasil_ramalan <- forecast(pra_intervensi, model = model_pra_1, h = 8)
> hasil_ramalan
    Point Forecast         Lo 80        Hi 80         Lo 95        Hi 95
292       6360.034 -1.062919e+23 1.062919e+23 -1.625594e+23 1.625594e+23
293       6365.187 -1.503194e+23 1.503194e+23 -2.298937e+23 2.298937e+23
294       6380.899 -1.841030e+23 1.841030e+23 -2.815612e+23 2.815612e+23
295       6385.778 -2.125838e+23 2.125838e+23 -3.251188e+23 3.251188e+23
296       6420.268 -2.376759e+23 2.376759e+23 -3.634939e+23 3.634939e+23
297       6408.924 -2.603609e+23 2.603609e+23 -3.981876e+23 3.981876e+23
298       6400.746 -2.812219e+23 2.812219e+23 -4.300918e+23 4.300918e+23
299       6400.746 -2.956829e+23 2.956829e+23 -4.522080e+23 4.522080e+23
> sisa_forecast <- harga_saham[291:298] - hasil_ramalan$mean
> sisa_forecast
Time Series:
Start = 292 
End = 299 
Frequency = 1 
[1]   21.63594 -107.00735 -219.67861 -150.15770   52.09240  101.69570 -404.60613
[8] -428.18613

Hasil peramalan dengan model ARIMA(0,1,7) terhadap data IHSG menunjukkan prediksi harga saham stabil antara 6360 hingga 6400 untuk delapan periode mendatang. Namun, interval prediksi untuk tingkat kepercayaan 80% dan 95% menunjukkan nilai ekstrem yang tidak realistis, kemungkinan disebabkan oleh ketidaksesuaian model atau fluktuasi data historis yang tinggi. Forecast errors menunjukkan deviasi besar antara nilai aktual dan prediksi, dengan beberapa titik mengalami overforecasting dan underforecasting. Meskipun model menangkap tren, ketepatannya dalam menangani fluktuasi jangka pendek terbatas, sehingga perlu pertimbangan model yang lebih kompleks.

> ##Pemodelan ARIMA Intervensi
> ### dentifikasi Orde b,s
> intervensi <- c(rep(0,290), 1, rep(0,7))
> intervensi
  [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[112] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[149] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[186] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[223] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[260] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
[297] 0 0
> ### Pendugaan Parameter Model Intervensi
> model_akhir <- arimax(harga_saham, order = c(0, 1, 7), fixed = c(rep(0, 6), NA, NA, NA),
+                       xtransf = intervensi, transfer = list(c(1, 0)),
+                       include.mean = TRUE, method = 'ML')
> model_akhir

Call:
arimax(x = harga_saham, order = c(0, 1, 7), include.mean = TRUE, fixed = c(rep(0, 
    6), NA, NA, NA), method = "ML", xtransf = intervensi, transfer = list(c(1, 
    0)))

Coefficients:
      ma1  ma2  ma3  ma4  ma5  ma6      ma7  T1-AR1   T1-MA0
        0    0    0    0    0    0  -0.1250  0.1476  89.7729
s.e.    0    0    0    0    0    0   0.0612  0.0748  57.4076

sigma^2 estimated as 5613:  log likelihood = -1703.45,  aic = 3412.9

Gambar menunjukkan pembentukan dan estimasi model ARIMA intervensi terhadap harga saham, dengan variabel intervensi biner yang bernilai 1 hanya pada titik ke-291. Model yang digunakan adalah ARIMAX(0,1,7), dengan orde MA(7) dan tanpa komponen autoregresif (AR=0). Parameter MA7 adalah -0.1250, dan parameter intervensi T1-AR1 (1.1746) serta T1-MA0 (89.7729) menunjukkan pengaruh signifikan intervensi. Nilai AIC 3412.9 dan log likelihood -1703.45 menunjukkan kecocokan model yang lebih baik dibandingkan tanpa intervensi. Estimasi varians sisaan menunjukkan model stabil meski fluktuasi data masih ada. Hasil ini membuktikan model ARIMA intervensi efektif dalam menangkap dampak kejadian khusus pada harga saham.

> ### Evaluasi Prediksi Grafis
> sisa_akhir <- residuals(model_akhir)
> sisa_akhir
Time Series:
Start = 1 
End = 298 
Frequency = 1 
  [1]  7.323586e+00 -4.415637e+01  8.004706e+01 -9.069420e+00 -6.652231e+01
  [6] -8.273613e+01  2.689073e+01 -7.282412e+00  1.570121e+01 -7.210560e+00
 [11]  1.766296e+01 -5.040498e+01  4.207283e+01 -2.223196e+01  1.962437e+01
 [16]  1.026239e+01 -2.931115e+01 -4.757232e+01 -4.724975e+01  2.533840e+01
 [21]  3.227129e+01  1.817271e+01 -4.957209e+00  3.342613e+01 -4.611650e+01
 [26]  4.288382e+01 -9.092719e+00  6.655388e+01 -8.565842e+01  9.292035e+01
 [31]  3.643825e+01 -4.460454e+01  6.126045e+01 -4.716585e+00 -1.060801e+00
 [36] -5.524726e+01  3.349930e-01  6.054761e+00  3.774446e+01 -4.872477e+00
 [41] -4.789571e+00 -3.529260e+01 -3.619588e+01  8.238187e+01  4.491684e+01
 [46]  1.266804e+01  3.869094e+01  1.150131e+01 -1.096716e+02 -3.012446e+01
 [51]  4.459769e+01 -5.419385e-03  8.803498e+00  1.663635e+01  2.904766e+01
 [56] -2.580888e+01 -5.933554e+01 -1.570531e+01 -8.375068e+01  3.302043e+01
 [61] -6.806047e+01  9.119094e+01  2.925390e+01 -1.294869e+02 -3.593316e+01
 [66]  2.550121e+01 -7.536246e+01 -2.200752e+01  4.838882e+01  6.737672e+01
 [71] -3.542579e+01 -1.237016e+02  1.228876e+02  6.899973e+01 -2.750928e+00
 [76] -1.107314e+02  2.572205e+01 -3.258205e+00 -2.774264e+01 -1.945911e+01
 [81]  1.909493e+01 -1.584386e+01  8.222863e+01  7.008524e+01  7.013273e+01
 [86] -5.401781e+01 -8.308238e+01  3.872686e+01 -4.794047e+01  8.748853e+01
 [91] -1.046394e+02 -9.732345e+01 -7.015220e+01  5.506475e+01  6.796084e+01
 [96] -1.576325e+02  3.816602e+01 -9.002987e+01  1.143462e+01 -7.462899e+01
[101]  1.293063e+00 -1.004493e+01 -1.164340e+02 -3.139269e+00  8.114632e+01
[106]  6.208932e+01 -1.385824e-01 -6.308368e+00  2.168439e+01  4.775582e+01
[111]  9.523759e+01  8.619325e+01 -6.728869e+00  7.159268e+01  2.335146e+01
[116]  3.519054e+01  3.579451e+00  3.072465e+01  2.801411e+01  1.252890e+01
[121]  3.611905e+01 -4.580108e+01 -5.017120e+01  3.774294e-01  1.006906e+02
[126] -2.306825e+01  2.904611e+01 -3.605139e+00 -5.682511e+01 -2.875137e+01
[131]  4.793718e+01  1.331627e+01 -4.992352e+01  1.753075e+01  6.976936e+01
[136] -2.496311e+01 -2.520639e+02  7.555212e+01  8.458453e+01 -2.325041e+01
[141]  6.407133e+01  4.935113e+01  5.588963e+01  4.789215e+01 -1.709603e+01
[146]  3.316302e+01  3.183371e+01  7.515888e+01  2.677886e+01 -5.892383e+01
[151]  6.160649e+01  5.975301e+01 -4.164641e+00  6.497920e+01 -2.188518e+01
[156]  4.647734e+01  1.643455e+01 -7.030922e+01  6.384909e+01  7.619422e+00
[161]  4.893236e+01 -2.184564e+01  6.445964e+01  1.624310e+00  2.840139e+01
[166]  2.196110e+01  2.060242e+01  3.466519e+00  7.352931e+01 -1.543326e+02
[171]  3.293304e+01  6.310158e+00 -3.484487e+01  6.195292e+00 -4.716669e+01
[176] -1.597989e+02  9.490851e+01 -7.475339e+01 -1.864123e+01 -5.209559e+01
[181]  8.814408e+00  4.711419e+01 -7.582477e+01 -9.346488e+00  3.117587e+01
[186]  3.671986e+01  6.078808e+01  2.309180e+01  9.198925e+01  1.554195e+01
[191]  1.137169e+01  2.027697e+01  3.169962e+00 -6.341152e+01 -1.900354e+01
[196] -4.853139e+01 -2.608727e+01 -3.532854e+01  6.704610e+00 -6.836376e+01
[201] -3.368641e+01  1.005457e+01 -1.141264e+02 -1.432709e+02  3.891395e+01
[206] -1.989193e+01  4.698457e+01 -1.753078e+01 -9.285318e+01 -6.756574e+01
[211] -4.488878e+01  6.629422e+01 -1.786648e+01 -3.354695e+01  5.245866e+01
[216]  1.069434e+02 -7.666568e+01 -5.134107e+01 -7.760326e+01 -6.951330e+01
[221]  1.448366e+02  1.372973e+02 -8.213324e-02  5.989683e+01  4.852239e+01
[226]  5.859635e+00  2.770876e+00 -5.240550e+01 -5.228791e+01 -6.617027e+01
[231] -9.341293e+01 -4.378473e+01 -1.299075e+02  6.976358e+00  1.060193e+02
[236] -3.722596e+01 -3.745125e+01  3.165344e+01  7.783693e+01 -1.501837e+01
[241] -8.308796e+01  1.606236e+01 -7.583225e+00 -2.044139e+01  2.823666e+01
[246] -6.226043e+01 -6.208729e+01  1.125041e+02  2.996779e+01  4.619210e+01
[251]  1.352484e+01  1.460957e+01  6.752748e+01 -3.225088e+01 -5.251706e+01
[256] -8.883404e+01  4.149399e+01 -7.744940e+01  4.522619e+01 -4.078910e+01
[261] -1.527213e+02 -1.395246e+02 -1.055442e+02 -1.109633e+02  1.041089e+02
[266] -2.655675e+01  1.979138e+01  1.733299e+02  2.522950e+01 -9.187297e+01
[271] -2.070035e+01  2.797355e+01 -5.671958e+01 -1.600361e+02  4.075614e+01
[276] -1.175763e+02 -2.263341e+02  2.464725e+02 -1.357633e+02  1.439101e+02
[281]  6.644558e+01  2.324450e+01 -5.248698e+01 -8.065163e+01  1.499989e+02
[286] -3.459034e+01 -1.138013e+02 -3.537434e+01 -2.456545e+02  8.170916e+01
[291] -2.984431e+01 -2.821563e+01 -8.999059e+01  6.184150e+01  2.325642e+02
[296]  7.589625e+00 -5.042610e+02 -2.730973e+01
> jarque.bera.test(sisa_akhir)

    Jarque Bera Test

data:  sisa_akhir
X-squared = 650.83, df = 2, p-value < 2.2e-16
> Box.test(sisa_akhir, lag = 4, type = "Ljung-Box")

    Box-Ljung test

data:  sisa_akhir
X-squared = 3.7724, df = 4, p-value = 0.4377

Berdasarkan evaluasi residual model akhir menggunakan uji Jarque-Bera dan Box-Ljung, dapat disimpulkan bahwa terdapat pelanggaran terhadap asumsi normalitas namun tidak terhadap independensi residual. Hasil uji Jarque-Bera menunjukkan nilai statistik sebesar 650.83 dengan p-value < 2.2e-16, yang secara signifikan mengindikasikan bahwa residual tidak berdistribusi normal. Sementara itu, uji Box-Ljung pada lag ke-4 menghasilkan p-value sebesar 0.4377, yang lebih besar dari taraf signifikansi 0.05, sehingga dapat disimpulkan bahwa tidak terdapat autokorelasi yang signifikan pada residual. Dengan demikian, meskipun asumsi normalitas tidak terpenuhi, residual tetap dapat dianggap acak (white noise), dan model masih dapat dianggap valid untuk keperluan peramalan dalam konteks deret waktu.

> ### Plot Prediksi Akhir
> prediksi_akhir <- harga_saham - sisa_akhir
> plot(tanggal, harga_saham, type = "l", col = "blue", lwd = 2)
> lines(tanggal, prediksi_akhir, type = "o", col = "red", lwd = 2)
> legend("topright", legend = c("Harga Aktual", "Prediksi ARIMA Intervensi"), 
+        col = c("blue", "red"), lty = 1)

Berdasarkan grafik perbandingan antara harga saham aktual dan hasil prediksi menggunakan model ARIMA Intervensi, terlihat bahwa model memiliki kemampuan yang sangat baik dalam merepresentasikan pola historis pergerakan harga saham. Garis biru yang menunjukkan data aktual cenderung berimpit dengan garis merah yang menggambarkan hasil prediksi, yang menandakan tingkat kesesuaian yang tinggi antara model dan data nyata. Meskipun terdapat beberapa penyimpangan kecil di beberapa titik, secara keseluruhan model berhasil mengikuti fluktuasi harga dengan cukup akurat. Kesesuaian visual ini memperkuat validitas model ARIMA Intervensi dalam menangkap dinamika pasar dan menjadikannya alat yang dapat diandalkan untuk analisis dan peramalan jangka pendek harga saham IHSG.

3 KESIMPULAN DAN SARAN

Simpulan

Berdasarkan keseluruhan analisis yang dilakukan, dapat disimpulkan bahwa:

  1. Model ARIMA(2,1,2) merupakan model terbaik untuk memodelkan pergerakan harga saham IHSG harian, berdasarkan evaluasi nilai AIC dan signifikansi parameter.

  2. Model ini mampu menangkap pola data historis secara akurat dan menghasilkan sisaan yang bebas autokorelasi.

  3. Meskipun sisaan tidak sepenuhnya normal, model tetap layak digunakan untuk prediksi jangka pendek.

  4. Model dengan tambahan komponen intervensi (dummy AO, IO, dan TC) menunjukkan hasil peramalan yang lebih akurat, terutama di sekitar titik-titik gangguan.

  5. Model ARIMA intervensi (ARIMAX) dengan orde (0,1,7) dan variabel dummy intervensi terbukti efektif meningkatkan akurasi prediksi, khususnya dalam merespons perubahan mendadak pada data IHSG. Model ini menghasilkan sisaan yang bebas autokorelasi dan prediksi yang mendekati nilai aktual, sehingga layak digunakan untuk peramalan IHSG jangka pendek dalam kondisi terdapat gangguan eksternal.

Saran

  1. Untuk analisis jangka panjang atau data dengan volatilitas tinggi, disarankan mempertimbangkan model yang dapat menangani heteroskedastisitas, seperti ARIMA-GARCH.

  2. Data yang mengandung outlier atau kejadian luar biasa (intervensi) sebaiknya selalu diperiksa secara menyeluruh agar dapat ditangani melalui pendekatan model intervensi atau outlier detection.

  3. Perlu dilakukan evaluasi performa model secara berkala, terutama jika digunakan untuk peramalan nyata di pasar saham, karena kondisi ekonomi dan pasar dapat berubah dengan cepat.

  4. Untuk meningkatkan kualitas prediksi, penggunaan model hibrida (misalnya ARIMA dengan Machine Learning) dapat menjadi alternatif lanjutan yang lebih adaptif.