Analisis Regresi dengan Peubah Lag : Tekanan Udara Memengaruhi Kelembaban Udara
Pendahuluan
Latar Belakang
Tekanan udara adalah tenaga yang bekerja untuk menggerakkan massa udara dalam setiap satuan luas tertentu (Siswanto 2011). Faktor tekanan udara dalam memengaruhi kelembaban udara berbanding lurus. Artinya, apabila suatu tempat memiliki tekanan udara yang semakin tinggi, maka kelembaban udaranya akan semakin tinggi juga.
Tujuan
Menganalisis hubungan antara peubah tekanan udara(X) dengan kelembaban udara(Y) dengan melakukan pemodelan koyck, distribusi lag model, autoregressive model. Kemudian, melihat perbandingan antara model-model tersebut untuk mendapatkan model terbaik.
Tinjauan Pustaka
Analisis Deret Waktu
Analisis deret waktu adalah menganalisis suatu data yang diamati berdasarkan urutan waktu(jam, hari, minggu, bulan, maupun dalam tahun) dengan rentang yang sama sehingga memperoleh pola data deret waktu. Analisis ini digunakan untuk memprediksi kondisi atau nilai pada masa mendatang berdasarkan dari pengamatan sebelumnya (Maulana 2018).
Metode Koyck
Metode Koyck didasari asumsi bahwa semakin jauh jarak lag pada peubah bebas dari periode sekarang maka semakin kecil pengaruh peubah lag terhadap peubah tak bebas (Gujarati 2004). Metode Koyck digunakan ketika panjang (lag) tidak diketahui untuk menentukan estimasi model dinamis terdistribusi lag. Persamaan Koyck diakhiri dengan model autoregresif karena variabel independen Yt-1 muncul (Lihawa et al. 2022).
Model Autoregressive
Model Autoregressive Distributed Lag (ARDL) adalah model regresi yang memasukkan nilai peubah yang menjelaskan baik nilai masa sekarang atau nilai masa lalu (lag) dari peubah independen sebagai tambahan pada model yang memasukkan nilai lag dari peubah dependen sebagai salah satu peubah penjelas. Model distributed lag disebut sebagai model dynamic regression karena efek perubahan satu unit dalam nilai variabel bebas terdistribusi pada sejumlah periode waktu. Oleh karena itu, model autoregressive dan model dynamic regression sering disebut satu rangkaian yaitu autoregressive distributed lag (ARDL) (Gujarati 2006).
Data Preparation
Packages & Library
Untuk menganalisis regresi dengan peubah lag memerlukan packages sebagai berikut.
dLagMdynlmMLmetricslmtestcar
lapply(c("dLagM","dynlm","MLmetrics","lmtest","car"),
library,character.only=T)Deklarasi & Deskripsi Data
Dataset yang digunakan adalah data Jena Climate yang bersumber dari kaggle yang dapat diakses pada link berikut https://www.kaggle.com/datasets/mnassrib/jena-climate. Data ini merupakan data timeseries yang direkam oleh Stasiun Cuaca Max Planck Institut Biogeochemistry di Jena Jerman pada setiap sepuluh menit. Data ini terdiri dari 420551 amatan yang direkam sejak 1 Januari 2009 hingga 31 Desember 2016. Kemudian, diambil 2 dari 15 peubah dengan 143 amatan pada tanggal 31 Desember 2016, yaitu Kelembaban sebagai peubah (Y) dan Tekanan Udara sebagaipeubah (X) yang akan dianalisis.
#INPUT DATA
dt.climate <- read.csv("D:/Semester 5/MPDW/Pertemuan 4/jena_climate_2009_2016.csv")
dt.climate <- dt.climate[(420407:420550),-c(2:7,9,11:15)]
View(dt.climate)
colnames(dt.climate)[1] <- "Periode Waktu"
colnames(dt.climate)[2] <- "Tekanan Udara"
colnames(dt.climate)[3] <- "Kelembaban"
head(dt.climate)## Periode Waktu Tekanan Udara Kelembaban
## 420407 31.12.2016 00:00:00 4.14 2.56
## 420408 31.12.2016 00:10:00 4.09 2.53
## 420409 31.12.2016 00:20:00 4.06 2.51
## 420410 31.12.2016 00:30:00 4.07 2.51
## 420411 31.12.2016 00:40:00 4.03 2.49
## 420412 31.12.2016 00:50:00 3.86 2.39
Yt <- dt.climate$`Kelembaban`
Xt <- dt.climate$`Tekanan Udara`Splitting & Setting Data
Kemudian, dilakukan splitting data sebanyak 80% (115/143 amatan) data train dan sebanyak 20% (28/143 amatan) data test.
#SPLIT DATA
train<-dt.climate[(1:115),]
test<-dt.climate[(116:143),]
#TIME SERIES
train.ts<-ts(train)
test.ts<-ts(test)
data.ts<-ts(dt.climate)Eksplorasi Data
Time Series Plot
#Time Series Plot Tekanan Udara
plot(ts(Xt), main = "Time Series Plot Tekanan Udara", xlab = "Periode Waktu", ylab="Tekanan Udara")
points(Xt) Dapat dilihat bahwa pola data peubah tekanan udara cenderung membetuk pola data gabungan, yaitu pola
tren positif dan pola tren negatif.
#Time Series Plot Kelembaban
plot(ts(Yt), main = "Time Series Plot Kelembaban", xlab = "Periode Waktu", ylab="Kelembaban")
points(Yt) Dapat dilihat bahwa pola data peubah kelembaban cenderung membetuk pola data gabungan, yaitu pola
tren positif dan pola tren negatif.
Korelasi
cor(Xt, Yt)## [1] 0.9997938
Scatter Plot
plot(Xt,Yt, pch = 20, col = "#A10035", xlab = "Tekanan Udara", ylab = "Kelembaban", main = "Scatter Plot Kelembaban vs Tekanan Udara")
abline(lm(Yt ~ Xt), col = "blue", lwd = 2)Dapat dilihat bahwa hubungan antara Peubah Tekanan Udara(X) dan Kelembaban(Y) memiliki hubungan linear positif dengan nilai korelasi sebesar 0.9997938. Artinya, kedua peubah memiliki hubungan linear positif kuat.
Analisis Data
Model Koyck
#MODEL KOYCK
Yt_train <- train$Kelembaban
Xt_train <- train$`Tekanan Udara`
model.koyck <- dLagM :: koyckDlm(x=Xt_train , y=Yt_train)
summary(model.koyck)##
## Call:
## "Y ~ (Intercept) + Y.1 + X.t"
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.191273 -0.053416 0.006365 0.051770 0.190265
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.05886 0.21843 0.269 0.788
## Y.1 1.51935 3.62678 0.419 0.676
## X.t -0.33756 2.30392 -0.147 0.884
##
## Residual standard error: 0.07918 on 111 degrees of freedom
## Multiple R-Squared: 0.9476, Adjusted R-squared: 0.9466
## Wald test: 1035 on 2 and 111 DF, p-value: < 2.2e-16
##
## Diagnostic tests:
## NULL
##
## alpha beta phi
## Geometric coefficients: -0.1133388 -0.3375601 1.519354
#AIC dan BIC
AIC(model.koyck)## [1] -249.7282
BIC(model.koyck)## [1] -238.7834
#ramalan
(fore.koyck <- forecast(model = model.koyck, x=test$`Tekanan Udara`, h=28))## $forecasts
## [1] 2.461433 2.492293 2.542555 2.629049 2.790843 3.094051
## [7] 3.527727 4.206887 5.245523 6.793197 9.175043 12.790534
## [13] 18.263491 26.585598 39.229824 58.440876 87.629259 131.983491
## [19] 199.383385 301.831551 457.510184 693.973589 1053.255277 1599.195393
## [25] 2428.685061 3688.976675 5603.798718 8513.104276
##
## $call
## forecast.koyckDlm(model = model.koyck, x = test$`Tekanan Udara`,
## h = 28)
##
## attr(,"class")
## [1] "forecast.koyckDlm" "dLagM"
#MAPE data testing
mape.koyck <- MAPE(fore.koyck$forecasts, test$Kelembaban)
#akurasi data training
mape_train <- dLagM::GoF(model.koyck)["MAPE"]
c("MAPE_testing" = mape.koyck, "MAPE_training" = mape_train)## $MAPE_testing
## [1] 428.2624
##
## $MAPE_training.MAPE
## [1] 0.02765901
Regression with Distributed Lag
Regression with Distributed Lag (lag=2)
model.dlm = dLagM::dlm(x = Xt_train,y = Yt_train , q = 2)
summary(model.dlm)##
## Call:
## lm(formula = model.formula, data = design)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.0146427 -0.0028151 0.0001628 0.0029713 0.0111684
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.030131 0.003344 -9.009 7.74e-15 ***
## x.t 0.628610 0.005848 107.483 < 2e-16 ***
## x.1 -0.005546 0.008769 -0.632 0.528
## x.2 0.004608 0.005866 0.786 0.434
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.005012 on 109 degrees of freedom
## Multiple R-squared: 0.9998, Adjusted R-squared: 0.9998
## F-statistic: 1.758e+05 on 3 and 109 DF, p-value: < 2.2e-16
##
## AIC and BIC values for the model:
## AIC BIC
## 1 -870.2598 -856.6228
#AIC dan BIC
AIC(model.dlm)## [1] -870.2598
BIC(model.dlm)## [1] -856.6228
#ramalan
(fore.dlm <- forecast(model = model.dlm, x=test$`Tekanan Udara`, h=28))## $forecasts
## [1] 2.536709 2.398386 2.393688 2.373872 2.317417 2.210914 2.261731 2.222788
## [9] 2.210917 2.267326 2.210160 2.217360 2.254606 2.241747 2.242135 2.242043
## [17] 2.242043 2.229470 2.210723 2.129078 2.085658 2.211169 2.190879 2.072531
## [25] 2.048302 2.041362 2.053806 2.028504
##
## $call
## forecast.dlm(model = model.dlm, x = test$`Tekanan Udara`, h = 28)
##
## attr(,"class")
## [1] "forecast.dlm" "dLagM"
#MAPE data testing
mape.dlm <- MAPE(fore.dlm$forecasts, test$Kelembaban)
#akurasi data training
mape_train <- GoF(model.dlm)["MAPE"]
c("MAPE_testing" = mape.dlm, "MAPE_training" = mape_train)## $MAPE_testing
## [1] 0.004659511
##
## $MAPE_training.MAPE
## [1] 0.001651307
Penentuan Lag Optimum
colnames(train)[1] <- "t"
colnames(train)[2] <- "Xt"
colnames(train)[3] <- "Yt"
finiteDLMauto(formula = Yt ~ Xt,
data = data.frame(train), q.min = 1, q.max = 4 ,
model.type = "dlm", error.type = "AIC", trace = TRUE)## q - k MASE AIC BIC GMRAE MBRAE R.Adj.Sq Ljung-Box
## 1 1 0.09542 -878.4156 -867.4708 0.31855 0.11894 0.99979 3.395206e-11
## 2 2 0.09262 -870.2598 -856.6228 0.29448 0.12481 0.99979 4.838441e-11
## 3 3 0.09059 -863.1071 -846.7961 0.24480 0.10974 0.99979 4.210713e-10
## 4 4 0.08753 -861.6810 -842.7143 0.24268 0.12384 0.99981 7.553411e-10
Regression with Distributed Lag (lag=4)
#model dlm dengan lag optimum
model.dlm2 = dLagM::dlm(x = Xt_train,y = Yt_train, q = 4)
summary(model.dlm2)##
## Call:
## lm(formula = model.formula, data = design)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.0144416 -0.0029453 -0.0001422 0.0029875 0.0110514
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.0304441 0.0032473 -9.375 1.55e-15 ***
## x.t 0.6284264 0.0056995 110.260 < 2e-16 ***
## x.1 -0.0069474 0.0084757 -0.820 0.414
## x.2 0.0098651 0.0086003 1.147 0.254
## x.3 -0.0026215 0.0086223 -0.304 0.762
## x.4 -0.0009137 0.0058043 -0.157 0.875
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.004817 on 105 degrees of freedom
## Multiple R-squared: 0.9998, Adjusted R-squared: 0.9998
## F-statistic: 1.138e+05 on 5 and 105 DF, p-value: < 2.2e-16
##
## AIC and BIC values for the model:
## AIC BIC
## 1 -861.681 -842.7143
#AIC dan BIC
AIC(model.dlm2)## [1] -861.681
BIC(model.dlm2)## [1] -842.7143
#ramalan
(fore.dlm2 <- forecast(model = model.dlm2, x=test$`Tekanan Udara`, h=28))## $forecasts
## [1] 2.536277 2.398743 2.394650 2.373405 2.317460 2.211184 2.261839 2.222164
## [9] 2.211329 2.267380 2.210083 2.217988 2.254519 2.241786 2.242572 2.242209
## [17] 2.242206 2.229656 2.210942 2.129258 2.085928 2.210914 2.190349 2.073432
## [25] 2.048858 2.040874 2.053643 2.028546
##
## $call
## forecast.dlm(model = model.dlm2, x = test$`Tekanan Udara`, h = 28)
##
## attr(,"class")
## [1] "forecast.dlm" "dLagM"
#akurasi testing
mape.dlm2 <- MAPE(fore.dlm2$forecasts, test$Kelembaban)
#akurasi data training
mape_train <- GoF(model.dlm2)["MAPE"]
c("MAPE_testing" = mape.dlm2, "MAPE_training" = mape_train)## $MAPE_testing
## [1] 0.004612677
##
## $MAPE_training.MAPE
## [1] 0.001590233
Model Autoregressive / Dynamic Regression
#MODEL AUTOREGRESSIVE
#library(dLagM)
model.ardl = ardlDlm(x = Xt_train, y = Yt_train, p = 1 , q = 1)
summary(model.ardl)##
## Time series regression with "ts" data:
## Start = 2, End = 115
##
## Call:
## dynlm(formula = as.formula(model.text), data = data, start = 1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.0120774 -0.0025107 0.0001804 0.0027584 0.0096264
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.011312 0.003407 -3.320 0.00122 **
## X.t 0.626206 0.004549 137.665 < 2e-16 ***
## X.1 -0.388636 0.046178 -8.416 1.60e-13 ***
## Y.1 0.621484 0.073650 8.438 1.43e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.003933 on 110 degrees of freedom
## Multiple R-squared: 0.9999, Adjusted R-squared: 0.9999
## F-statistic: 2.861e+05 on 3 and 110 DF, p-value: < 2.2e-16
#AIC dan BIC
AIC(model.ardl)## [1] -933.3185
BIC(model.ardl)## [1] -919.6375
#ramalan
(fore.ardl <- forecast(model = model.ardl, x=test$`Tekanan Udara`, h=28))## $forecasts
## [1] 2.538937 2.400494 2.393692 2.374565 2.317978 2.211333 2.261219 2.223559
## [9] 2.210948 2.267242 2.210892 2.217110 2.254661 2.242156 2.242157 2.242158
## [17] 2.242158 2.229634 2.210837 2.129408 2.085489 2.210639 2.191905 2.072942
## [25] 2.047801 2.041460 2.053929 2.028858
##
## $call
## forecast.ardlDlm(model = model.ardl, x = test$`Tekanan Udara`,
## h = 28)
##
## attr(,"class")
## [1] "forecast.ardlDlm" "dLagM"
#akurasi testing
mape.ardl <- MAPE(fore.ardl$forecasts, test$Kelembaban) #data testing
#akurasi data training
mape_train <- GoF(model.ardl)["MAPE"]
c("MAPE_testing" = mape.ardl, "MAPE_training" = mape_train)## $MAPE_testing
## [1] 0.004539664
##
## $MAPE_training.MAPE
## [1] 0.00132682
#penentuan lag optimum
colnames(dt.climate)[1] <- "t"
colnames(dt.climate)[2] <- "Xt"
colnames(dt.climate)[3] <- "Yt"
ardlBoundOrders(data = data.frame(dt.climate) , formula = Yt ~ Xt )## $p
## Xt
## 1 15
##
## $q
## [1] 1
##
## $Stat.table
## q = 1 q = 2 q = 3 q = 4 q = 5 q = 6 q = 7
## p = 1 -1167.325 -1157.213 -1150.964 -1140.016 -1130.893 -1132.573 -1121.398
## p = 2 -1157.695 -1167.294 -1160.787 -1149.399 -1140.046 -1138.616 -1127.295
## p = 3 -1160.708 -1160.708 -1161.756 -1150.391 -1140.687 -1139.157 -1127.730
## p = 4 -1146.164 -1150.353 -1150.353 -1151.019 -1141.377 -1141.179 -1129.718
## p = 5 -1137.290 -1142.370 -1141.358 -1141.358 -1139.670 -1139.272 -1127.837
## p = 6 -1135.941 -1138.767 -1138.548 -1139.674 -1139.674 -1139.521 -1128.053
## p = 7 -1127.453 -1130.240 -1129.121 -1130.054 -1128.054 -1128.054 -1126.555
## p = 8 -1111.217 -1114.726 -1114.678 -1116.762 -1114.988 -1115.128 -1115.128
## p = 9 -1105.447 -1106.878 -1106.954 -1108.342 -1106.342 -1105.783 -1104.355
## p = 10 -1095.494 -1097.390 -1098.382 -1098.991 -1096.992 -1096.634 -1094.828
## p = 11 -1088.859 -1090.429 -1090.261 -1090.463 -1088.592 -1087.713 -1086.280
## p = 12 -1092.730 -1092.727 -1092.727 -1091.735 -1090.506 -1089.184 -1088.441
## p = 13 -1076.663 -1077.986 -1078.097 -1078.702 -1077.418 -1076.516 -1075.945
## p = 14 -1057.861 -1059.242 -1061.133 -1061.497 -1059.586 -1058.837 -1057.486
## p = 15 -1045.740 -1047.230 -1049.263 -1050.137 -1048.149 -1048.480 -1046.607
## q = 8 q = 9 q = 10 q = 11 q = 12 q = 13 q = 14
## p = 1 -1110.863 -1102.605 -1093.678 -1082.708 -1074.975 -1064.196 -1053.429
## p = 2 -1116.074 -1106.353 -1098.019 -1086.831 -1078.280 -1067.066 -1056.124
## p = 3 -1116.389 -1107.495 -1099.707 -1088.432 -1080.054 -1068.858 -1058.256
## p = 4 -1118.526 -1109.551 -1100.861 -1089.856 -1081.463 -1070.360 -1059.336
## p = 5 -1116.641 -1107.564 -1098.861 -1087.873 -1079.573 -1068.432 -1057.426
## p = 6 -1116.642 -1107.598 -1099.046 -1088.135 -1080.659 -1069.569 -1058.266
## p = 7 -1115.132 -1105.869 -1097.227 -1086.242 -1078.854 -1067.834 -1056.538
## p = 8 -1113.684 -1104.367 -1095.381 -1084.352 -1076.873 -1065.841 -1054.547
## p = 9 -1104.355 -1102.401 -1093.384 -1082.356 -1074.917 -1063.912 -1052.648
## p = 10 -1093.014 -1093.014 -1093.665 -1082.538 -1075.102 -1064.186 -1052.888
## p = 11 -1084.295 -1082.601 -1082.601 -1090.282 -1083.847 -1072.268 -1060.689
## p = 12 -1087.171 -1085.367 -1083.546 -1083.546 -1086.704 -1075.519 -1064.241
## p = 13 -1074.262 -1072.964 -1072.275 -1075.478 -1075.478 -1073.676 -1062.332
## p = 14 -1055.555 -1053.581 -1052.853 -1059.416 -1062.253 -1062.253 -1061.177
## p = 15 -1044.790 -1042.918 -1043.001 -1052.371 -1056.921 -1054.974 -1054.974
## q = 15
## p = 1 -1045.459
## p = 2 -1048.818
## p = 3 -1050.911
## p = 4 -1051.749
## p = 5 -1049.750
## p = 6 -1050.791
## p = 7 -1048.817
## p = 8 -1047.009
## p = 9 -1045.017
## p = 10 -1045.038
## p = 11 -1054.826
## p = 12 -1058.622
## p = 13 -1056.638
## p = 14 -1055.340
## p = 15 -1055.400
##
## $min.Stat
## [1] -1167.325
Perbandingan Keakuratan Ramalan
#PERBANDINGAN
akurasi <- matrix(c(mape.koyck, mape.dlm, mape.dlm2, mape.ardl))
row.names(akurasi)<- c("Koyck","DLM 1","DLM 2","Autoregressive")
colnames(akurasi) <- c("MAPE")
knitr::kable(akurasi, align = "c")| MAPE | |
|---|---|
| Koyck | 428.2623613 |
| DLM 1 | 0.0046595 |
| DLM 2 | 0.0046127 |
| Autoregressive | 0.0045397 |
Berdasarkan perbandingan ukuran akurasi MAPE di atas, model autoregressive memiliki nilai MAPE terkecil dibandingkan dengan model koyck, DLM 1, dan DLM 2. Oleh karena itu, dapat disimpulkan bahwa model autoregressive merupakan model yang terbaik.
#PLOT
par(mfrow=c(1,1))
plot(test$`Tekanan Udara`, test$Kelembaban, type="b", col="black")
points(test$`Tekanan Udara`, fore.koyck$forecasts,col="red")
lines(test$`Tekanan Udara`, fore.koyck$forecasts,col="red")
points(test$`Tekanan Udara`, fore.dlm$forecasts,col="blue")
lines(test$`Tekanan Udara`, fore.dlm$forecasts,col="blue")
points(test$`Tekanan Udara`, fore.dlm2$forecasts,col="orange")
lines(test$`Tekanan Udara`, fore.dlm2$forecasts,col="orange")
points(test$`Tekanan Udara`, fore.ardl$forecasts,col="green")
lines(test$`Tekanan Udara`, fore.ardl$forecasts,col="green")
legend("topleft",c("aktual", "koyck","DLM 1","DLM 2", "autoregressive"), lty=1, col=c("black","red","blue","orange","green"), cex=0.8) Berdasarkan plot di atas, dapat dilihat bahwa
model autoregressive yang paling mendekati data aktual dibandingkan 3 model lainnya.
Uji Diagnostik Model Autoregressive
Uji Non-Autokorelasi
bgtest(model.ardl$model)##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: model.ardl$model
## LM test = 7.2602, df = 1, p-value = 0.00705
Dari hasil pengujian di atas, nilai p-value < 0.05 sehingga Tolak H0. Artinya, tidak cukup bukti untuk menyatakan bahwa sisaan saling bebas atau tidak ada autokorelasi pada taraf nyata 5%.
Uji Heterogenitas
#heterogenitas
bptest(model.ardl$model)##
## studentized Breusch-Pagan test
##
## data: model.ardl$model
## BP = 5.9171, df = 3, p-value = 0.1157
Dari hasil pengujian di atas, nilai p-value > 0.05 sehingga Tak Tolak H0. Artinya, cukup bukti untuk menyatakan bahwa ragam sisaan homogen pada taraf nyata 5%.
Uji Normalitas
#shapiro wilk
ujinormal <- shapiro.test(residuals(model.ardl))## Time Series:
## Start = 2
## End = 115
## Frequency = 1
## 2 3 4 5 6
## -1.918178e-03 -3.919265e-03 -9.410720e-03 -4.761183e-04 2.863164e-03
## 7 8 9 10 11
## -1.207737e-02 -2.699775e-04 -2.042097e-03 -5.257002e-03 -1.288155e-03
## 12 13 14 15 16
## -1.615550e-03 -8.648217e-03 1.898978e-04 -1.502399e-03 2.741910e-03
## 17 18 19 20 21
## 2.053793e-03 -4.535663e-03 -1.419911e-03 1.104211e-03 -4.095117e-03
## 22 23 24 25 26
## -1.686812e-03 3.344767e-03 -2.198620e-03 -4.395347e-03 -7.565602e-04
## 27 28 29 30 31
## 3.504413e-03 -3.252791e-03 2.796966e-03 4.302910e-03 -5.421628e-03
## 32 33 34 35 36
## 1.646308e-03 -3.825817e-03 -2.501899e-04 1.930215e-04 7.091267e-03
## 37 38 39 40 41
## -3.764599e-03 2.980692e-04 6.623289e-03 9.965824e-05 1.709203e-04
## 42 43 44 45 46
## -2.222992e-04 7.003341e-03 -5.799014e-03 -1.455446e-03 1.822617e-03
## 47 48 49 50 51
## 3.809707e-03 2.824857e-03 -1.700352e-03 -4.420114e-03 -2.614666e-03
## 52 53 54 55 56
## 2.007030e-03 3.303336e-03 -5.174056e-03 7.385334e-03 -5.663579e-04
## 57 58 59 60 61
## 3.515640e-03 3.171581e-03 2.400975e-03 4.828610e-03 -2.974663e-03
## 62 63 64 65 66
## -1.708913e-03 -1.444678e-03 -1.967712e-03 -1.276929e-03 2.477674e-03
## 67 68 69 70 71
## 2.576827e-03 -6.536750e-03 1.778330e-03 -3.057610e-03 5.976145e-03
## 72 73 74 75 76
## -1.108454e-03 2.763906e-03 -6.236521e-03 7.515917e-04 3.443741e-04
## 77 78 79 80 81
## 1.921580e-03 -7.202988e-04 2.364791e-03 7.437562e-04 -3.074006e-03
## 82 83 84 85 86
## -4.563286e-03 1.423313e-03 4.063251e-03 3.488285e-03 -3.021348e-03
## 87 88 89 90 91
## 1.291558e-03 -7.893528e-04 4.853187e-03 -4.491298e-03 6.088775e-04
## 92 93 94 95 96
## -2.685850e-03 2.802939e-03 4.179068e-03 -8.149414e-03 1.996339e-03
## 97 98 99 100 101
## 1.041320e-03 1.547690e-03 -2.881032e-03 3.168725e-03 7.005817e-03
## 102 103 104 105 106
## -8.077695e-03 2.645691e-03 1.627513e-03 8.402431e-04 9.626426e-03
## 107 108 109 110 111
## -8.660521e-04 4.870309e-03 3.295769e-03 -4.421705e-04 3.293103e-03
## 112 113 114 115
## -3.495291e-05 1.619410e-03 6.747476e-03 -2.743487e-03
ujinormal$p.value## [1] 0.554043
Dari hasil pengujian di atas, nilai p-value > 0.05 sehingga Tak Tolak H0. Artinya, cukup bukti untuk meyatakan bahwa sisaan menyebar normal pada taraf nyaa 5%.
Kesimpulan
Berdasarkan hasil analisis regresi dengan peubah lag, didapatkan bahwa model autoregressive merupakan model terbaik untuk data time series dengan peubah tekanan udara (X) dan peubah kelembaban udara (Y) karena memiliki nilai MAPE terkecil. Meskipun begitu, hasil pengujian diagnostik model masih ada yang belum memenuhi sehingga model tersebut masih memerlukan penanganan lebih lanjut.
Daftar Pustaka
Gujarati DN. 2004. Basic Econometrics. Fourth Edition. New York: The McGrawHill.
Gujarati DN. 2006. Ekonometrika Dasar. Jakarta: Erlangga.
Lihawa SH, Resmawan, Isa DR, Nashar LO. 2022. Distributed lag model pengaruh jumlah uang beredar terhadap nilai tukar rupiah menggunakan metode koyck dan almon. Jambura Journal of Probability and Statistics. 3(1): 40-45.
Maulana HA. 2018. Pemodelan deret waktu dan peramalan curah hujan pada dua belas stasiun di bogor. Jurnal Matematika, Statistika, & Komputasi. 15(1): 51-63.
Siswanto KY. 2011. Model fungsi transfer multivariat dan aplikasinya untuk meramalkan curah hujan di kota yogyakarta. [skripsi]. Yogyakarta: Universitas Negeri Yogyakarta].