Regresi dengan Peubah Lag

Pendahuluan

Investasi emas adalah contoh investasi pasar komoditi. Ketika berinvestasi emas, investor harus memperhatikan fluktuasi harga emas dengan memperhatikan faktor–faktor yang mempengaruhinya seperti suku bunga, inflasi, harga minyak dunia, kurs dollar, dan permintaan emas. Faktor-faktor itu menjadi variabel terikat (dependent variable) karena masing – masing variabel tersebut mempunyai pengaruh dengan harga emas sebagai variabel bebas (independent variable) (Cristy 2014). Consumer Price Index (CPI) merupakan gambaran tingkat harga barang dan jasa yang dikonsumsi masyarakat. CPI ini dinyatakan dalam bentuk indeks dan berupa data bulanan, CPI juga merupakan gambaran tingkat inlasi (Beik dan Fatmawati 2014).

Pada analisis kali ini akan dilakukan pemodelan Harga Emas (Gold Price) terhadap CPI (Consumer Price Index) di India. Pemodelan ini menggunakan beberapa metode regresi peubah lag. Data yang diambil bersumber dari kagle.com dari 1 Januari 2001 sampai 1 Desember 2019 dengan jumlah observasi 228 amatan.

Sumber data: https://www.kaggle.com/code/somyaagarwal69/gold-forecasting-with-regression-arima/data

Package yang Digunakan

