Tugas Individu MPDW Pertemua 4
Library
Sebelum melakukan pemodelan diperlukan library-library sebagai berikut:
## Loading required package: nardl
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
## Loading required package: dynlm
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
## Attaching package: 'MLmetrics'
## The following object is masked from 'package:dLagM':
##
## MAPE
## The following object is masked from 'package:base':
##
## Recall
## Loading required package: carData
data yang digunakan merupakan data hubungan temperature rata-rata dan kelembapan dengans satuan waktu harian
data <- read.csv("C:/Users/Agsyan/Documents/kuliah IPB/Metode Peramalan Deret Waktu/DailyDelhiClimateTest.csv")
View(data)train <- data[1:81,]
test <- data[82:108,]
train.ts <- ts(train)
test.ts <- ts(test)
data.ts <- ts(data)
train## date meantemp humidity wind_speed meanpressure
## 1 2017-01-01 15.91304 85.86957 2.743478 59.000
## 2 2017-01-02 18.50000 77.22222 2.894444 1018.278
## 3 2017-01-03 17.11111 81.88889 4.016667 1018.333
## 4 2017-01-04 18.70000 70.05000 4.545000 1015.700
## 5 2017-01-05 18.38889 74.94444 3.300000 1014.333
## 6 2017-01-06 19.31818 79.31818 8.681818 1011.773
## 7 2017-01-07 14.70833 95.83333 10.041667 1011.375
## 8 2017-01-08 15.68421 83.52632 1.950000 1015.550
## 9 2017-01-09 14.57143 80.80952 6.542857 1015.952
## 10 2017-01-10 12.11111 71.94444 9.361111 1016.889
## 11 2017-01-11 11.00000 72.11111 9.772222 1016.778
## 12 2017-01-12 11.78947 74.57895 6.626316 1016.368
## 13 2017-01-13 13.23529 67.05882 6.435294 1017.529
## 14 2017-01-14 13.20000 74.28000 5.276000 1018.840
## 15 2017-01-15 16.43478 72.56522 3.630435 1018.130
## 16 2017-01-16 14.65000 78.45000 10.380000 1017.150
## 17 2017-01-17 11.72222 84.44444 8.038889 1018.389
## 18 2017-01-18 13.04167 78.33333 6.029167 1021.958
## 19 2017-01-19 14.61905 75.14286 10.338095 1022.810
## 20 2017-01-20 15.26316 66.47368 11.226316 1021.789
## 21 2017-01-21 15.39130 70.86957 13.695652 1020.478
## 22 2017-01-22 18.44000 76.24000 5.868000 1021.040
## 23 2017-01-23 18.11765 76.00000 6.752941 1019.824
## 24 2017-01-24 18.34783 68.13043 3.391304 1018.870
## 25 2017-01-25 21.00000 69.96000 8.756000 1018.400
## 26 2017-01-26 16.17857 91.64286 8.467857 1017.786
## 27 2017-01-27 16.50000 77.04167 14.358333 1018.125
## 28 2017-01-28 14.86364 82.77273 9.690909 1019.636
## 29 2017-01-29 15.66667 81.77778 10.294444 1017.389
## 30 2017-01-30 16.44444 77.55556 4.322222 1015.833
## 31 2017-01-31 16.12500 76.00000 4.625000 1015.500
## 32 2017-02-01 15.25000 78.62500 5.100000 1017.500
## 33 2017-02-02 17.09091 66.54545 3.027273 1018.909
## 34 2017-02-03 15.63636 78.18182 1.854545 1017.727
## 35 2017-02-04 18.70000 77.60000 9.820000 1014.400
## 36 2017-02-05 18.63158 77.63158 8.100000 1014.211
## 37 2017-02-06 16.88889 69.66667 9.044444 1016.000
## 38 2017-02-07 15.12500 63.75000 7.637500 1016.125
## 39 2017-02-08 15.70000 68.40000 4.080000 1015.600
## 40 2017-02-09 15.37500 68.37500 7.875000 1016.375
## 41 2017-02-10 14.66667 71.77778 9.066667 1015.667
## 42 2017-02-11 15.62500 64.00000 3.950000 1016.625
## 43 2017-02-12 16.25000 70.37500 1.625000 1019.625
## 44 2017-02-13 16.33333 67.00000 6.377778 1021.556
## 45 2017-02-14 16.87500 65.50000 6.962500 1021.375
## 46 2017-02-15 17.57143 67.71429 5.557143 1020.571
## 47 2017-02-16 20.25000 56.75000 10.437500 1017.625
## 48 2017-02-17 21.30000 64.40000 9.280000 1016.500
## 49 2017-02-18 21.12500 70.75000 6.250000 1016.250
## 50 2017-02-19 22.36364 66.09091 6.054545 1013.000
## 51 2017-02-20 23.37500 60.12500 6.937500 1005.375
## 52 2017-02-21 21.83333 69.41667 12.341667 1007.417
## 53 2017-02-22 19.12500 57.12500 7.412500 1012.250
## 54 2017-02-23 18.62500 42.87500 14.350000 1015.250
## 55 2017-02-24 19.12500 40.37500 16.662500 1016.125
## 56 2017-02-25 19.00000 50.42857 11.928571 1014.286
## 57 2017-02-26 18.75000 59.00000 11.112500 1012.375
## 58 2017-02-27 19.87500 58.37500 5.100000 1014.250
## 59 2017-02-28 23.33333 51.66667 3.911111 1013.111
## 60 2017-03-01 24.46154 47.92308 6.415385 1012.923
## 61 2017-03-02 23.75000 54.25000 5.930000 1012.150
## 62 2017-03-03 20.50000 42.50000 7.412500 1010.625
## 63 2017-03-04 19.12500 43.12500 8.350000 1010.000
## 64 2017-03-05 19.75000 41.25000 9.962500 1010.500
## 65 2017-03-06 20.00000 42.44444 9.666667 1010.333
## 66 2017-03-07 22.62500 41.50000 6.025000 1007.375
## 67 2017-03-08 21.54545 52.72727 10.263636 1008.909
## 68 2017-03-09 20.78571 69.07143 8.342857 1007.357
## 69 2017-03-10 19.93750 67.75000 11.462500 1006.875
## 70 2017-03-11 18.53333 60.40000 5.566667 1009.800
## 71 2017-03-12 17.37500 56.62500 7.637500 1014.750
## 72 2017-03-13 17.44444 49.33333 9.055556 1014.889
## 73 2017-03-14 18.00000 56.33333 4.522222 1016.556
## 74 2017-03-15 19.87500 54.75000 7.175000 1014.125
## 75 2017-03-16 24.00000 49.20000 5.560000 1011.100
## 76 2017-03-17 20.90000 59.70000 11.490000 1010.700
## 77 2017-03-18 24.69231 46.30769 7.123077 1009.846
## 78 2017-03-19 24.66667 52.27778 9.161111 1011.889
## 79 2017-03-20 23.33333 54.66667 10.077778 1012.556
## 80 2017-03-21 25.00000 49.00000 9.262500 1011.750
## 81 2017-03-22 27.25000 45.00000 10.187500 1009.750
Model KOYCK
Ahli Statistika bernama Koyck mengusulkan suatu metode untuk menduga model dinasim distributed lag dengan mengasumsikan bahwa semua kefisien Beta memunyai tanda sama.
Semakin jauh jarak lag peubah independen dari periode sekarang maka semakin kecil pengaruh peubah lag terhadap peubah dependen
model.koyck <- dLagM::koyckDlm(x = train$humidity, y = train$meantemp)
summary(model.koyck)##
## Call:
## "Y ~ (Intercept) + Y.1 + X.t"
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.41012 -0.87195 -0.08079 0.99509 3.66792
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.01358 2.53256 2.375 0.0201 *
## Y.1 0.81742 0.07258 11.262 <2e-16 ***
## X.t -0.03918 0.02248 -1.743 0.0853 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.65 on 77 degrees of freedom
## Multiple R-Squared: 0.7807, Adjusted R-squared: 0.775
## Wald test: 131.8 on 2 and 77 DF, p-value: < 2.2e-16
##
## Diagnostic tests:
## NULL
##
## alpha beta phi
## Geometric coefficients: 32.937 -0.03918195 0.8174218
AIC(model.koyck)## [1] 312.1038
BIC(model.koyck)## [1] 321.6319
#Ramalan
(fore.koyck <- forecast(model = model.koyck, x=test$humidity, h = 27))## $forecasts
## [1] 26.33902 26.06782 25.77919 25.63240 25.45266 25.22574 25.28187 25.23540
## [9] 25.16732 25.20963 25.29809 25.52712 25.63141 25.16288 25.56354 25.73921
## [17] 25.90240 26.35905 26.79879 27.22401 27.24835 27.14634 26.72937 26.66988
## [25] 26.47214 26.14615 26.31504
##
## $call
## forecast.koyckDlm(model = model.koyck, x = test$humidity, h = 27)
##
## attr(,"class")
## [1] "forecast.koyckDlm" "dLagM"
#MAPE data testing
mape.koyck <- MAPE(fore.koyck$forecasts, test$meantemp)
mape_train <- dLagM::GoF(model.koyck)["MAPE"]
c("MAPE_testing"= mape.koyck, "MAPE_training" = mape_train)## $MAPE_testing
## [1] 0.1216364
##
## $MAPE_training.MAPE
## [1] 0.07068507
Regression with Distributed Lag
Model lag terdistribusi adalah model data deret waktu di mana persamaan regresi digunakan untuk mmeprediksi nilai saat ini dari peubah dependen berdasarkan nilai saat ini dari peubah penjelas dan nilai lag
#Lag = 2
model.dlm <- dLagM::dlm(x = train$humidity, y = train$meantemp, q = 27)
summary(model.dlm)##
## Call:
## lm(formula = model.formula, data = design)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.0496 -1.2510 -0.0079 1.0825 3.8351
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 35.6929972 3.8197211 9.344 1.24e-09 ***
## x.t -0.1054381 0.0632350 -1.667 0.1079
## x.1 -0.0385658 0.0746411 -0.517 0.6099
## x.2 -0.0020110 0.0656192 -0.031 0.9758
## x.3 -0.0128850 0.0636417 -0.202 0.8412
## x.4 -0.0008517 0.0618584 -0.014 0.9891
## x.5 -0.0302766 0.0631064 -0.480 0.6356
## x.6 -0.0538737 0.0632937 -0.851 0.4028
## x.7 0.0809987 0.0634403 1.277 0.2134
## x.8 0.0206085 0.0631987 0.326 0.7471
## x.9 0.0591748 0.0635571 0.931 0.3607
## x.10 0.0488499 0.0640595 0.763 0.4529
## x.11 -0.0176464 0.0642468 -0.275 0.7858
## x.12 -0.0215205 0.0640828 -0.336 0.7398
## x.13 -0.0568623 0.0646720 -0.879 0.3876
## x.14 -0.0706909 0.0713484 -0.991 0.3313
## x.15 -0.0706779 0.0712531 -0.992 0.3307
## x.16 -0.0126492 0.0709242 -0.178 0.8599
## x.17 0.0521922 0.0722715 0.722 0.4769
## x.18 0.0674955 0.0711372 0.949 0.3518
## x.19 -0.0271411 0.0682736 -0.398 0.6943
## x.20 0.0155920 0.0701713 0.222 0.8260
## x.21 -0.0064067 0.0634746 -0.101 0.9204
## x.22 0.0150193 0.0648521 0.232 0.8187
## x.23 0.0703533 0.0665616 1.057 0.3006
## x.24 0.0126081 0.0655848 0.192 0.8491
## x.25 0.0114000 0.0666626 0.171 0.8656
## x.26 -0.0563160 0.0669637 -0.841 0.4083
## x.27 -0.1204386 0.0630603 -1.910 0.0677 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.462 on 25 degrees of freedom
## Multiple R-squared: 0.7134, Adjusted R-squared: 0.3924
## F-statistic: 2.222 on 28 and 25 DF, p-value: 0.02356
##
## AIC and BIC values for the model:
## AIC BIC
## 1 268.9591 328.6286
AIC(model.dlm)## [1] 268.9591
BIC(model.dlm)## [1] 328.6286
#ramalan
#(fore.dlm <- forecast(model = model.dlm , x = test$humidity, h = 27))Di sini saya tidak dapat melakukan forecasting untuk model dlm disebabkan r version yang tidak mendukung
Dynamic Regression
model.ardl = ardlDlm(x = train$humidity, y = train$meantemp, p = 1, q = 1)
summary(model.ardl)##
## Time series regression with "ts" data:
## Start = 2, End = 81
##
## Call:
## dynlm(formula = as.formula(model.text), data = data, start = 1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.1445 -0.7622 -0.0236 0.8659 3.2781
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.87942 2.20224 3.124 0.00253 **
## X.t -0.10703 0.02443 -4.382 3.72e-05 ***
## X.1 0.05549 0.02665 2.083 0.04066 *
## Y.1 0.81277 0.06869 11.832 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.583 on 76 degrees of freedom
## Multiple R-squared: 0.8009, Adjusted R-squared: 0.7931
## F-statistic: 101.9 on 3 and 76 DF, p-value: < 2.2e-16
AIC(model.ardl)## [1] 306.3683
BIC(model.ardl)## [1] 318.2785
(fore.ardl <- forecast(model = model.ardl, x = test$humidity,h= 27))## $forecasts
## [1] 26.19995 26.90334 26.62168 26.73104 26.53046 26.23354 26.76552 26.60341
## [9] 26.52028 26.76289 26.96851 27.48745 27.46072 26.04378 27.81698 27.73362
## [17] 27.93442 28.95285 29.50437 30.03814 29.49585 29.17992 28.18456 28.61652
## [25] 28.16185 27.55456 28.48292
##
## $call
## forecast.ardlDlm(model = model.ardl, x = test$humidity, h = 27)
##
## attr(,"class")
## [1] "forecast.ardlDlm" "dLagM"
mape.ardl <- MAPE(fore.ardl$forecasts, test$meantemp)
mape_train <- GoF(model.ardl)["MAPE"]
c("MAPE_testing" = mape.ardl, "MAPE_training" = mape_train)## $MAPE_testing
## [1] 0.08655886
##
## $MAPE_training.MAPE
## [1] 0.06644807
ardlBoundOrders(data = data.frame(train), formula = meantemp ~ humidity, ic = "AIC")## $p
## humidity
## 1 15
##
## $q
## [1] 3
##
## $Stat.table
## q = 1 q = 2 q = 3 q = 4 q = 5 q = 6 q = 7 q = 8
## p = 1 296.2420 295.5327 291.6710 289.3769 285.5460 283.5709 281.5553 280.4933
## p = 2 295.5945 297.3419 293.6477 291.3753 287.5308 285.5243 283.3777 282.3869
## p = 3 295.9381 295.9381 293.9327 292.3658 288.4786 286.3893 284.0183 283.3711
## p = 4 291.5694 292.1648 292.1648 294.0261 290.4771 288.3892 285.9427 285.3180
## p = 5 287.6241 289.4331 290.1046 290.1046 290.5211 286.3266 284.5396 283.5685
## p = 6 284.6356 286.6278 284.6979 285.9861 285.9861 286.9941 283.9992 282.7649
## p = 7 283.4924 285.4909 283.9501 285.9231 286.1519 286.1519 284.5515 281.9991
## p = 8 279.4003 281.3399 279.6523 281.6499 280.3718 282.0688 282.0688 283.1399
## p = 9 274.6883 276.6871 274.9017 276.7357 277.1031 278.9277 276.8250 276.8250
## p = 10 273.2561 275.2342 273.3238 274.9888 275.4894 277.3561 277.3426 275.3810
## p = 11 270.6449 272.6428 271.4553 272.9531 274.2235 275.9048 275.6165 274.3436
## p = 12 271.9866 273.9844 272.4967 274.2143 275.6359 276.8864 275.8180 276.0966
## p = 13 269.4285 271.3718 269.6943 271.6879 272.9028 274.2571 272.7634 273.9571
## p = 14 267.1656 268.9831 267.3939 269.3427 270.7088 272.3569 270.4945 272.2453
## p = 15 262.7285 264.4849 261.8923 263.3624 265.1267 266.9839 264.0650 266.0192
## q = 9 q = 10 q = 11 q = 12 q = 13 q = 14 q = 15
## p = 1 277.0026 272.2849 271.6392 270.4258 269.8854 268.2939 264.2874
## p = 2 279.0026 274.2718 273.6385 272.4053 271.8694 270.1254 265.7138
## p = 3 279.4821 275.3637 274.8483 273.8209 273.2192 270.9994 267.1958
## p = 4 281.0010 276.3107 275.8659 275.0456 274.5627 272.6579 268.9802
## p = 5 279.6425 276.6283 276.1259 275.3020 274.6693 273.2038 269.9491
## p = 6 278.6645 275.8253 274.8100 273.6472 272.8748 271.9892 267.1432
## p = 7 277.8786 274.5250 273.5606 272.9346 272.0632 271.2095 267.1203
## p = 8 279.8085 276.4107 275.5166 274.9097 273.9804 273.0604 269.1119
## p = 9 275.7297 274.9033 274.0808 273.7925 273.1519 271.8424 267.2850
## p = 10 275.3810 276.9019 275.9457 275.6662 275.0323 273.6864 268.8093
## p = 11 275.4509 275.4509 277.3290 276.9320 276.3212 274.4697 269.8943
## p = 12 275.4959 277.0513 277.0513 278.9320 278.2911 276.4692 271.8756
## p = 13 272.5914 274.2752 276.1736 276.1736 276.6398 275.8456 271.1325
## p = 14 270.3243 272.0860 273.9633 275.2025 275.2025 275.2771 271.0417
## p = 15 264.6314 266.2122 267.6266 268.3626 270.3612 270.3612 272.3434
##
## $min.Stat
## [1] 261.8923
Pemodelan library dynlm
#dlm p = 1
cons_lm1 <- dynlm(meantemp ~ humidity + L(humidity), data = train.ts)
cons_lm1##
## Time series regression with "ts" data:
## Start = 2, End = 81
##
## Call:
## dynlm(formula = meantemp ~ humidity + L(humidity), data = train.ts)
##
## Coefficients:
## (Intercept) humidity L(humidity)
## 30.33007 -0.11407 -0.06991
#ardl p = 0 q = 1
cons_lm2 <- dynlm(meantemp ~ humidity + L(meantemp), data = train.ts)
cons_lm2##
## Time series regression with "ts" data:
## Start = 2, End = 81
##
## Call:
## dynlm(formula = meantemp ~ humidity + L(meantemp), data = train.ts)
##
## Coefficients:
## (Intercept) humidity L(meantemp)
## 9.07505 -0.06889 0.75587
#ardl p = 1 q = 1
cons_lm3 <- dynlm(meantemp ~ humidity + L(humidity) + L(meantemp), data = train.ts)
cons_lm3##
## Time series regression with "ts" data:
## Start = 2, End = 81
##
## Call:
## dynlm(formula = meantemp ~ humidity + L(humidity) + L(meantemp),
## data = train.ts)
##
## Coefficients:
## (Intercept) humidity L(humidity) L(meantemp)
## 6.87942 -0.10703 0.05549 0.81277
#dlm p = 2
cons_lm4 <- dynlm(meantemp ~ humidity + L(humidity) + L(meantemp,2), data = train.ts)
cons_lm4##
## Time series regression with "ts" data:
## Start = 3, End = 81
##
## Call:
## dynlm(formula = meantemp ~ humidity + L(humidity) + L(meantemp,
## 2), data = train.ts)
##
## Coefficients:
## (Intercept) humidity L(humidity) L(meantemp, 2)
## 14.16187 -0.04301 -0.05727 0.59158
Ringkasan model
summary(cons_lm1)##
## Time series regression with "ts" data:
## Start = 2, End = 81
##
## Call:
## dynlm(formula = meantemp ~ humidity + L(humidity), data = train.ts)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.0749 -2.2979 -0.0907 2.1049 5.4785
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 30.33007 1.60768 18.866 < 2e-16 ***
## humidity -0.11407 0.04090 -2.789 0.00665 **
## L(humidity) -0.06991 0.04094 -1.707 0.09178 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.65 on 77 degrees of freedom
## Multiple R-squared: 0.4342, Adjusted R-squared: 0.4195
## F-statistic: 29.54 on 2 and 77 DF, p-value: 3.004e-10
summary(cons_lm2)##
## Time series regression with "ts" data:
## Start = 2, End = 81
##
## Call:
## dynlm(formula = meantemp ~ humidity + L(meantemp), data = train.ts)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.5991 -1.0133 -0.1275 1.0056 3.2915
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 9.07505 1.97492 4.595 1.66e-05 ***
## humidity -0.06889 0.01651 -4.173 7.83e-05 ***
## L(meantemp) 0.75587 0.06438 11.741 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.616 on 77 degrees of freedom
## Multiple R-squared: 0.7895, Adjusted R-squared: 0.7841
## F-statistic: 144.4 on 2 and 77 DF, p-value: < 2.2e-16
summary(cons_lm3)##
## Time series regression with "ts" data:
## Start = 2, End = 81
##
## Call:
## dynlm(formula = meantemp ~ humidity + L(humidity) + L(meantemp),
## data = train.ts)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.1445 -0.7622 -0.0236 0.8659 3.2781
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.87942 2.20224 3.124 0.00253 **
## humidity -0.10703 0.02443 -4.382 3.72e-05 ***
## L(humidity) 0.05549 0.02665 2.083 0.04066 *
## L(meantemp) 0.81277 0.06869 11.832 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.583 on 76 degrees of freedom
## Multiple R-squared: 0.8009, Adjusted R-squared: 0.7931
## F-statistic: 101.9 on 3 and 76 DF, p-value: < 2.2e-16
summary(cons_lm4)##
## Time series regression with "ts" data:
## Start = 3, End = 81
##
## Call:
## dynlm(formula = meantemp ~ humidity + L(humidity) + L(meantemp,
## 2), data = train.ts)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.7982 -1.3738 -0.0326 1.4819 4.4412
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 14.16187 2.80035 5.057 2.93e-06 ***
## humidity -0.04301 0.03432 -1.253 0.2140
## L(humidity) -0.05727 0.03327 -1.721 0.0893 .
## L(meantemp, 2) 0.59158 0.08959 6.603 5.10e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.117 on 75 degrees of freedom
## Multiple R-squared: 0.6483, Adjusted R-squared: 0.6343
## F-statistic: 46.09 on 3 and 75 DF, p-value: < 2.2e-16
SSE untuk model
deviance(cons_lm1)## [1] 540.9058
deviance(cons_lm2)## [1] 201.1904
deviance(cons_lm3)## [1] 190.3289
deviance(cons_lm4)## [1] 336.1596
Uji DIagnostik Model
akan dilakukan 3 jenis uji yaitu sebagai berikut:
#Uji non autokorelasi
dwtest(cons_lm1)##
## Durbin-Watson test
##
## data: cons_lm1
## DW = 0.44658, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
dwtest(cons_lm2)##
## Durbin-Watson test
##
## data: cons_lm2
## DW = 1.6991, p-value = 0.06293
## alternative hypothesis: true autocorrelation is greater than 0
dwtest(cons_lm3)##
## Durbin-Watson test
##
## data: cons_lm3
## DW = 1.5764, p-value = 0.01818
## alternative hypothesis: true autocorrelation is greater than 0
dwtest(cons_lm4)##
## Durbin-Watson test
##
## data: cons_lm4
## DW = 0.89479, p-value = 1.605e-08
## alternative hypothesis: true autocorrelation is greater than 0
#Uji Heterogenitas
bptest(cons_lm1)##
## studentized Breusch-Pagan test
##
## data: cons_lm1
## BP = 3.4216, df = 2, p-value = 0.1807
bptest(cons_lm2)##
## studentized Breusch-Pagan test
##
## data: cons_lm2
## BP = 1.8174, df = 2, p-value = 0.4031
bptest(cons_lm3)##
## studentized Breusch-Pagan test
##
## data: cons_lm3
## BP = 7.7642, df = 3, p-value = 0.05115
bptest(cons_lm4)##
## studentized Breusch-Pagan test
##
## data: cons_lm4
## BP = 8.2753, df = 3, p-value = 0.04065
#Uji normalitas
shapiro.test(residuals(cons_lm1))##
## Shapiro-Wilk normality test
##
## data: residuals(cons_lm1)
## W = 0.97994, p-value = 0.2418
shapiro.test(residuals(cons_lm2))##
## Shapiro-Wilk normality test
##
## data: residuals(cons_lm2)
## W = 0.985, p-value = 0.4747
shapiro.test(residuals(cons_lm3))##
## Shapiro-Wilk normality test
##
## data: residuals(cons_lm3)
## W = 0.98626, p-value = 0.5513
shapiro.test(residuals(cons_lm4))##
## Shapiro-Wilk normality test
##
## data: residuals(cons_lm4)
## W = 0.9914, p-value = 0.8804
Perbandingan Keakuratan ramalan
akurasi <- matrix(c(mape.koyck, mape.ardl))
row.names(akurasi) <- c("koyck", "Autoregressive")
colnames(akurasi) <- c("MAPE")
akurasi## MAPE
## koyck 0.12163637
## Autoregressive 0.08655886
dapat dilihat bahwa model ardl lebih baik dari modelmkoyck karena memiliki mape yang lebih kecil