Pemanasan global telah menyebabkan perubahan iklim di hampir semua belahan dunia, termasuk di Indonesia. Akibatnya pergantian musim hujan dan kemarau menjadi tidak menentu. Pada tahun 2010, hampir sepanjang tahun terjadi hujan secara terus menerus. Sebagai dampaknya, sektor pertanian banyak yang mengalami kerugian karena dampak dari pemanasan global yaitu peningkatan dan penurunan suhu rata-rata.Sebab bidang pertanian sangat dipengaruhi oleh kondisi iklim terutama suhu dan kelembapan udara. Adanya informasi tentang peningkatan atau penurunan temperatur menjadi hal yang sangat diperlukan untuk mengantisipasi kondisi yang tidak menentu.
Pada laporan ini dilakukan analisis regresi pada data deret waktu terkait suhu dan kelembapan. Analisis regresi dilakukan menggunakan variabel Temperatur rata-rata (Y) dan Kelembapan (X) dengan metode model koyck, distribusi lag dan model autoregressive.
Dataset didedikasikan untuk pengembang yang ingin melatih model tentang Prakiraan Cuaca untuk iklim India. Dataset ini menyediakan data dari 1 Januari 2013 hingga 24 April 2017 di kota Delhi, India. 4 parameter di sini adalah meantemp, kelembaban, kecepatan_angin, tekanan rata-rata. Sumber: https://www.kaggle.com/datasets/sumanthvrao/daily-climate-time-series-data?resource=download&select=DailyDelhiClimateTrain.csv
tidyverse
readxl
dLagM
dynlm
MLmetrics
lmtest
car
ggplot2
dplyr
library(readxl)
library(dLagM)
library(dynlm)
library(MLmetrics)
library(lmtest)
library(car)
library(ggplot2)
library(dplyr)
tugas2 <- read_xlsx("D:/FILE KULIAH SEMESTER 5/MINGGU 4/MPDW (K)/DailyDelhiClimateTrain.xlsx")
head(tugas2)
## # A tibble: 6 x 5
## date meantemp humidity wind_speed meanpressure
## <dttm> <dbl> <dbl> <dbl> <dbl>
## 1 2013-01-01 00:00:00 10 84.5 0 1016.
## 2 2013-01-02 00:00:00 7.4 92 2.98 1018.
## 3 2013-01-03 00:00:00 7.17 87 4.63 1019.
## 4 2013-01-04 00:00:00 8.67 71.3 1.23 1017.
## 5 2013-01-05 00:00:00 6 86.8 3.70 1016.
## 6 2013-01-06 00:00:00 7 82.8 1.48 1018
#splitting data
train<-tugas2[1:1170,]
test<-tugas2[1171:1462,]
# time series
train.ts<-ts(train)
test.ts<-ts(test)
data.ts<-ts(tugas2)
Splitting dilakukan untuk membagi data menjadi 2, yaitu data training dan data testing dengan proporsi 80% untuk data training dan 20% untuk testing, dari total amatan yaitu 1462.
plot.reg <- lm(meantemp ~ humidity, data = tugas2)
summary(plot.reg)
##
## Call:
## lm(formula = meantemp ~ humidity, data = tugas2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -15.901 -4.801 -0.029 5.547 12.532
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 40.725916 0.593017 68.68 <2e-16 ***
## humidity -0.250617 0.009407 -26.64 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 6.03 on 1460 degrees of freedom
## Multiple R-squared: 0.3271, Adjusted R-squared: 0.3267
## F-statistic: 709.8 on 1 and 1460 DF, p-value: < 2.2e-16
dwtest(plot.reg$model)
##
## Durbin-Watson test
##
## data: plot.reg$model
## DW = 0.069349, p-value < 2.2e-16
## alternative hypothesis: true autocorrelation is greater than 0
p-value < 0.05 maka tolak H0, artinya cukup bukti untuk menyatakan bahwa terdapat autokorelasi pada model dengan taraf nyata 5%.
ggplot(tugas2, aes(x=humidity, y=,meantemp)) +
geom_point() +
theme_classic()
Pada data awal diperoleh bahwa kedua peubah mempunyai hubungan linear negatif dengan persamaan regresi Y_duga = 40.725916 - 0.250617(X). Artinya Rata-rata temperature akan menurun sebesar - 0.250617 jika kelembapan meningkat sebesar 1 satuan.
cor(tugas2$humidity, tugas2$meantemp)
## [1] -0.5719507
Variabel rataan temperature dan kelembapan mempunyai koefisien korelasi yang tidak terlalu tinggi dan tidak terlalu rendah yaitu -0.5719507. Tanda negatif menunjukkan bahwa kedua variabel mempunyai hubungan/korelasi yang negatif.
library(ggplot2)
tugas2%>%
ggplot(aes(x=date, y=`meantemp`))+
geom_line(color="blue")+
geom_point()+
ggtitle("Rata-Rata Temperature di Kota Delhi Tahun 2013-2017")
Berdasarkan plot di atas dapat dilihat bahwa data temperatur rata-rata di Kota Delhi sangat jelas mempunyai pola data musiman. Rentangnya terjadi setiap tahun. Pada awal tahun sampai pertengahan akan terjadi peningkatan suhu yang sangat signifikan. Kemudian dari pertengahan tahun sampai akhir tahun terjadi penurunan suhu yang juga sangat signifikan, dan pola tersebut terjadi setiap tahunnya.
library(ggplot2)
tugas2%>%
ggplot(aes(x=date, y=`humidity`))+
geom_line(color="red")+
geom_point()+
ggtitle("Kelembapan di Kota Delhi Tahun 2013-2017")
Berdasarkan plot di atas dapat dilihat bahwa data kelembapan di Kota Delhi mempunyai pola data musiman. Rentangnya terjadi setiap pertengahan tahun. Pada awal tahun sampai pertengahan akan terjadi penurunan suhu yang sangat signifikan. Kemudian dari pertengahan tahun sampai akhir tahun terjadi peningkatan suhu yang juga sangat signifikan, dan pola tersebut terjadi setiap tahunnya.
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
## -10.69857 -0.89315 0.04587 1.07889 6.90931
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.343616 0.445335 -0.772 0.4405
## Y.1 0.986621 0.008674 113.748 <2e-16 ***
## X.t 0.011064 0.004469 2.476 0.0134 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.711 on 1166 degrees of freedom
## Multiple R-Squared: 0.9468, Adjusted R-squared: 0.9467
## Wald test: 1.042e+04 on 2 and 1166 DF, p-value: < 2.2e-16
##
## Diagnostic tests:
## NULL
##
## alpha beta phi
## Geometric coefficients: -25.68345 0.01106403 0.9866211
Model koyck yang diperoleh adalah Yt = -0.343616 + 0.986621(Yt-1) + 0.011064(Xt). Interpretasi dari model tersebut adalah setiap kenaikan Kelembapan satu satuan akan menyebabkan mean temperatur meningkat sebesar 0.011064 satuan. Nilai 0.986621 berarti jumlah nilai mean temperatur periode ke t dipengaruhi oleh nilai mean temperatur pada periode sebelumnya yaitu sebesar 0.986621 kali lipat dari sebelumnya.
#AIC dan BIC
aic.koyck <- AIC(model.koyck)
## [1] 4577.925
bic.koyck <- BIC(model.koyck)
## [1] 4598.18
(ramal.koyck <- forecast(model = model.koyck, x=test$humidity, h=292))
## $forecasts
## [1] 23.99576 23.88776 23.90223 23.92321 23.90936 23.72576 23.48377 23.30467
## [9] 23.16780 23.06950 23.11059 23.05178 22.98393 22.86113 22.65184 22.44478
## [17] 22.22368 22.00939 21.86090 21.59130 21.28314 21.02127 20.80578 20.58211
## [25] 20.32234 20.02769 19.80337 19.59532 19.30003 18.96235 18.64579 18.31479
## [33] 17.99021 17.73921 17.53001 17.23883 16.93749 16.63558 16.31079 15.99375
## [41] 15.68855 15.41371 15.18543 14.87950 14.59445 14.33840 14.06157 13.73414
## [49] 13.54285 13.37051 13.31270 13.20519 13.09634 12.97951 12.91144 12.83488
## [57] 12.87205 12.79879 12.59503 12.43557 12.25197 12.00444 11.78581 11.59016
## [65] 11.53957 11.53060 11.53502 11.53275 11.56512 11.65899 11.67507 11.66845
## [73] 11.45740 11.37263 11.50820 11.83835 11.90298 11.86702 11.75533 11.70461
## [81] 11.66983 11.74265 11.74771 11.90177 11.89286 11.87399 11.83473 11.88529
## [89] 11.79341 11.77122 11.88003 11.91813 11.98249 12.05666 12.11126 12.19477
## [97] 12.50604 12.68316 12.84268 12.89832 12.89731 12.99994 13.11821 13.27676
## [105] 13.58610 13.71212 13.85110 14.13427 14.48668 14.81362 15.11614 15.33025
## [113] 15.49036 15.63654 15.92311 16.09738 16.26517 16.49986 16.82269 17.09833
## [121] 17.41592 17.70298 18.16116 18.53229 18.95051 19.11816 19.17777 19.20675
## [129] 19.22713 19.35651 19.55330 19.71288 20.01278 20.37781 20.66144 21.06413
## [137] 21.45954 21.74861 22.04616 22.20559 22.26814 22.33347 22.37334 22.57126
## [145] 22.64678 22.69036 22.83595 22.97523 23.31406 23.59897 23.79235 24.05648
## [153] 24.13941 24.20768 24.34233 24.55611 24.63948 24.70177 24.78084 24.83099
## [161] 24.93053 25.13059 25.25224 25.38746 25.48183 25.53018 25.75580 25.91732
## [169] 26.21780 26.48865 26.58437 26.57862 26.53560 26.50421 26.41452 26.35590
## [177] 26.30138 26.23284 26.18253 26.11263 26.03371 25.97318 26.06050 26.02804
## [185] 25.97792 25.92846 25.88888 25.85675 25.76547 25.72948 25.78989 25.83264
## [193] 25.87895 25.87844 25.86218 25.81222 25.73488 25.72539 25.69432 25.69199
## [201] 25.68857 25.66043 25.74594 25.85310 25.88071 25.85423 25.80599 25.77211
## [209] 25.64918 25.52831 25.36633 25.17016 25.01948 24.94023 24.81456 24.68375
## [217] 24.54603 24.41820 24.27599 24.16532 24.04586 23.98863 23.89302 23.83340
## [225] 23.79263 23.78757 23.77602 23.80888 23.93276 24.00811 23.99309 24.05769
## [233] 24.05340 24.03297 24.10443 24.14478 24.04592 23.95890 23.84466 23.73687
## [241] 23.67358 23.65538 23.61282 23.62522 23.58201 23.51184 23.42601 23.36218
## [249] 23.37722 23.38358 23.39607 23.29438 23.20819 23.12358 22.80860 22.52104
## [257] 22.24827 22.01989 21.97605 22.22451 22.51293 22.70760 22.63735 22.60216
## [265] 22.58228 22.71017 22.88532 23.04652 23.14830 23.41146 23.52450 23.57274
## [273] 23.60359 23.59266 23.55990 23.60118 23.64314 23.69730 23.65728 23.53413
## [281] 23.47643 23.45886 23.62787 23.83817 24.21897 24.37955 24.45714 24.53915
## [289] 24.83928 25.15541 25.43782 25.86027
##
## $call
## forecast.koyckDlm(model = model.koyck, x = test$humidity, h = 292)
##
## attr(,"class")
## [1] "forecast.koyckDlm" "dLagM"
#mape data testing
mape.test.koyck <- MAPE(ramal.koyck$forecasts, test$meantemp)
#akurasi data training
mape.train.koyck <- dLagM::GoF(model.koyck)["MAPE"]
c("MAPE_testing" = mape.test.koyck, "MAPE_training" = mape.train.koyck)
## $MAPE_testing
## [1] 0.3337245
##
## $MAPE_training.MAPE
## [1] 0.05754036
lagoptim<-finiteDLMauto(formula = meantemp ~ humidity,
data = data.frame(train), q.min = 1, q.max = 100 ,
model.type = "dlm", error.type = "AIC", trace = TRUE) ##q max lag maksimum
lagoptim
## q - k MASE AIC BIC GMRAE MBRAE R.Adj.Sq Ljung-Box
## 100 100 2.78929 6343.514 6855.982 5.71024 1.05739 0.62224 0
## 99 99 2.80077 6354.898 6862.485 5.74080 -6.19255 0.61976 0
## 98 98 2.81559 6367.317 6870.022 5.71766 0.60777 0.61691 0
## 97 97 2.82703 6379.581 6877.402 5.76041 0.12910 0.61402 0
## 96 96 2.83157 6391.071 6884.006 5.76405 0.83075 0.61141 0
## 95 95 2.83136 6402.334 6890.382 5.64547 0.84966 0.60877 0
## 94 94 2.84952 6417.909 6901.067 5.68374 0.94839 0.60453 0
## 93 93 2.86399 6432.397 6910.662 5.66284 2.28833 0.60065 0
## 92 92 2.87826 6448.307 6921.679 5.67776 0.92784 0.59622 0
## 91 91 2.89395 6461.275 6929.751 5.72518 1.33605 0.59285 0
## 90 90 2.90488 6472.524 6936.103 5.82881 0.17026 0.59011 0
## 89 89 2.91629 6483.479 6942.158 5.79184 0.57508 0.58749 0
## 88 88 2.92675 6492.688 6946.466 5.82293 0.34661 0.58552 0
## 87 87 2.93136 6501.353 6950.227 5.89352 0.84955 0.58385 0
## 86 86 2.94092 6513.366 6957.335 5.69674 0.80071 0.58082 0
## 85 85 2.95084 6525.722 6964.784 5.72436 2.17494 0.57772 0
## 84 84 2.96520 6537.721 6971.874 5.76008 0.82244 0.57461 0
## 83 83 2.98306 6548.193 6977.435 5.97342 1.01047 0.57210 0
## 82 82 2.98289 6557.001 6981.329 5.95184 1.06748 0.57025 0
## 81 81 2.98874 6567.391 6986.804 5.92947 1.69798 0.56777 0
## 80 80 2.98755 6575.967 6990.463 5.73776 0.70302 0.56597 0
## 79 79 3.00770 6587.562 6997.140 5.84221 0.26019 0.56297 0
## 78 78 3.01269 6599.426 7004.083 5.94993 0.79928 0.55995 0
## 77 77 3.02183 6612.780 7012.515 6.05741 0.82492 0.55624 0
## 76 76 3.04191 6625.082 7019.892 6.12844 1.21947 0.55291 0
## 75 75 3.05495 6635.662 7025.546 6.24142 1.11900 0.55029 0
## 74 74 3.06980 6649.930 7034.886 6.36516 0.23323 0.54627 0
## 73 73 3.08497 6668.230 7048.255 6.33328 -11.40573 0.54036 0
## 72 72 3.11011 6686.391 7061.485 6.31152 0.62025 0.53449 0
## 71 71 3.12845 6701.665 7071.824 6.41681 1.08988 0.52984 0
## 70 70 3.14631 6715.019 7080.243 6.50437 0.68265 0.52589 0
## 69 69 3.16079 6726.504 7086.790 6.49139 0.78035 0.52272 0
## 68 68 3.16507 6736.211 7091.558 6.34999 0.78107 0.52032 0
## 67 67 3.16705 6746.437 7096.842 6.23163 4.37853 0.51766 0
## 66 66 3.17399 6756.005 7101.467 6.30696 0.99506 0.51528 0
## 65 65 3.18592 6765.872 7106.389 6.33754 1.04808 0.51278 0
## 64 64 3.18998 6774.538 7110.108 6.37436 0.72350 0.51093 0
## 63 63 3.19567 6785.185 7115.806 6.30846 11.52999 0.50820 0
## 62 62 3.19222 6795.296 7120.967 6.30094 2.24307 0.50603 0
## 61 61 3.19750 6805.173 7125.891 6.23081 0.33899 0.50376 0
## 60 60 3.20593 6816.001 7131.765 6.20607 1.06055 0.50108 0
## 59 59 3.22178 6827.811 7138.618 6.30225 0.75438 0.49816 0
## 58 58 3.23073 6838.054 7143.903 6.28315 1.12780 0.49569 0
## 57 57 3.23473 6846.462 7147.350 6.29022 0.62361 0.49392 0
## 56 56 3.24338 6855.813 7151.740 6.38664 0.83928 0.49201 0
## 55 55 3.25178 6865.767 7156.730 6.44371 1.98127 0.48996 0
## 54 54 3.26589 6877.018 7163.015 6.51088 0.81636 0.48732 0
## 53 53 3.27153 6886.573 7167.603 6.54759 0.82543 0.48536 0
## 52 52 3.27556 6895.611 7171.672 6.56397 0.84687 0.48330 0
## 51 51 3.27733 6901.707 7172.797 6.49989 0.74903 0.48264 0
## 50 50 3.27805 6908.529 7174.646 6.45870 1.33428 0.48190 0
## 49 49 3.28808 6917.019 7178.162 6.66398 0.69085 0.48066 0
## 48 48 3.29853 6924.861 7181.027 6.60019 0.72382 0.47976 0
## 47 47 3.30818 6932.699 7183.886 6.66993 -0.64992 0.47922 0
## 46 46 3.31973 6941.627 7187.835 6.68529 3.36123 0.47802 0
## 45 45 3.31941 6949.974 7191.199 6.68811 -0.38219 0.47639 0
## 44 44 3.31979 6958.198 7194.440 6.49641 0.44780 0.47504 0
## 43 43 3.33326 6967.697 7198.953 6.50878 0.31361 0.47324 0
## 42 42 3.35100 6976.901 7203.170 6.67413 0.68916 0.47174 0
## 41 41 3.36644 6985.724 7207.003 6.75971 1.17462 0.47032 0
## 40 40 3.38261 6995.685 7211.974 6.81388 0.81166 0.46847 0
## 39 39 3.40353 7007.367 7218.663 6.96477 2.38542 0.46576 0
## 38 38 3.41885 7018.157 7224.458 6.95780 0.93870 0.46374 0
## 37 37 3.43036 7025.693 7226.998 6.93654 0.39376 0.46296 0
## 36 36 3.44664 7033.202 7229.509 6.99285 0.91040 0.46202 0
## 35 35 3.46187 7040.369 7231.676 7.08819 -2.94476 0.46124 0
## 34 34 3.47049 7046.636 7232.941 7.11231 0.85115 0.46077 0
## 33 33 3.48081 7053.907 7235.208 7.05062 0.34946 0.45975 0
## 32 32 3.49807 7062.543 7238.839 7.29564 1.23514 0.45833 0
## 31 31 3.51310 7071.096 7242.385 7.24474 1.12808 0.45698 0
## 30 30 3.53116 7079.332 7245.612 7.38960 0.90789 0.45576 0
## 29 29 3.54586 7088.045 7249.314 7.42107 -0.93939 0.45456 0
## 28 28 3.55905 7096.262 7252.519 7.47633 0.06368 0.45370 0
## 27 27 3.57779 7106.140 7257.382 7.53723 1.41356 0.45192 0
## 26 26 3.58967 7117.253 7263.480 7.40164 0.63982 0.44993 0
## 25 25 3.60991 7128.568 7269.777 7.51263 0.97042 0.44789 0
## 24 24 3.62114 7138.687 7274.876 7.40620 0.19265 0.44650 0
## 23 23 3.63313 7149.505 7280.673 7.45345 0.84383 0.44443 0
## 22 22 3.64867 7159.911 7286.055 7.46432 1.17712 0.44252 0
## 21 21 3.65197 7171.868 7292.987 7.49579 0.95371 0.44094 0
## 20 20 3.66250 7182.061 7298.154 7.46972 0.73466 0.43975 0
## 19 19 3.67916 7193.159 7304.223 7.61116 -4.23199 0.43809 0
## 18 18 3.69382 7206.910 7312.944 7.52645 1.11727 0.43483 0
## 17 17 3.71612 7219.973 7320.976 7.70621 0.96042 0.43161 0
## 16 16 3.73414 7232.403 7328.372 7.86507 0.86835 0.42821 0
## 15 15 3.74954 7244.553 7335.486 7.91101 0.99371 0.42541 0
## 14 14 3.77108 7257.708 7343.605 7.91512 0.75071 0.42192 0
## 13 13 3.78910 7269.818 7350.676 8.03114 0.85494 0.41933 0
## 12 12 3.79847 7280.898 7356.715 8.02986 0.90810 0.41666 0
## 11 11 3.81281 7292.953 7363.728 8.03850 0.51773 0.41383 0
## 10 10 3.82912 7304.768 7370.498 8.19324 1.07955 0.41078 0
## 9 9 3.83459 7318.278 7378.963 8.09160 1.00229 0.40788 0
## 8 8 3.84835 7332.375 7388.012 7.95234 1.07366 0.40397 0
## 7 7 3.86561 7352.582 7403.169 7.96212 0.78168 0.39818 0
## 6 6 3.89013 7373.327 7418.864 8.01389 1.23262 0.39267 0
## 5 5 3.92019 7393.239 7433.723 8.36654 0.90108 0.38753 0
## 4 4 3.94285 7411.156 7446.586 8.39169 1.15161 0.38375 0
## 3 3 3.96214 7431.169 7461.542 8.42173 1.50224 0.37792 0
## 2 2 3.99553 7455.167 7480.482 8.38669 0.86658 0.37038 0
## 1 1 4.04423 7484.721 7504.976 8.44074 1.72102 0.35964 0
Diperoleh lag optimum q = 100
model.dlm2 = dLagM::dlm(x = train$humidity,y = train$meantemp , q = 100) #terdapat lag yang tidak signifikan sehingga dapat dikurangi jumlah lagnya
summary(model.dlm2)
##
## Call:
## lm(formula = model.formula, data = design)
##
## Residuals:
## Min 1Q Median 3Q Max
## -12.7855 -2.4198 0.6175 2.8381 10.8497
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 67.1713465 1.0538926 63.736 <2e-16 ***
## x.t -0.1665738 0.0187531 -8.882 <2e-16 ***
## x.1 0.0028960 0.0240417 0.120 0.9041
## x.2 -0.0243642 0.0240694 -1.012 0.3117
## x.3 -0.0182372 0.0240225 -0.759 0.4479
## x.4 -0.0145990 0.0240031 -0.608 0.5432
## x.5 -0.0048463 0.0240077 -0.202 0.8401
## x.6 -0.0037522 0.0239691 -0.157 0.8756
## x.7 -0.0143343 0.0239148 -0.599 0.5491
## x.8 -0.0158181 0.0238947 -0.662 0.5081
## x.9 -0.0127591 0.0238909 -0.534 0.5934
## x.10 -0.0111422 0.0238658 -0.467 0.6407
## x.11 -0.0029601 0.0239097 -0.124 0.9015
## x.12 -0.0053309 0.0239053 -0.223 0.8236
## x.13 -0.0016756 0.0238458 -0.070 0.9440
## x.14 -0.0084018 0.0238307 -0.353 0.7245
## x.15 -0.0098510 0.0238067 -0.414 0.6791
## x.16 -0.0063386 0.0237895 -0.266 0.7900
## x.17 -0.0128215 0.0237630 -0.540 0.5896
## x.18 -0.0140860 0.0237975 -0.592 0.5540
## x.19 -0.0173366 0.0238619 -0.727 0.4677
## x.20 -0.0057690 0.0238576 -0.242 0.8090
## x.21 0.0025226 0.0237711 0.106 0.9155
## x.22 -0.0077326 0.0235011 -0.329 0.7422
## x.23 -0.0017643 0.0232285 -0.076 0.9395
## x.24 -0.0065740 0.0231981 -0.283 0.7769
## x.25 0.0018866 0.0231951 0.081 0.9352
## x.26 -0.0068706 0.0231130 -0.297 0.7663
## x.27 -0.0078468 0.0230632 -0.340 0.7338
## x.28 -0.0066494 0.0230358 -0.289 0.7729
## x.29 0.0032077 0.0230331 0.139 0.8893
## x.30 -0.0037006 0.0230328 -0.161 0.8724
## x.31 -0.0037617 0.0229970 -0.164 0.8701
## x.32 -0.0028824 0.0230164 -0.125 0.9004
## x.33 -0.0089589 0.0230168 -0.389 0.6972
## x.34 -0.0077787 0.0229990 -0.338 0.7353
## x.35 0.0026483 0.0229978 0.115 0.9083
## x.36 -0.0010018 0.0229909 -0.044 0.9653
## x.37 -0.0059587 0.0229942 -0.259 0.7956
## x.38 0.0121839 0.0229805 0.530 0.5961
## x.39 -0.0010580 0.0229887 -0.046 0.9633
## x.40 -0.0084979 0.0230070 -0.369 0.7119
## x.41 -0.0039238 0.0230737 -0.170 0.8650
## x.42 0.0022632 0.0231041 0.098 0.9220
## x.43 0.0004609 0.0230993 0.020 0.9841
## x.44 -0.0070885 0.0230915 -0.307 0.7589
## x.45 0.0037402 0.0230946 0.162 0.8714
## x.46 -0.0002150 0.0230789 -0.009 0.9926
## x.47 -0.0088283 0.0230843 -0.382 0.7022
## x.48 -0.0003400 0.0230833 -0.015 0.9883
## x.49 0.0017759 0.0230741 0.077 0.9387
## x.50 -0.0110655 0.0230930 -0.479 0.6319
## x.51 -0.0009709 0.0230886 -0.042 0.9665
## x.52 0.0097445 0.0231592 0.421 0.6740
## x.53 -0.0008695 0.0231874 -0.037 0.9701
## x.54 0.0037313 0.0231212 0.161 0.8718
## x.55 -0.0028787 0.0230674 -0.125 0.9007
## x.56 -0.0037413 0.0231065 -0.162 0.8714
## x.57 -0.0030605 0.0231127 -0.132 0.8947
## x.58 0.0078533 0.0231128 0.340 0.7341
## x.59 0.0050172 0.0231047 0.217 0.8281
## x.60 0.0008993 0.0230962 0.039 0.9689
## x.61 -0.0024601 0.0230854 -0.107 0.9152
## x.62 -0.0008879 0.0230373 -0.039 0.9693
## x.63 0.0018686 0.0230250 0.081 0.9353
## x.64 -0.0050236 0.0230316 -0.218 0.8274
## x.65 0.0025058 0.0229423 0.109 0.9130
## x.66 -0.0004450 0.0229391 -0.019 0.9845
## x.67 0.0043270 0.0229855 0.188 0.8507
## x.68 -0.0017062 0.0229954 -0.074 0.9409
## x.69 0.0029787 0.0229884 0.130 0.8969
## x.70 0.0028936 0.0229827 0.126 0.8998
## x.71 0.0010557 0.0229882 0.046 0.9634
## x.72 0.0004436 0.0229803 0.019 0.9846
## x.73 -0.0094703 0.0229820 -0.412 0.6804
## x.74 -0.0148687 0.0229773 -0.647 0.5177
## x.75 -0.0163863 0.0229917 -0.713 0.4762
## x.76 0.0001423 0.0230018 0.006 0.9951
## x.77 -0.0065584 0.0230339 -0.285 0.7759
## x.78 -0.0087537 0.0230313 -0.380 0.7040
## x.79 -0.0013553 0.0230235 -0.059 0.9531
## x.80 -0.0098458 0.0230244 -0.428 0.6690
## x.81 0.0040326 0.0230203 0.175 0.8610
## x.82 -0.0068248 0.0230023 -0.297 0.7668
## x.83 0.0020482 0.0229621 0.089 0.9289
## x.84 -0.0004412 0.0229666 -0.019 0.9847
## x.85 -0.0027628 0.0228995 -0.121 0.9040
## x.86 -0.0057635 0.0228038 -0.253 0.8005
## x.87 -0.0144185 0.0227669 -0.633 0.5267
## x.88 -0.0020714 0.0227709 -0.091 0.9275
## x.89 0.0028632 0.0227377 0.126 0.8998
## x.90 -0.0087085 0.0225603 -0.386 0.6996
## x.91 -0.0067643 0.0225429 -0.300 0.7642
## x.92 -0.0040295 0.0225090 -0.179 0.8580
## x.93 -0.0154459 0.0225109 -0.686 0.4928
## x.94 -0.0065950 0.0225726 -0.292 0.7702
## x.95 -0.0214820 0.0227070 -0.946 0.3444
## x.96 -0.0105924 0.0226626 -0.467 0.6403
## x.97 -0.0131147 0.0225934 -0.580 0.5617
## x.98 -0.0137781 0.0225977 -0.610 0.5422
## x.99 -0.0149013 0.0225808 -0.660 0.5095
## x.100 -0.0502419 0.0179375 -2.801 0.0052 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.478 on 968 degrees of freedom
## Multiple R-squared: 0.6579, Adjusted R-squared: 0.6222
## F-statistic: 18.43 on 101 and 968 DF, p-value: < 2.2e-16
##
## AIC and BIC values for the model:
## AIC BIC
## 1 6343.514 6855.982
#AIC dan BIC
aic.rdl <- AIC(model.dlm2)
## [1] 6343.514
bic.rdl <- BIC(model.dlm2)
## [1] 6855.982
(fore.dlm2 <- forecast(model = model.dlm2, x=test$humidity, h=292))
## $forecasts
## [1] 23.45208 24.20945 22.15139 22.33360 22.80242 24.67414 27.06063 26.97519
## [9] 26.73316 25.62121 23.36596 25.00750 24.86594 26.15790 27.26569 27.38108
## [17] 27.70541 27.94832 27.51191 29.58703 30.56626 30.14171 29.21437 29.32317
## [25] 29.92763 30.75920 29.36627 30.19831 31.27873 31.30903 31.47969 33.12536
## [33] 34.04513 34.07483 32.96816 33.86029 33.99839 33.99566 35.04505 35.33052
## [41] 35.43731 35.41544 34.90554 36.06539 36.43970 36.77244 37.09549 38.41962
## [49] 36.16169 36.92200 35.22118 36.61850 36.61508 36.53509 36.08599 36.31565
## [57] 35.63184 36.76305 37.69267 37.40809 37.24345 39.28385 39.26107 39.36392
## [65] 37.06228 36.73445 36.38137 35.96095 34.76150 33.87603 34.84088 35.00695
## [73] 37.68863 34.96845 32.49934 30.09082 34.02914 34.79602 36.09622 35.95693
## [81] 36.62636 34.65088 34.26419 31.00036 33.27124 33.78095 34.78267 33.66853
## [89] 36.21960 34.00917 31.54963 33.32404 32.87320 32.77309 33.54925 32.64785
## [97] 29.43767 30.94198 30.91864 32.86478 33.83085 32.55868 32.61741 32.08195
## [105] 30.33095 33.07575 32.79942 30.47957 29.26236 29.16920 28.80994 30.14564
## [113] 31.30762 31.91364 29.80389 31.38884 31.27690 30.57802 29.22401 30.63360
## [121] 29.46321 29.50757 26.34374 27.27594 25.71990 29.57039 30.30000 31.26713
## [129] 32.12709 30.60822 28.86307 29.50386 27.66358 27.19236 28.25595 26.56983
## [137] 25.72637 26.21654 25.79832 27.62504 28.24118 28.04268 28.61395 26.24282
## [145] 28.38025 29.13750 27.49193 27.49860 23.31137 23.58214 23.90683 22.16199
## [153] 25.47010 25.71808 24.56783 23.50684 25.66775 25.80007 26.34969 27.50313
## [161] 26.68660 24.81096 25.74342 24.71820 24.26269 24.30999 22.08920 23.22724
## [169] 20.31409 19.97765 22.02457 24.21978 26.03980 25.71110 26.12607 25.41029
## [177] 26.24165 26.81456 26.61599 26.87714 26.90342 26.54499 23.79930 24.74590
## [185] 25.91859 25.71063 25.95288 25.95545 26.90809 26.19845 24.58138 24.66181
## [193] 24.23491 24.84019 24.16204 24.32636 23.72329 23.19246 23.84560 23.64956
## [201] 24.24417 23.96270 22.21002 22.25386 22.10371 23.35050 23.63808 22.63136
## [209] 23.32573 22.64058 23.36858 24.75053 24.65204 24.33315 25.01519 25.22193
## [217] 25.04464 24.52650 25.18416 24.95778 25.68789 24.61133 24.27878 23.75473
## [225] 24.27757 24.64327 25.16852 25.06892 22.82316 22.53383 23.01887 21.91601
## [233] 22.74969 22.48118 21.83260 21.86732 23.91401 24.54734 25.30234 26.00059
## [241] 25.90209 24.34331 24.65310 22.62156 24.43197 25.25431 24.55272 24.63863
## [249] 22.96920 24.03129 24.09986 25.95585 26.58706 26.32400 29.97102 29.45308
## [257] 30.11744 30.09168 27.73803 23.23320 22.13837 22.45714 26.18504 25.54872
## [265] 26.03648 24.16505 22.92386 22.41778 22.22919 20.64477 24.59322 26.02853
## [273] 26.57804 27.33921 27.26155 25.35174 25.08874 24.01110 25.39545 27.15185
## [281] 26.99723 26.80642 23.62047 23.37766 19.99874 22.84698 23.89331 23.61223
## [289] 21.17939 20.58888 20.09065 17.21563
##
## $call
## forecast.dlm(model = model.dlm2, x = test$humidity, h = 292)
##
## attr(,"class")
## [1] "forecast.dlm" "dLagM"
#akurasi testing
mape.dlm2 <- MAPE(fore.dlm2$forecasts, test$meantemp)
#akurasi data training
mape_traindlm <- GoF(model.dlm2)["MAPE"]
c("MAPE_testing" = mape.dlm2, "MAPE_training" = mape_traindlm)
## $MAPE_testing
## [1] 0.1391339
##
## $MAPE_training.MAPE
## [1] 0.1666214
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 = 1170
##
## Call:
## dynlm(formula = as.formula(model.text), data = data, start = 1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.8079 -0.6589 0.0982 0.7752 6.2281
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.402592 0.301269 4.656 3.6e-06 ***
## X.t -0.129266 0.004645 -27.828 < 2e-16 ***
## X.1 0.118126 0.004820 24.508 < 2e-16 ***
## Y.1 0.971323 0.006295 154.300 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.282 on 1165 degrees of freedom
## Multiple R-squared: 0.9702, Adjusted R-squared: 0.9701
## F-statistic: 1.263e+04 on 3 and 1165 DF, p-value: < 2.2e-16
Model AR yang diperoleh adalah Yt = 1.402592 + 0.971323(Yt-1) - 0.129266(Xt) + 0.118126(Xt-1. Interpretasi dari model tersebut adalah setiap kenaikan Kelembapan satu satuan akan menyebabkan mean temperatur menurun sebesar - 0.129266 satuan. Nilai 0.971323 berarti jumlah nilai mean temperatur periode ke t dipengaruhi oleh nilai mean temperatur pada periode sebelumnya yaitu sebesar 0.971323 kali lipat dari sebelumnya.
aic.arlm1 <- AIC(model.ardl)
## [1] 3903.631
bic.arlm1 <- BIC(model.ardl)
## [1] 3928.951
(fore.ardl <- forecast(model = model.ardl, x=test$humidity, h=292))
## $forecasts
## [1] 24.79263 25.32984 24.03174 23.98439 24.41392 26.44743 27.31937 26.81966
## [9] 26.50581 26.19695 24.67609 25.83366 26.01209 26.73335 27.86691 28.03393
## [17] 28.38634 28.50420 27.92460 29.47156 30.15282 29.87137 29.54743 29.81980
## [25] 30.42296 31.03957 30.45340 30.43767 31.61605 32.34069 32.35599 32.76618
## [33] 32.94211 32.32517 32.01600 33.11668 33.44493 33.66750 34.14883 34.28943
## [41] 34.37338 34.22912 33.86864 34.91901 34.88170 34.73029 35.13494 35.90406
## [49] 34.53198 34.41434 33.16403 33.73750 33.78788 33.91769 33.39136 33.49399
## [57] 32.17638 33.38455 34.92017 34.52245 34.88697 35.73609 35.55317 35.41437
## [65] 33.82936 33.33239 33.13162 33.15592 32.70423 31.91146 32.69687 32.90525
## [73] 35.25727 33.91565 31.36962 28.94250 31.73217 32.81951 33.70116 33.04914
## [81] 32.87246 31.61204 32.31183 30.53695 32.28463 32.38166 32.60977 31.56755
## [89] 33.16482 32.40295 30.86689 31.57923 31.21917 31.03054 31.17820 30.77710
## [97] 28.02973 29.32375 29.37042 30.44220 31.04999 29.83276 29.55799 28.98374
## [105] 27.08622 28.96944 28.71415 26.91639 25.87630 25.88804 25.91225 26.70731
## [113] 27.17618 27.22365 25.48053 26.57463 26.52771 25.62992 24.42972 24.73938
## [121] 24.04921 24.17310 21.96888 22.64099 21.82194 24.44423 25.61191 25.96500
## [129] 26.08540 24.83823 23.98540 24.29928 22.57072 21.60469 22.29874 20.72045
## [137] 20.52120 21.48812 21.20407 22.62743 23.68453 23.65766 23.95738 22.13319
## [145] 23.45357 23.81891 22.64488 22.65089 20.25683 20.65899 21.54717 20.61646
## [153] 22.57108 22.73139 21.95589 20.97567 22.37796 22.61136 22.41908 22.74600
## [161] 22.18118 20.97703 21.77977 21.57311 21.99097 22.50294 20.44355 21.05658
## [169] 19.35095 19.50032 21.37561 22.53656 23.03106 22.98325 23.74105 23.50113
## [177] 23.54824 23.80179 23.68839 23.99966 24.20208 24.08986 22.44792 23.80885
## [185] 24.07587 24.14194 24.09840 24.07375 24.81963 24.27652 23.20546 23.38602
## [193] 23.33337 23.86603 24.07429 24.50455 24.88805 24.18060 24.46020 24.16927
## [201] 24.20220 24.51143 23.22403 22.91660 23.77400 24.40037 24.69383 24.58234
## [209] 25.66613 25.75855 26.35197 26.89686 26.53708 25.83445 26.44768 26.61622
## [217] 26.80807 26.80812 27.08204 26.83008 27.02164 26.38974 26.88070 26.53411
## [225] 26.35700 25.96698 26.04015 25.52416 24.42701 24.88525 25.87406 24.95251
## [233] 25.70021 25.88930 24.82966 25.13083 26.72163 26.66332 27.05067 27.06640
## [241] 26.63109 26.15113 26.44470 25.83172 26.46474 26.80947 27.04418 26.85135
## [249] 25.97518 26.05618 25.97171 27.28790 27.18416 27.22920 29.98226 29.91366
## [257] 29.96686 29.65946 27.67532 24.27776 23.58617 24.42694 27.34850 26.98713
## [265] 26.82702 25.10649 24.43794 24.44722 25.00115 23.02661 24.55891 25.22146
## [273] 25.38502 25.84840 26.11356 25.27654 25.23502 25.05880 26.11565 27.12194
## [281] 26.46068 26.03976 23.87390 23.25089 21.08596 23.34670 24.19046 24.08307
## [289] 21.47582 21.04994 21.19474 19.33992
##
## $call
## forecast.ardlDlm(model = model.ardl, x = test$humidity, h = 292)
##
## attr(,"class")
## [1] "forecast.ardlDlm" "dLagM"
## akurasi testing
mape.ardl <- MAPE(fore.ardl$forecasts, test$meantemp) #data testing
#akurasi data training
mape_trainardl <- GoF(model.ardl)["MAPE"]
c("MAPE_testing" = mape.ardl, "MAPE_training" = mape_trainardl)
## $MAPE_testing
## [1] 0.1782186
##
## $MAPE_training.MAPE
## [1] 0.04457988
lagoptimum <- ardlBoundOrders(data = data.frame(train) , formula = meantemp ~ humidity )
lagoptimum
## $p
## humidity
## 1 3
##
## $q
## [1] 15
##
## $Stat.table
## q = 1 q = 2 q = 3 q = 4 q = 5 q = 6 q = 7 q = 8
## p = 1 3886.015 3877.269 3857.046 3854.242 3846.022 3840.191 3837.551 3829.365
## p = 2 3882.394 3862.042 3845.840 3843.505 3835.593 3830.466 3827.864 3820.017
## p = 3 3861.031 3861.031 3833.182 3831.658 3824.775 3819.591 3817.398 3809.644
## p = 4 3830.276 3832.085 3832.085 3832.856 3826.410 3821.327 3819.128 3811.323
## p = 5 3837.389 3836.794 3829.943 3829.943 3828.404 3823.230 3820.989 3813.044
## p = 6 3839.548 3835.464 3825.424 3827.238 3827.238 3824.267 3822.296 3814.461
## p = 7 3836.375 3832.047 3819.959 3821.810 3823.790 3823.790 3823.890 3816.106
## p = 8 3824.874 3819.591 3806.966 3808.957 3810.647 3811.688 3811.688 3810.538
## p = 9 3819.492 3813.650 3801.063 3803.062 3804.383 3805.210 3807.065 3807.065
## p = 10 3809.829 3802.740 3789.855 3791.848 3793.276 3793.861 3795.720 3797.691
## p = 11 3806.302 3799.077 3785.508 3787.508 3788.927 3789.515 3791.506 3793.461
## p = 12 3819.272 3808.532 3792.122 3793.782 3794.104 3793.205 3794.969 3795.574
## p = 13 3825.063 3812.734 3794.694 3796.099 3796.059 3794.363 3795.875 3795.840
## p = 14 3822.586 3811.340 3792.987 3794.355 3794.349 3792.849 3794.387 3794.502
## p = 15 3821.947 3810.977 3792.765 3793.978 3793.473 3791.784 3792.960 3792.726
## q = 9 q = 10 q = 11 q = 12 q = 13 q = 14 q = 15
## p = 1 3824.325 3813.268 3811.700 3808.758 3807.151 3806.605 3802.518
## p = 2 3815.032 3804.259 3802.619 3799.339 3797.885 3797.474 3793.298
## p = 3 3804.712 3795.234 3793.169 3789.680 3788.471 3788.018 3783.799
## p = 4 3806.400 3797.002 3794.968 3791.380 3790.207 3789.759 3785.400
## p = 5 3808.023 3798.594 3796.546 3792.892 3791.635 3791.172 3786.851
## p = 6 3809.327 3799.894 3797.849 3794.225 3793.014 3792.570 3788.280
## p = 7 3811.030 3801.755 3799.672 3796.048 3794.849 3794.422 3790.124
## p = 8 3806.227 3797.594 3795.832 3791.867 3790.722 3790.339 3786.500
## p = 9 3804.127 3796.228 3794.425 3790.785 3789.762 3789.395 3785.626
## p = 10 3797.691 3796.894 3794.945 3791.269 3790.262 3789.902 3786.146
## p = 11 3795.311 3795.311 3796.059 3792.486 3791.398 3791.007 3787.276
## p = 12 3794.707 3792.459 3792.459 3794.398 3793.361 3792.976 3789.267
## p = 13 3794.054 3792.349 3793.703 3793.703 3795.339 3794.942 3791.205
## p = 14 3792.955 3792.271 3792.575 3794.178 3794.178 3796.047 3791.970
## p = 15 3790.858 3789.954 3790.474 3792.394 3793.749 3793.749 3792.056
##
## $min.Stat
## [1] 3783.799
## lag optimum adalah p=3 dan q = 15
model.ardlop = ardlDlm(x = train$humidity, y = train$meantemp, p = 3 , q = 15)
summary(model.ardlop)
##
## Time series regression with "ts" data:
## Start = 16, End = 1170
##
## Call:
## dynlm(formula = as.formula(model.text), data = data, start = 1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.6350 -0.6525 0.0810 0.7595 6.0591
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.695041 0.317091 5.346 1.09e-07 ***
## X.t -0.125687 0.004645 -27.060 < 2e-16 ***
## X.1 0.131351 0.007217 18.200 < 2e-16 ***
## X.2 -0.041514 0.008119 -5.113 3.72e-07 ***
## X.3 0.019654 0.005928 3.315 0.000944 ***
## Y.1 0.937037 0.029743 31.505 < 2e-16 ***
## Y.2 -0.141948 0.040436 -3.510 0.000465 ***
## Y.3 0.045413 0.035640 1.274 0.202855
## Y.4 0.064433 0.029349 2.195 0.028334 *
## Y.5 -0.027578 0.029229 -0.944 0.345612
## Y.6 0.028546 0.029139 0.980 0.327484
## Y.7 0.017629 0.029028 0.607 0.543751
## Y.8 0.027035 0.029002 0.932 0.351452
## Y.9 -0.022691 0.028998 -0.782 0.434085
## Y.10 0.003454 0.029006 0.119 0.905226
## Y.11 0.043828 0.029018 1.510 0.131233
## Y.12 -0.001679 0.028987 -0.058 0.953820
## Y.13 -0.027542 0.028970 -0.951 0.341948
## Y.14 0.017493 0.028920 0.605 0.545390
## Y.15 0.009033 0.022844 0.395 0.692607
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.241 on 1135 degrees of freedom
## Multiple R-squared: 0.9715, Adjusted R-squared: 0.971
## F-statistic: 2036 on 19 and 1135 DF, p-value: < 2.2e-16
aic.arlm2 <- AIC(model.ardlop)
## [1] 3797.474
bic.arlm2 <- BIC(model.ardlop)
## [1] 3903.563
(fore.ardlop <- forecast(model = model.ardl, x=test$humidity, h=292))
## $forecasts
## [1] 24.79263 25.32984 24.03174 23.98439 24.41392 26.44743 27.31937 26.81966
## [9] 26.50581 26.19695 24.67609 25.83366 26.01209 26.73335 27.86691 28.03393
## [17] 28.38634 28.50420 27.92460 29.47156 30.15282 29.87137 29.54743 29.81980
## [25] 30.42296 31.03957 30.45340 30.43767 31.61605 32.34069 32.35599 32.76618
## [33] 32.94211 32.32517 32.01600 33.11668 33.44493 33.66750 34.14883 34.28943
## [41] 34.37338 34.22912 33.86864 34.91901 34.88170 34.73029 35.13494 35.90406
## [49] 34.53198 34.41434 33.16403 33.73750 33.78788 33.91769 33.39136 33.49399
## [57] 32.17638 33.38455 34.92017 34.52245 34.88697 35.73609 35.55317 35.41437
## [65] 33.82936 33.33239 33.13162 33.15592 32.70423 31.91146 32.69687 32.90525
## [73] 35.25727 33.91565 31.36962 28.94250 31.73217 32.81951 33.70116 33.04914
## [81] 32.87246 31.61204 32.31183 30.53695 32.28463 32.38166 32.60977 31.56755
## [89] 33.16482 32.40295 30.86689 31.57923 31.21917 31.03054 31.17820 30.77710
## [97] 28.02973 29.32375 29.37042 30.44220 31.04999 29.83276 29.55799 28.98374
## [105] 27.08622 28.96944 28.71415 26.91639 25.87630 25.88804 25.91225 26.70731
## [113] 27.17618 27.22365 25.48053 26.57463 26.52771 25.62992 24.42972 24.73938
## [121] 24.04921 24.17310 21.96888 22.64099 21.82194 24.44423 25.61191 25.96500
## [129] 26.08540 24.83823 23.98540 24.29928 22.57072 21.60469 22.29874 20.72045
## [137] 20.52120 21.48812 21.20407 22.62743 23.68453 23.65766 23.95738 22.13319
## [145] 23.45357 23.81891 22.64488 22.65089 20.25683 20.65899 21.54717 20.61646
## [153] 22.57108 22.73139 21.95589 20.97567 22.37796 22.61136 22.41908 22.74600
## [161] 22.18118 20.97703 21.77977 21.57311 21.99097 22.50294 20.44355 21.05658
## [169] 19.35095 19.50032 21.37561 22.53656 23.03106 22.98325 23.74105 23.50113
## [177] 23.54824 23.80179 23.68839 23.99966 24.20208 24.08986 22.44792 23.80885
## [185] 24.07587 24.14194 24.09840 24.07375 24.81963 24.27652 23.20546 23.38602
## [193] 23.33337 23.86603 24.07429 24.50455 24.88805 24.18060 24.46020 24.16927
## [201] 24.20220 24.51143 23.22403 22.91660 23.77400 24.40037 24.69383 24.58234
## [209] 25.66613 25.75855 26.35197 26.89686 26.53708 25.83445 26.44768 26.61622
## [217] 26.80807 26.80812 27.08204 26.83008 27.02164 26.38974 26.88070 26.53411
## [225] 26.35700 25.96698 26.04015 25.52416 24.42701 24.88525 25.87406 24.95251
## [233] 25.70021 25.88930 24.82966 25.13083 26.72163 26.66332 27.05067 27.06640
## [241] 26.63109 26.15113 26.44470 25.83172 26.46474 26.80947 27.04418 26.85135
## [249] 25.97518 26.05618 25.97171 27.28790 27.18416 27.22920 29.98226 29.91366
## [257] 29.96686 29.65946 27.67532 24.27776 23.58617 24.42694 27.34850 26.98713
## [265] 26.82702 25.10649 24.43794 24.44722 25.00115 23.02661 24.55891 25.22146
## [273] 25.38502 25.84840 26.11356 25.27654 25.23502 25.05880 26.11565 27.12194
## [281] 26.46068 26.03976 23.87390 23.25089 21.08596 23.34670 24.19046 24.08307
## [289] 21.47582 21.04994 21.19474 19.33992
##
## $call
## forecast.ardlDlm(model = model.ardl, x = test$humidity, h = 292)
##
## attr(,"class")
## [1] "forecast.ardlDlm" "dLagM"
#akurasi testing
mape.ardlop <- MAPE(fore.ardlop$forecasts, test$meantemp) #data testing
#akurasi data training
mape_trainardl2 <- GoF(model.ardlop)["MAPE"]
c("MAPE_testing" = mape.ardlop, "MAPE_training" = mape_trainardl2)
## $MAPE_testing
## [1] 0.1782186
##
## $MAPE_training.MAPE
## [1] 0.04288203
# matriks perbandingan
mape<-matrix(c(mape_trainardl,mape_trainardl2,mape_traindlm,mape.train.koyck))
row.names(mape) = c("Autoregresive","Autoregresive.opt","Distributed","koyck")
colnames(mape) = c("mape")
mape
## mape
## Autoregresive 0.04457988
## Autoregresive.opt 0.04288203
## Distributed 0.1666214
## koyck 0.05754036
Dari perbandingan keempat model diperoleh model yang optimum adalah autoregresive dengan lag optimum.
par(mfrow=c(1,1))
plot(test$humidity, test$meantemp, type="b", col="black", ylim=c(0,50))
points(test$humidity, ramal.koyck$forecasts,col="red")
lines(test$humidity, ramal.koyck$forecasts,col="red")
points(test$humidity, fore.dlm2$forecasts,col="orange")
lines(test$humidity, fore.dlm2$forecasts,col="orange")
points(test$humidity, fore.ardl$forecasts,col="green")
lines(test$humidity, fore.ardl$forecasts,col="green")
points(test$humidity, fore.ardlop$forecasts,col="blue")
lines(test$humidity, fore.ardlop$forecasts,col="blue")
legend("topleft",c("aktual", "koyck","DLM OPT", "autoregressive", "autoregressive OPT"), lty=1, col=c("black","red","orange","green","blue"), cex=0.8)
Berdasarkan plot di atas, terlihat bahwa metode Distributed Lag Model Optimum merupakan metode yang sesuai untuk peramalan karena memiliki tren data yang paling mendekati pola data aktual dibandingkan dengan metode lainnya.
dwtest(model.ardlop$model)
##
## Durbin-Watson test
##
## data: model.ardlop$model
## DW = 2.0185, p-value = 0.6026
## alternative hypothesis: true autocorrelation is greater than 0
p-value > 0.05 maka tak tolak H0, artinya cukup bukti untuk menyatakan bahwa tidak terdapat autokorelasi pada model dengan taraf nyata 5%.
Data x dan Y keduanya mempunyai pola data deret waktu musiman dan terdapat autokorelasi pada model awal regresi X dan Y. Penanganan dilakukan menggunakan metode Koyck, DLM, dan Autoregresive. Diperoleh model yang optimum untuk digunakan adalah model Autoregresive dengan lag optimal. Sedangkan untuk peramalan, metode yang baik untuk digunakan adalah DLM dengan lag optimum. Penggunaan metode Autoregresive dengan lag optimal berhasil menangani Autokorelasi.