library(dLagM) 
## Warning: package 'dLagM' was built under R version 4.1.3
## Loading required package: nardl
## Warning: package 'nardl' was built under R version 4.1.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## Loading required package: dynlm
## Warning: package 'dynlm' was built under R version 4.1.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.1.2
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(dynlm) 
library(MLmetrics) 
## Warning: package 'MLmetrics' was built under R version 4.1.3
## 
## Attaching package: 'MLmetrics'
## The following object is masked from 'package:dLagM':
## 
##     MAPE
## The following object is masked from 'package:base':
## 
##     Recall
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.1.3
library(car)
## Warning: package 'car' was built under R version 4.1.2
## Loading required package: carData
library(readxl)
## Warning: package 'readxl' was built under R version 4.1.2
library(readr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:car':
## 
##     recode
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(caTools)
## Warning: package 'caTools' was built under R version 4.1.3
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.1.2
library(hrbrthemes)
## Warning: package 'hrbrthemes' was built under R version 4.1.3
## NOTE: Either Arial Narrow or Roboto Condensed fonts are required to use these themes.
##       Please use hrbrthemes::import_roboto_condensed() to install Roboto Condensed and
##       if Arial Narrow is not on your system, please see https://bit.ly/arialnarrow

Data

Data time series yang akan dianalisis lebih lanjut saat ini merupakan data harga emas di India per bulan dari tahun 2001 sampai 2019. Peubah yang akan dianalisis yaitu peubah CPI (Consumer Price Index) sebagai peubah X dan peubah Gold Price sebagai peubah Y.

Input Data

gold <- read_excel("GoldUP.xlsx", sheet = 2)
head(gold)
## # A tibble: 6 x 8
##   Date       Gold_Price Crude_Oil Interest_Rate USD_INR Sensex   CPI USD_Index
##   <chr>           <dbl>     <dbl>         <dbl>   <dbl>  <dbl> <dbl>     <dbl>
## 1 01-01-2001       4466     1208.           8      46.5  4327.  36.9      111.
## 2 01-02-2001       4370     1267.           7.5    46.5  4247.  36.7      112.
## 3 01-03-2001       4269     1166.           7      46.6  3604.  36.9      117.
## 4 01-04-2001       4267     1203.           7      46.8  3519.  37.2      116.
## 5 01-05-2001       4441     1293.           7      46.9  3632.  37.4      119.
## 6 01-06-2001       4400     1268.           7      47.0  3457.  37.9      119.
str(gold)
## tibble [228 x 8] (S3: tbl_df/tbl/data.frame)
##  $ Date         : chr [1:228] "01-01-2001" "01-02-2001" "01-03-2001" "01-04-2001" ...
##  $ Gold_Price   : num [1:228] 4466 4370 4269 4267 4441 ...
##  $ Crude_Oil    : num [1:228] 1208 1267 1166 1203 1293 ...
##  $ Interest_Rate: num [1:228] 8 7.5 7 7 7 7 7 7 7 6.5 ...
##  $ USD_INR      : num [1:228] 46.5 46.5 46.6 46.8 46.9 ...
##  $ Sensex       : num [1:228] 4327 4247 3604 3519 3632 ...
##  $ CPI          : num [1:228] 36.9 36.7 36.9 37.1 37.4 ...
##  $ USD_Index    : num [1:228] 111 112 117 116 119 ...
dim(gold)
## [1] 228   8
t = tibble::num(1:228)
Xt<-gold$CPI
Yt<-gold$Gold_Price

datareg1<-cbind(t, Xt, Yt)
datareg <- as.data.frame(datareg1)
View(datareg)

Eksplorasi Data

Korelasi Peubah X dan Peubah Y

cor(Xt, Yt)
## [1] 0.9573909

Scatterplot

plot(gold$Gold_Price,gold$CPI, pch = 20, col = "blue", main = "Scatter Plot Gold Price vs Consumer Price Index", ylab = "Gold Price", xlab = "Consumer Price Index")

Berdasarkan eksplorasi di atas terlihat bahwa terdapat hubungan positif antara peubah CPI dan Gold Price. Nilai korelasi antara kedua variabel ini juga hampir sempurna, yaitu sebesar 0.957.

Plot Data Time Series

data.y<-ts(Yt)
plot(data.y, main = "Time Series Plot of Monthly Gold Price In The Indian From 2001 to 2019", xlab = "Periode", ylab="Gold Price")
points(data.y)

Split Data dan Membuat Data Menjadi Time Series

Data yang digunakan dibagi menjadi 2 bagian, yaitu data training dan data testing. Sekitar 80% data atau 182 baris digunakan sebagai data training dan 20% data sisanya atau 46 baris terakhir digunakan sebanyak data testing.

train<-datareg[1:182,]
test<-datareg[183:228,]

#data time series
train.ts<-ts(train)
test.ts<-ts(test)
data.ts<-ts(datareg)

Model Regresi Linier Awal

model1 <- lm(Yt ~ Xt, data = gold)
summary(model1)
## 
## Call:
## lm(formula = Yt ~ Xt, data = gold)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4851.3 -1808.4 -1167.2   918.8  9318.3 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -7993.165    570.971  -14.00   <2e-16 ***
## Xt            369.015      7.404   49.84   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3093 on 226 degrees of freedom
## Multiple R-squared:  0.9166, Adjusted R-squared:  0.9162 
## F-statistic:  2484 on 1 and 226 DF,  p-value: < 2.2e-16

Berdasarkan hasil diatas, diperoleh model regresi linier data deret waktu yaitu:

Yt^ = -7993.165 + 369.015(Xt)

  • Uji t : Berdasarkan hasil di atas, diperoleh bahwa pada peubah penjelas CPI (Consumer Price Index) memiliki p-value < 0.05 sehingga dapat dikatakan bahwa peubah penjelas CPI (Consumer Price Index) berpengaruh signifikan pada taraf nyata 5%.

  • Nilai R-Squared pada model regresi linier deret waktu yaitu 91.66%, artinya keragaman Y (harga emas) yang mampu dijelaskan oleh peubah penjelas (tahun) adalah sebesar 91.66%.

  • Nilai intersep sebesar -7993.165 yang artinya jika peubah penjelas tahun bernilai nol, maka dugaan nilai harga emas sebesar -7993.165.

  • Pengaruh peubah CPI (Consumer Price Index) terhadap harga emas bernilai positif sebesar 369.015, hal ini menunjukkan bahwa jika CPI (Consumer Price Index) bertambah satu maka dugaan harga emas bertambah sebesar 369.015.

Uji Asumsi Autokorelasi

bgtest(model1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  model1
## LM test = 215.78, df = 1, p-value < 2.2e-16

Berdasarkan hasil uji di atas, diperoleh p-value < 0.05, maka Tolak H0. Artinya cukup bukti untuk menyatakan bahwa terdapat autokorelasi pada model awal dengan taraf nyata 5%. Ada autokorelasi maka akan dilakukan penanganan dengan menambahkan lag tertentu. Metode yang digunakan adalah Model Koyck, Distributed Lag Model, dan Autoregressive Model.

Model Koyck

Model Koyck adalah suatu model yang mengasumsikan bahwa koefisien dari variabel yang mengalami keterlambatan dapat menurun secara geometris (Gujarati 2006). Metode Koyck didasari asumsi bahwa semakin jauh jarak lag pada variabel independent (X) dari periode sekarang maka semakin kecil pengaruh variabel lag terhadap variabel dependent (Y). Koyck mengusulkan suatu metode pendugaan model lag terdistribusi didasarkan pada asumsi bahwa koefisien menurun secara eksponensial dari waktu ke waktu (Gujarati 2004).

model.koyck <- dLagM :: koyckDlm(x=train$Xt , y=train$Yt)
summary(model.koyck)
## 
## Call:
## "Y ~ (Intercept) + Y.1 + X.t"
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1879.25  -299.17   -42.26   283.98  3159.49 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  90.66201  255.23313   0.355    0.723    
## Y.1           0.99518    0.01766  56.368   <2e-16 ***
## X.t           1.84971    8.01673   0.231    0.818    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 654.3 on 178 degrees of freedom
## Multiple R-Squared: 0.9953,  Adjusted R-squared: 0.9953 
## Wald test: 1.904e+04 on 2 and 178 DF,  p-value: < 2.2e-16 
## 
## Diagnostic tests:
## NULL
## 
##                             alpha    beta      phi
## Geometric coefficients:  18801.62 1.84971 0.995178
AIC(model.koyck)
## [1] 2865.664
BIC(model.koyck)
## [1] 2878.458

Berdasarkan hasil di atas,pemodelan Koyck yang dibentuk dari data harga emas adalah sebagai berikut:

Yt = 90.66201 + 1.84971Xt + 0.99518Yt−1

Berdasarkan pemodelan koyck, nilai 90.66201 berarti nilai harga emas pada periode waktu t memiliki nilai 90.66201 saat tidak ada pengaruh peubah bebas ataupun pengaruh waktu sebelumnya. Setiap peningkatan indeks harga konsumen akan menyebabkan harga emas naik sebesar 1.84971 satuan. Nilai 0.99518 berarti nilai harga emas periode ke-t dipengaruhi oleh harga emas pada periode sebelumnya sebesar0.99518 kali lipat dari sebelumnya. Model ini memiliki nilai AIC sebesar 2865.664 dan BIC sebesar 2878.458.

Hipotesis:

H0: βi = 0

H1: βi ≠ 0

Berdasarkan hasil analisis regresi sebelumnya, didapatkan hanya nilai p-value Yt-1 < 0.05 yang mengindikasikan bahwa penduga parameter ini signifikan. Sehingga menurut model koyck, nilai y (harga emas) tidak dipengaruhi oleh CPI, namun CPI hanya dipengaruhi oleh peubah lagnya.

Ramalan Koyck

#ramalan
fore.koyck <- dLagM::forecast(model = model.koyck, x=test$Xt, h=46)
fore.koyck
## $forecasts
##  [1] 28396.06 28541.56 28689.18 28837.50 28987.23 29134.81 29280.98 29427.14
##  [9] 29571.90 29714.56 29855.80 29996.37 30136.98 30278.31 30419.67 30561.77
## [17] 30706.72 30850.96 30994.52 31138.80 31283.09 31425.27 31568.18 31709.70
## [25] 31850.53 31991.39 32132.28 32273.91 32421.92 32569.22 32715.80 32862.39
## [33] 33008.26 33152.73 33300.76 33448.08 33596.09 33745.51 33895.62 34046.43
## [41] 34198.64 34350.82 34503.68 34657.92 34813.55 34969.85
## 
## $call
## forecast.koyckDlm(model = model.koyck, x = test$Xt, h = 46)
## 
## attr(,"class")
## [1] "forecast.koyckDlm" "dLagM"

Data di atas merupakan hasil peramalan harga emas untuk 46 periode ke depan dengan menggunakan Model Koyck.

MAPE Testing dan Akurasi Data Training

#mape data testing
mape.koyck <- MAPE(fore.koyck$forecasts, test$Yt)

#akurasi data training
mape_train <- dLagM::GoF(model.koyck)["MAPE"]

c("MAPE_testing" = mape.koyck, "MAPE_training" = mape_train)
## $MAPE_testing
## [1] 0.05306663
## 
## $MAPE_training.MAPE
## [1] 0.02937457

Hasil di atas merupakan nilai MAPE untuk data training dan data testing. Terlihat bahwa nilai MAPE keduanya tidak jauh berbeda. Artinya, model Koyck ini tidak overfitted atau underfited.

Regression with Distributed Lag

Model distributed lag merupakan analisis regresi yang melibatkan data runtun waktu, jika model regresi memasukan tidak hanya nilai variabel bebas saat ini atau Xt tapi juga nilai variabel bebas masa lalu pada waktu t-1, t-2 dan seterusnya (Nurahman et al. 2016). ## Lag Optimum

#penentuan lag optimum 
lag_optimum <-finiteDLMauto(formula=Yt ~ Xt,
              data = data.frame(train),model.type = "dlm",error.type = "AIC")
lag_optimum
##    q - k   MASE      AIC      BIC   GMRAE  MBRAE R.Adj.Sq Ljung-Box
## 10    10 3.6559 3206.004 3246.921 3.05855 1.4672  0.92437         0

Diperolah lag optimum untuk peubah CPI (Consumer Price Index) adalah 10 bulan sebelumnya.

model.dlm2 = dLagM::dlm(x = train$Xt,y = train$Yt , q = 10) 
summary(model.dlm2)
## 
## Call:
## lm(formula = model.formula, data = design)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6781.0 -1005.1  -229.6   693.1  8014.5 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -10177.9      657.2 -15.488  < 2e-16 ***
## x.t           1717.4      447.5   3.838 0.000178 ***
## x.1           -510.4      750.0  -0.681 0.497168    
## x.2            301.4      776.9   0.388 0.698604    
## x.3           -777.0      748.2  -1.039 0.300595    
## x.4            567.0      709.4   0.799 0.425291    
## x.5            209.2      691.3   0.303 0.762537    
## x.6           -611.2      708.9  -0.862 0.389899    
## x.7            840.7      751.0   1.119 0.264620    
## x.8           -329.4      781.5  -0.421 0.673957    
## x.9            365.6      764.5   0.478 0.633123    
## x.10         -1419.0      469.7  -3.021 0.002936 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2595 on 160 degrees of freedom
## Multiple R-squared:  0.9292, Adjusted R-squared:  0.9244 
## F-statistic:   191 on 11 and 160 DF,  p-value: < 2.2e-16
## 
## AIC and BIC values for the model:
##        AIC      BIC
## 1 3206.004 3246.921

Pada taraf nyata 5% terdapat 2 peubah yang berpengaruh terhadap model yaitu X.t dan X.10. Artinya berdasarkan metode DLM, harga emas saat ini dipengaruhi oleh CPI (Consumer Price Index) saat ini dan pada 10 bulan sebelumnya. Model tersebut merupakan model yang baik karena memiliki yaitu R-Squared 92.92%.

AIC(model.dlm2)
## [1] 3206.004
BIC(model.dlm2)
## [1] 3246.921

Ramalan Lag

#ramalan
(fore.dlm2 <- dLagM::forecast(model = model.dlm2, x=test$Xt, h=46)) #meramalkan 46 periode ke depan
## $forecasts
##  [1] 30954.41 30831.13 33027.92 33084.27 33192.84 30152.17 29207.41 30085.61
##  [9] 30162.53 30925.35 29170.43 29686.36 28006.12 27948.87 26714.55 28660.97
## [17] 31696.13 30414.97 30918.23 32071.92 34407.27 33263.70 33574.63 32850.99
## [25] 33364.99 32082.85 30817.16 32542.26 37487.94 35870.17 35324.25 34791.99
## [33] 35780.82 36304.89 38479.97 39964.71 40821.86 40478.33 37549.35 38828.29
## [41] 38590.47 40628.44 40815.68 43513.37 42644.93 43649.17
## 
## $call
## forecast.dlm(model = model.dlm2, x = test$Xt, h = 46)
## 
## attr(,"class")
## [1] "forecast.dlm" "dLagM"

Data dan plot di atas merupakan hasil peramalan harga emas untuk 46 periode ke depan dengan menggunakan Model Regresi dengan Distribusi Lag Optimum = 10.

MAPE Testing dan Akurasi Data Training

#akurasi testing
mape.dlm2 <- MAPE(fore.dlm2$forecasts, test$Yt)

#akurasi data training
mape_train <- GoF(model.dlm2)["MAPE"]

c("MAPE_testing" = mape.dlm2, "MAPE_training" = mape_train)
## $MAPE_testing
## [1] 0.1062017
## 
## $MAPE_training.MAPE
## [1] 0.09896667

Hasil di atas merupakan nilai MAPE untuk data training dan data testing. Terlihat bahwa nilai MAPE keduanya tidak jauh berbeda. Artinya, model regresi dengan distribusi lag ini tidak overfitted (terlalu mempelajari data train) atau underfited (performa data test kurang baik).

Model Autoregressive / Dynamic Regression

Modelling ARDL

Autoregressive distributed lag (ARDL)merupakan model regresi dengan memasukkan nilai variabel yang menjelaskan nilai masa kini atau nilai masa lalu dari variabel bebas (X) sebagai tambahan pada model yang memasukkan lag dari variabel takbebas (Y) disebut autoregressive distributed lag (ARDL). ARDL merupakan gabungan antara metode autoregressive (AR) dan distributed lag (DL) (Aqibah et al. 2020).

pq_optimum <-ardlBoundOrders(data = data.frame(datareg) , formula = Yt ~ Xt )
c(p=pq_optimum$p$Xt, q=pq_optimum$q)
##  p  q 
## 15  1

Diperoleh lag optimum untuk peubah Xt atau CPI (Consumer Price Index) adalah 15 bulan sebelumnya, dan lag optimum untuk peubah Yt atau harga emas (Gold Price) adalah 1 bulan sebelumnya.

#MODEL AUTOREGRESSIVE 
model.ardl = ardlDlm(x = train$Xt, y = train$Yt, p = 15 , q = 1)
summary(model.ardl)
## 
## Time series regression with "ts" data:
## Start = 16, End = 182
## 
## Call:
## dynlm(formula = as.formula(model.text), data = data, start = 1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1613.48  -258.97   -47.97   260.39  3005.27 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   -0.32865  279.03155  -0.001    0.999    
## X.t          202.56548  124.01112   1.633    0.104    
## X.1         -211.08896  197.62363  -1.068    0.287    
## X.2           25.84105  204.33958   0.126    0.900    
## X.3           64.07170  204.66651   0.313    0.755    
## X.4          140.19679  204.84212   0.684    0.495    
## X.5          -68.05198  204.40119  -0.333    0.740    
## X.6         -263.27215  206.97022  -1.272    0.205    
## X.7          257.05999  214.36759   1.199    0.232    
## X.8         -105.64664  213.64411  -0.494    0.622    
## X.9           29.24539  207.25544   0.141    0.888    
## X.10         151.64449  205.08500   0.739    0.461    
## X.11        -162.78965  204.82451  -0.795    0.428    
## X.12        -298.04148  206.35876  -1.444    0.151    
## X.13         322.07709  208.26916   1.546    0.124    
## X.14          83.42410  202.70641   0.412    0.681    
## X.15        -164.15126  129.00383  -1.272    0.205    
## Y.1            0.97191    0.02224  43.701   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 666.3 on 149 degrees of freedom
## Multiple R-squared:  0.9955, Adjusted R-squared:  0.9949 
## F-statistic:  1922 on 17 and 149 DF,  p-value: < 2.2e-16

Berdasarkan hasil di atas terlihat bahwa terdapat 1 peubah yang berpengaruh terhadap model dalam tingkat kepercayaan 95%. Model tersebut merupakan model yang baik karena memiliki yaitu R-Squared 99.55%.

AIC(model.ardl)
## [1] 2664.438
BIC(model.ardl)
## [1] 2723.68

Ramalan Autoregressive

#ramalan
(fore.ardl <- dLagM::forecast(model = model.ardl, x=test$Xt, h=46))
## $forecasts
##  [1] 28312.38 28149.50 28216.87 27995.47 28098.13 28460.15 28447.45 28211.58
##  [9] 28025.95 27745.47 27234.44 27562.98 27375.38 26658.68 26222.64 25992.77
## [17] 25974.11 26177.58 26108.84 25749.18 25978.49 25942.84 25799.56 25879.06
## [25] 25738.61 25455.94 25740.22 25796.83 25690.54 26002.62 26245.08 26125.52
## [33] 26775.64 27168.35 26773.36 27151.42 27365.00 27534.42 28601.35 28918.39
## [41] 27883.52 28811.24 29572.25 29681.92 30482.17 30890.89
## 
## $call
## forecast.ardlDlm(model = model.ardl, x = test$Xt, h = 46)
## 
## attr(,"class")
## [1] "forecast.ardlDlm" "dLagM"

Data di atas merupakan hasil peramalan harga emas untuk 46 periode ke depan dengan menggunakan Model Autoregressive.

MAPE Testing dan Akurasi Data Training

#akurasi testing
mape.ardl <- MAPE(fore.ardl$forecasts, test$Yt) #data testing

#akurasi data training
mape_train <- GoF(model.ardl)["MAPE"]

c("MAPE_testing" = mape.ardl, "MAPE_training" = mape_train)
## $MAPE_testing
## [1] 0.119553
## 
## $MAPE_training.MAPE
## [1] 0.02833137

Hasil di atas merupakan nilai MAPE untuk data training dan data testing. Terlihat bahwa nilai MAPE keduanya tidak jauh berbeda. Artinya, model autoregressive ini tidak overfitted atau underfited.

Perbandingan Tiga Metode Penanganan Autokorelasi

Perbandingan Keakuratan Ramalan

#PERBANDINGAN
akurasi <- matrix(c(mape.koyck,mape.dlm2, mape.ardl))
row.names(akurasi)<- c("Koyck","DLM","Autoregressive")
colnames(akurasi) <- c("MAPE")
akurasi
##                      MAPE
## Koyck          0.05306663
## DLM            0.10620173
## Autoregressive 0.11955297

Berdasarkan nilai keakuratan MAPE, model Koyck adalah model paling ideal karena menghasilkan nilai MAPE terkecil dibandingkan model lainnya.

Plot Perbandingan Data Aktual dengan Tiga Metode Penanganan Autokorelasi

#PLOT
par(mfrow=c(1,1))
plot(test$Xt, test$Yt, type="b", col="black")
points(test$Xt, fore.koyck$forecasts,col="red")
points(test$Xt, fore.dlm2$forecasts,col="blue")
points(test$Xt, fore.ardl$forecasts,col="green")
legend("topleft",c("aktual", "koyck","DLM", "autoregressive"), lty=1, col=c("black","red","blue","green"), cex=0.8)

Secara eksploratif, terlihat bahwa metode Model Koyck merupakan metode yang sesuai untuk peramalan karena memiliki tren data yang paling mendekati pola data aktual dibandingkan dengan metode Distributed Lag Model dan Autoregressive Model.

Diagnostik Model

Hipotesis: 1. Uji Autokorelasi (Durbin-Watson Test) H0: Sisaan saling bebas (Tidak ada autokorelasi) H1: Sisaan tidak saling bebas (Ada autokorelasi)

  1. Uji Heterogenitas (Breusch-Pagan Test) H0: Tidak ada heterogenitas H1: Ada heterogenitas

  2. Uji Normalitas (Shapiro-Wilk) H0: Sebaran sisaan mengikuti sebaran normal H1: Sebaran sisaan tidak mengikuti sebaran norma

Uji Autokorelasi

#durbin watson
dwtest(model.koyck$model)
## 
##  Durbin-Watson test
## 
## data:  model.koyck$model
## DW = 1.7523, p-value = 0.03393
## alternative hypothesis: true autocorrelation is greater than 0

Uji Heterogenitas

bptest(model.koyck$model)
## 
##  studentized Breusch-Pagan test
## 
## data:  model.koyck$model
## BP = 15.344, df = 2, p-value = 0.0004657

Normalitas

shapiro.test(residuals(model.koyck$model))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(model.koyck$model)
## W = 0.89967, p-value = 1.011e-09

Berdasarkan uji diagnostik diperoleh p-value < 0.05, maka Tolak H0. Artinya, cukup bukti untuk menyatakan bahwa terdapat autokorelasi pada model awal dengan taraf nyata 5%. Autokorelasi dan sebaran belum menyebar normal pada model masih belum berhasik ditangani, sehingga perlu dilakukan penanganan dengan metode lain.

Kesimpulan

Metode yang paling cocok untuk metode peramalan terbaik yaitu metode Model Koyck. Hasil uji diagnostik menunjukkan bahwa dengan metode Model Koyck autokorelasi pada model regresi deret waktu belum berhasil ditangani, sehingga perlu dilakukan uji lanjut atau penanganan dengan metode lain.

Daftar Pustaka

https://www.kaggle.com/code/somyaagarwal69/gold-forecasting-with-regression-arima/data

Aqibah, M., Suciptawati, N.L.P. and Sumarjaya, I.W., 2020. Model Dinamis Autoregressive Distributed Lag (Studi Kasus: Pengaruh Kurs Dolar Amerika dan Inflasi terhadap Harga Saham Tahun 2014-2018). E-Jurnal Matematika, 9(4), pp.240-250.

Cristy, L., 2014. Analisis Faktor–Faktor yang Mempengaruhi Harga Emas di Indonesia.

Beik, I.S. dan Fatmawati, S.W., 2014. Pengaruh Indeks Harga Saham Syariah Internasional Dan Variabel Makro Ekonomi Terhadap Jakarta Islamic Index. Al-Iqtishad: Jurnal Ilmu Ekonomi Syariah, 6(2), pp.155-178.

Gujarati, D. N. (2004). Basic Econometrics.Fourth Edition. New York: The McGrawHill.

Gujarati, D. N. (2006). Essentials of Econometrics. Third Edition. New York: The McGraw-Hill.