Model Autoregressive Distributed Lag (ARDL) merupakan salah satu metode ekonometrika yang digunakan untuk menganalisis hubungan dinamis antara variabel dependen dengan variabel independen dalam data runtun waktu. Model ini mampu menangkap pengaruh variabel masa lalu (lag) terhadap variabel saat ini.
## [1] 1991 130
## [1] 1998 169
## [1] 260
## DAX SMI CAC FTSE
## 1 1628.75 1678.1 1772.8 2443.6
## 2 1613.63 1688.5 1750.5 2460.2
## 3 1606.51 1678.6 1718.0 2448.2
## 4 1621.04 1684.1 1708.1 2470.4
## 5 1618.16 1686.6 1723.1 2484.7
## 6 1610.61 1671.6 1714.3 2466.8
## DAX SMI CAC FTSE
## Min. :1402 Min. :1587 Min. :1611 Min. :2281
## 1st Qu.:1744 1st Qu.:2166 1st Qu.:1875 1st Qu.:2843
## Median :2141 Median :2796 Median :1992 Median :3247
## Mean :2531 Mean :3376 Mean :2228 Mean :3566
## 3rd Qu.:2722 3rd Qu.:3812 3rd Qu.:2274 3rd Qu.:3994
## Max. :6186 Max. :8412 Max. :4388 Max. :6179
## Warning: package 'ggplot2' was built under R version 4.4.3
## Warning: package 'tseries' was built under R version 4.4.3
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
##
## Augmented Dickey-Fuller Test
##
## data: data_ts$DAX
## Dickey-Fuller = -0.82073, Lag order = 12, p-value = 0.9598
## alternative hypothesis: stationary
##
## Augmented Dickey-Fuller Test
##
## data: data_ts$SMI
## Dickey-Fuller = -0.522, Lag order = 12, p-value = 0.9808
## alternative hypothesis: stationary
## Warning in adf.test(data_ts$CAC): p-value greater than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: data_ts$CAC
## Dickey-Fuller = -0.24897, Lag order = 12, p-value = 0.99
## alternative hypothesis: stationary
##
## Augmented Dickey-Fuller Test
##
## data: data_ts$FTSE
## Dickey-Fuller = -1.9736, Lag order = 12, p-value = 0.5895
## alternative hypothesis: stationary
data_diff <- data.frame(
DAX = diff(data_ts$DAX),
SMI = diff(data_ts$SMI),
CAC = diff(data_ts$CAC),
FTSE = diff(data_ts$FTSE)
)
adf.test(data_diff$DAX)## Warning in adf.test(data_diff$DAX): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: data_diff$DAX
## Dickey-Fuller = -9.9997, Lag order = 12, p-value = 0.01
## alternative hypothesis: stationary
## Warning in adf.test(data_diff$SMI): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: data_diff$SMI
## Dickey-Fuller = -10.769, Lag order = 12, p-value = 0.01
## alternative hypothesis: stationary
## Warning in adf.test(data_diff$CAC): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: data_diff$CAC
## Dickey-Fuller = -11.447, Lag order = 12, p-value = 0.01
## alternative hypothesis: stationary
## Warning in adf.test(data_diff$FTSE): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: data_diff$FTSE
## Dickey-Fuller = -10.838, Lag order = 12, p-value = 0.01
## alternative hypothesis: stationary
## Warning: package 'ARDL' was built under R version 4.4.3
## To cite the ARDL package in publications:
##
## Use this reference to refer to the validity of the ARDL package.
##
## Natsiopoulos, Kleanthis, and Tzeremes, Nickolaos G. (2022). ARDL
## bounds test for cointegration: Replicating the Pesaran et al. (2001)
## results for the UK earnings equation using R. Journal of Applied
## Econometrics, 37(5), 1079-1090. https://doi.org/10.1002/jae.2919
##
## Use this reference to cite this specific version of the ARDL package.
##
## Kleanthis Natsiopoulos and Nickolaos Tzeremes (2023). ARDL: ARDL, ECM
## and Bounds-Test for Cointegration. R package version 0.2.4.
## https://CRAN.R-project.org/package=ARDL
lag_model <- auto_ardl(DAX ~ SMI + CAC + FTSE,
data = data_ts,
max_order = c(4,4,4,4))
lag_model$best_order## DAX SMI CAC FTSE
## 1 4 1 2
Model Autoregressive Distributed Lag (ARDL) secara umum dapat dituliskan sebagai berikut: \[ Y_t = \alpha_0 + \sum_{i=1}^{p} \alpha_i Y_{t-i} + \sum_{j=0}^{q_1} \beta_{1j} X_{1,t-j} + \sum_{j=0}^{q_2} \beta_{2j} X_{2,t-j} + ... + \sum_{j=0}^{q_k} \beta_{kj} X_{k,t-j} + \varepsilon_t \]
library(ARDL)
model_ardl <- ardl(DAX ~ SMI + CAC + FTSE,
data = data_ts,
order = lag_model$best_order)
summary(model_ardl)##
## Time series regression with "ts" data:
## Start = 5, End = 1860
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -93.356 -7.930 0.152 8.435 108.192
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -10.755254 7.422959 -1.449 0.148
## L(DAX, 1) 0.982780 0.003808 258.055 < 2e-16 ***
## SMI 0.329637 0.014402 22.888 < 2e-16 ***
## L(SMI, 1) -0.361925 0.020192 -17.925 < 2e-16 ***
## L(SMI, 2) 0.020519 0.017430 1.177 0.239
## L(SMI, 3) 0.021827 0.015181 1.438 0.151
## L(SMI, 4) -0.003261 0.010486 -0.311 0.756
## CAC 0.436693 0.023167 18.850 < 2e-16 ***
## L(CAC, 1) -0.424879 0.023385 -18.169 < 2e-16 ***
## FTSE 0.204024 0.019462 10.483 < 2e-16 ***
## L(FTSE, 1) -0.227677 0.027491 -8.282 2.3e-16 ***
## L(FTSE, 2) 0.025173 0.017539 1.435 0.151
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 17.76 on 1844 degrees of freedom
## Multiple R-squared: 0.9997, Adjusted R-squared: 0.9997
## F-statistic: 6.293e+05 on 11 and 1844 DF, p-value: < 2.2e-16
Model Akhir: \[ DAX = -10.7553 + 0.9828 DAX(t-1) + 0.3296 SMI + -0.3619 SMI(t-1) + 0.0205 SMI(t-2) + 0.0218 SMI(t-3) + -0.0033 SMI(t-4) + 0.4367 CAC + -0.4249 CAC(t-1) + 0.204 FTSE + -0.2277 FTSE(t-1) + 0.0252 FTSE(t-2) \]
##
## Bounds F-test (Wald) for no cointegration
##
## data: d(DAX) ~ L(DAX, 1) + L(SMI, 1) + L(CAC, 1) + L(FTSE, 1) + d(SMI) + d(L(SMI, 1)) + d(L(SMI, 2)) + d(L(SMI, 3)) + d(CAC) + d(FTSE) + d(L(FTSE, 1))
## F = 6.2796, p-value = 0.003788
## alternative hypothesis: Possible cointegration
## null values:
## k T
## 3 1000
Model Error Correction dari pendekatan ARDL secara umum dapat dituliskan sebagai berikut: \[ \Delta Y_t = \alpha_0 + \sum_{i=1}^{p-1} \alpha_i \Delta Y_{t-i} + \sum_{j=0}^{q_1-1} \beta_{1j} \Delta X_{1,t-j} + \sum_{j=0}^{q_2-1} \beta_{2j} \Delta X_{2,t-j} + \cdots + \sum_{j=0}^{q_k-1} \beta_{kj} \Delta X_{k,t-j} + \lambda ECT_{t-1} + \varepsilon_t \]
## Warning: package 'ecm' was built under R version 4.4.3
##
## Time series regression with "zooreg" data:
## Start = 5, End = 1860
##
## Call:
## dynlm::dynlm(formula = full_formula, data = data, start = start,
## end = end)
##
## Residuals:
## Min 1Q Median 3Q Max
## -93.356 -7.930 0.152 8.435 108.192
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -10.755254 2.245349 -4.790 1.80e-06 ***
## d(SMI) 0.329637 0.014310 23.035 < 2e-16 ***
## d(L(SMI, 1)) -0.039085 0.013280 -2.943 0.00329 **
## d(L(SMI, 2)) -0.018566 0.010440 -1.778 0.07552 .
## d(L(SMI, 3)) 0.003261 0.010462 0.312 0.75532
## d(CAC) 0.436693 0.023121 18.888 < 2e-16 ***
## d(FTSE) 0.204024 0.019350 10.544 < 2e-16 ***
## d(L(FTSE, 1)) -0.025173 0.017330 -1.453 0.14651
## ect -0.017220 0.003433 -5.016 5.78e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 17.75 on 1847 degrees of freedom
## (0 observations deleted due to missingness)
## Multiple R-squared: 0.7035, Adjusted R-squared: 0.7022
## F-statistic: 547.7 on 8 and 1847 DF, p-value: < 2.2e-16
Model Jangka Pendek \[ ΔDAX = -10.7553 + 0.3296 ΔSMI + -0.0391 ΔSMI(t-1) + -0.0186 ΔSMI(t-2) + 0.0033 ΔSMI(t-3) + 0.4367 ΔCAC + 0.204 ΔFTSE + -0.0252 ΔFTSE(t-1) + -0.0172 ECT(t-1) \]
## Warning: package 'lmtest' was built under R version 4.4.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.4.3
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: model_ecm
## LM test = 0.017983, df = 1, p-value = 0.8933
##
## Jarque Bera Test
##
## data: residuals(model_ecm)
## X-squared = 2854.4, df = 2, p-value < 2.2e-16
Hasil uji normalitas menunjukkan bahwa residual tidak berdistribusi normal. Namun, hal ini tidak menjadi masalah yang serius karena jumlah sampel yang digunakan relatif besar sehingga berdasarkan Central Limit Theorem, estimasi parameter tetap bersifat konsisten dan dapat digunakan untuk analisis lebih lanjut.
## Warning: package 'car' was built under R version 4.4.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.4.3
## SMI CAC
## 9.657789 9.657789
##
## studentized Breusch-Pagan test
##
## data: model_ecm
## BP = 37.734, df = 8, p-value = 8.43e-06
## Warning: package 'sandwich' was built under R version 4.4.3
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -10.7552536 2.5656062 -4.1921 2.895e-05 ***
## d(SMI) 0.3296369 0.0218850 15.0623 < 2.2e-16 ***
## d(L(SMI, 1)) -0.0390851 0.0250426 -1.5607 0.1188
## d(L(SMI, 2)) -0.0185661 0.0169641 -1.0944 0.2739
## d(L(SMI, 3)) 0.0032608 0.0185141 0.1761 0.8602
## d(CAC) 0.4366925 0.0404960 10.7836 < 2.2e-16 ***
## d(FTSE) 0.2040243 0.0275582 7.4034 2.007e-13 ***
## d(L(FTSE, 1)) -0.0251726 0.0262638 -0.9585 0.3380
## ect -0.0172199 0.0042033 -4.0968 4.371e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Hasil uji heteroskedastisitas menunjukkan adanya heteroskedastisitas pada model. Oleh karena itu, dilakukan estimasi menggunakan HAC (Newey–West) standard error sehingga standar error yang dihasilkan bersifat robust terhadap heteroskedastisitas sehingga hasil estimasi parameter dan pengujian statistik tetap dapat diinterpretasikan secara valid.
plot(fitted(model_ecm),
type="l",
col="blue",
main="Fitted vs Actual")
lines(data_ts$DAX, col="red")
legend("topleft",
legend=c("Fitted","Actual"),
col=c("blue","red"),
lty=1)
# Akurasi Peramalan
actual <- model.response(model.frame(model_ecm))
pred <- fitted(model_ecm)
mae <- mean(abs(actual - pred))
mae## [1] 12.04177
Berdasarkan hasil perhitungan Mean Absolute Error (MAE), diperoleh nilai sebesar 12. Nilai MAE tersebut menunjukkan bahwa rata-rata selisih absolut antara nilai aktual dan nilai prediksi yang dihasilkan oleh model adalah sebesar 12 poin indeks. Nilai kesalahan yang relatif kecil ini menunjukkan bahwa model yang diestimasi memiliki kemampuan yang cukup baik dalam memprediksi perubahan variabel dependen.