Ekonometrik

Final Exam


Kontak : \(\downarrow\)
Email
Instagram https://www.instagram.com/claraevania/
RPubs https://rpubs.com/claradellaevania/

SOAL

Mencari kasus (dataset) yang dapat deselesaikan dengan Time Series Regression Models, Exponential Smoothing, Arima Models.

  1. Jelaskan bagaimana anda membangun ketiga model tersebut

  2. Bandingkan hasil prediksi dari ketiga model tersebut

  3. Berikan pendapatkan kalian mengenai kelebihan dan kekurangan penggunaan model tersebut pada kasus (dataset) anda.

Buatlah video (durasinya minimal 20 Menit) yang menjelaskan materi tersebut dan upload di youtube, kemudian lampirkan link Rpubs dan videonya di GCR.

Dataset Kasus

Dalam Penyelesaian dengan Beberapa Model ini, saya menggunakan Dataset yang berisi sekumpulan Data Cuaca yang dikumpulkan di Kota Delhi pada periode 4 Bulan. Dimana sesungguhnya data ini dapat digunakan dalam hal peramalan cuaca. Jadi Dengan beberapa model tersebut kita dapat melihat tentang prakiraan Cuaca untuk Iklim India. Dimana Parameter yang digunakan adalah meantemp, humidity, wind_speed, meanpressure.

getwd()
## [1] "D:/DELLA/MATANA/TUGAS/SEMESTER 4/EKONOMETRIK/Rstudio"
datacuaca = read.csv("D:/DELLA/MATANA/TUGAS/SEMESTER 4/EKONOMETRIK/Rstudio/datacuacaaa.csv")
datacuaca
class(datacuaca)
## [1] "data.frame"

Time Series Regression Models

library(tidyverse)
library(lubridate)
library(zoo)
library(padr)

datacuaca1 <- datacuaca %>% 
  mutate(date = ymd(date)) %>% 
  arrange(date) %>% 
  select(date, meantemp) %>% 
  pad() %>% 
  mutate(meantemp = na.fill(meantemp, na.aggregate(meantemp)))

glimpse(datacuaca1)
## Rows: 114
## Columns: 2
## $ date     <date> 2017-01-01, 2017-01-02, 2017-01-03, 2017-01-04, 2017-01-05, ~
## $ meantemp <dbl> 15.91304, 18.50000, 17.11111, 18.70000, 18.38889, 19.31818, 1~

Disini terlihat jelas bahwa Data Cuaca ini memiliki 114 Baris serta terdapat 2 Kolom. Dimana dalam hal kita mengubah tipe data pada kolom Data dan meantemp untuk analisis lebih lanjut.

Dalam Analisis Deret Waktu interval waktu tidak boleh terlewatkan. Untuk itu pada code saya melampirkan padding pad yang berguna untuk mengisi nilai kekosongan yang dihasilkan dari nilai agregatnya dimana nilai agregat tersebut adalah mean dari dataitu sendiri.

range(datacuaca$date)
## [1] "2017-01-01" "2017-04-24"

Disini kita dapat meilihat bahwa daya yang digunakan ini memiliki interval harian dimana terletak dalam periode 1 Januari 2017 hingga 24 April 2017.

plotly::ggplotly(
  ggplot(data = datacuaca1, aes(x = date, y = meantemp)) +
  geom_line())

Dalam Plot ini menunjukkan visualisasi data suhu rata-rata dari 1 Januari Tahun 2017 hingga 24 April tahun 2017. Dimana melalui plot tersebut terlihat bahwa suhu antara 7 derajat hingga mendekati 40 derajat setiap tahunnya memiliki pola naik turun yang secara berulan. Artinya bawa pengaruh musim yang mempengaruhi suhu harian di kota. Namun, jika garis tren ditarik, data tidak memiliki tren. Disimpulkan bahwa data suhu yang digunakan tidak memiliki trend tetapi memiliki pola musiman (seasonal pattern).

Ada dua entitas umum yang dianggap ahli meteorologi sebagai faktor yang berkontribusi dalam badai; yaitu, kecepatan angin dan rata-rata suhu, maka disini kita melihat wind_speed dan meantemp

datalm<-lm(wind_speed~meantemp, data=datacuaca)
datalm
## 
## Call:
## lm(formula = wind_speed ~ meantemp, data = datacuaca)
## 
## Coefficients:
## (Intercept)     meantemp  
##      5.4767       0.1228

Untuk itu adakan Uji Asumsi :

Uji Asumsi

Dalam melakukan suatu analisi, terdapat beberapa asumsi yang perlu diperhatikan. Untuk itu, sebelum langkah lebih lanjut, kita perlu memastikan apakah asumsi-asumsi yang ada telah terpenuhi. Dimana asumsi-asumsi yang harus terpenuhi adalah sebagai berikut:

1. Uji Normalitas

Pada Uji Normalitas dilakukan untuk melihat pada variabel dependen yang terdapat pada data apakah merupakan distribusi normal yang sesuai dengan kurva lonceng atau tidak.

par(mfrow=c(2,2))
plot(datalm)

Pada output yang dihasilkan ini, Kita dapat melihat Ouput Normal Q-Q , titik-titik berrada pada sekitar garis linear. Maka dapat disimpulkan bahwa Data ini berdistribusi normal serta juga memenuhi asumsi normalitas.

2. Uji Heterokedastisitas

Untuk mengetahui keadaan dimana terjadinya ketidaksamaan varians dari data pada model regresi, maka perlu dilakukan uji heteroskedastisitas

par(mfrow=c(2,2))
plot(datalm)

Maka dari Plot tersebut kita melihat bagian plot Residual vs Leverage, dimana terlihat pada titik tersebut menggerombol, tidak menyebar. Maka dapat disimpulkan bahwa tidak terjadi perbedaan varians residual sehingga ini memenuhi Uji Heteroskedastisitas.

3. Uji Autokorelasi

Uji Autokorelasi bertujuan untuk menguji apakah dalam suatu model regresi linear ada korelasi antar kesalahan pengganggu (residual) pada periode t dengan kesalahan periode t-1 (sebelumnya). Jika terjadi korelasi, maka dinamakan ada problem autokorelasi

library(lmtest)
dwtest(datalm)
## 
##  Durbin-Watson test
## 
## data:  datalm
## DW = 1.1357, p-value = 1.02e-06
## alternative hypothesis: true autocorrelation is greater than 0

Maka Output yang dihasilkan adalah dimana Nilai P = 1.02e-06. Dimana nilai Durbin Watson test p value lebih besar dari 0.05 maka kesimpulannya tidak terdapat autokorelasi antar data model terpengaruhi.

4. Koefisien Signifikansi

summary(datalm)
## 
## Call:
## lm(formula = wind_speed ~ meantemp, data = datacuaca)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.8358 -2.4203 -0.2901  2.1202 10.4156 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  5.47669    1.17675   4.654 8.99e-06 ***
## meantemp     0.12284    0.05203   2.361     0.02 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.518 on 112 degrees of freedom
## Multiple R-squared:  0.04741,    Adjusted R-squared:  0.03891 
## F-statistic: 5.574 on 1 and 112 DF,  p-value: 0.01995

Maka dari hasil summary diatas dapat disimpulkan :

\[ \begin{align} Y &=5.47669 (x) + 0.12284\\ t-value&= 4.654\\ p-value &= 0.01995\\ \end{align} \]

Maka dimana tingkat signifikansi yang digunakan adalah 0.05.

Sehingga dari Time Series Regression Model ini terdapat suatu masalah dimana data ini tidak stabil dikarenakan tingkat signifikansi yang sangat tinggi.

Exponential Smoothing

Model Exponensial Smoothing merupakan suatu model dalam peramalan rata-rata pergerakan dengan pembobotan canggih dimana ini merupakan pencatatan data masa lalu namun masih mudah digunakannya. Sehingga dapat dikatakan model ini untuk meramalkan data-data pada masa lalu ke masa mendatang. Dengan kata lain, semakin baru pengamatan, semakin tinggi bobot yang terkait.

ts.plot(datacuaca$wind_speed, col="blue", ylab = "Wind speed", xlab = "Day")
title(main = "Time Series Plot of Wind speed", sub = "Source : Kaggle (https://www.kaggle.com/)", 
      cex.sub = 0.8)
points(datacuaca$wind_speed, pch = 20, col = "blue")

datacuaca2 = ts(datacuaca$wind_speed, start =1 )
datacuaca2
## Time Series:
## Start = 1 
## End = 114 
## Frequency = 1 
##   [1]  2.743478  2.894444  4.016667  4.545000  3.300000  8.681818 10.041667
##   [8]  1.950000  6.542857  9.361111  9.772222  6.626316  6.435294  5.276000
##  [15]  3.630435 10.380000  8.038889  6.029167 10.338095 11.226316 13.695652
##  [22]  5.868000  6.752941  3.391304  8.756000  8.467857 14.358333  9.690909
##  [29] 10.294444  4.322222  4.625000  5.100000  3.027273  1.854545  9.820000
##  [36]  8.100000  9.044444  7.637500  4.080000  7.875000  9.066667  3.950000
##  [43]  1.625000  6.377778  6.962500  5.557143 10.437500  9.280000  6.250000
##  [50]  6.054545  6.937500 12.341667  7.412500 14.350000 16.662500 11.928571
##  [57] 11.112500  5.100000  3.911111  6.415385  5.930000  7.412500  8.350000
##  [64]  9.962500  9.666667  6.025000 10.263636  8.342857 11.462500  5.566667
##  [71]  7.637500  9.055556  4.522222  7.175000  5.560000 11.490000  7.123077
##  [78]  9.161111 10.077778  9.262500 10.187500  3.487500 10.033333 10.425000
##  [85] 17.590000 13.650000  8.844444 13.200000 10.585714  6.950000  9.037500
##  [92]  9.262500  6.937500 14.320000 14.384615 13.577778  4.650000  8.337500
##  [99] 14.125000 19.314286 15.512500  9.487500  4.944444  1.387500  5.966667
## [106]  2.100000  5.366667  7.811111  9.025000  5.562500  6.962500  8.890000
## [113]  9.962500 12.157143

Single Exponential Smoothing

Pemulusan eksponensial tunggal adalah metode yang sesuai untuk data deret waktu yang mengikuti pola stasioner atau metode yang mengasumsikan bahwa data berfluktuasi di sekitar nilai rata-rata yang tetap tanpa tren. Metode ini dapat memprediksi masa depan dengan menghaluskan data dan menghasilkan data perkiraan

library(forecast)
per1 = ses(datacuaca$wind_speed, h= 20)
per1
##     Point Forecast    Lo 80    Hi 80       Lo 95    Hi 95
## 115       9.584386 5.084059 14.08471  2.70173009 16.46704
## 116       9.584386 4.837628 14.33114  2.32484589 16.84393
## 117       9.584386 4.603374 14.56540  1.96658494 17.20219
## 118       9.584386 4.379652 14.78912  1.62443227 17.54434
## 119       9.584386 4.165158 15.00361  1.29639266 17.87238
## 120       9.584386 3.958837 15.20993  0.98085161 18.18792
## 121       9.584386 3.759820 15.40895  0.67648084 18.49229
## 122       9.584386 3.567382 15.60139  0.38217188 18.78660
## 123       9.584386 3.380910 15.78786  0.09698831 19.07178
## 124       9.584386 3.199883 15.96889 -0.17986949 19.34864
## 125       9.584386 3.023848 16.14492 -0.44909075 19.61786
## 126       9.584386 2.852415 16.31636 -0.71127454 19.88005
## 127       9.584386 2.685241 16.48353 -0.96694550 20.13572
## 128       9.584386 2.522023 16.64675 -1.21656612 20.38534
## 129       9.584386 2.362493 16.80628 -1.46054664 20.62932
## 130       9.584386 2.206411 16.96236 -1.69925292 20.86802
## 131       9.584386 2.053564 17.11521 -1.93301291 21.10178
## 132       9.584386 1.903757 17.26501 -2.16212191 21.33089
## 133       9.584386 1.756818 17.41195 -2.38684695 21.55562
## 134       9.584386 1.612586 17.55619 -2.60743046 21.77620
plot(per1, col="blue", ylab = "Wind speed", xlab = "Day")

Tidak hanya menggunakan fungsi ses, namun kita juga dapat menggunakan fungsi Holt Winters. Dimana Holt Winters ini merupakan sebuah metode prediksi kuantitatif yang digunakan dalammemprediksi suatu data tren dan musiman. Dimana beberapa variasi dari metode Holt-Winters adalah Multiplicative Holt-Winters, Additive Holt-Winters dan Double Seasonal Holt-Winters.

data.hw <- HoltWinters(datacuaca$wind_speed, beta=FALSE, gamma=FALSE)
str(data.hw)
## List of 9
##  $ fitted      : Time-Series [1:113, 1:2] from 2 to 114: 2.74 2.8 3.26 3.75 3.58 ...
##   ..- attr(*, "dimnames")=List of 2
##   .. ..$ : NULL
##   .. ..$ : chr [1:2] "xhat" "level"
##  $ x           : Time-Series [1:114] from 1 to 114: 2.74 2.89 4.02 4.54 3.3 ...
##  $ alpha       : num 0.38
##  $ beta        : logi FALSE
##  $ gamma       : logi FALSE
##  $ coefficients: Named num 9.87
##   ..- attr(*, "names")= chr "a"
##  $ seasonal    : chr "additive"
##  $ SSE         : num 1383
##  $ call        : language HoltWinters(x = datacuaca$wind_speed, beta = FALSE, gamma = FALSE)
##  - attr(*, "class")= chr "HoltWinters"
data.hw$SSE
## [1] 1382.679
plot(data.hw, col="blue", ylab = "Wind speed", xlab = "Day")
points(datacuaca2, pch = 20, col = "blue")
legend("topleft",c("Actual data","Smoothed data"), lty=8, col=c("blue","red"), cex=0.8)

datafc.hw<-forecast(data.hw, h=20)
datafc.hw
##     Point Forecast    Lo 80    Hi 80      Lo 95    Hi 95
## 115       9.867777 5.369985 14.36557  2.9889981 16.74656
## 116       9.867777 5.055799 14.67975  2.5084918 17.22706
## 117       9.867777 4.760906 14.97465  2.0574916 17.67806
## 118       9.867777 4.482135 15.25342  1.6311491 18.10440
## 119       9.867777 4.217101 15.51845  1.2258144 18.50974
## 120       9.867777 3.963953 15.77160  0.8386576 18.89690
## 121       9.867777 3.721222 16.01433  0.4674325 19.26812
## 122       9.867777 3.487719 16.24783  0.1103205 19.62523
## 123       9.867777 3.262465 16.47309 -0.2341751 19.96973
## 124       9.867777 3.044644 16.69091 -0.5673040 20.30286
## 125       9.867777 2.833565 16.90199 -0.8901222 20.62568
## 126       9.867777 2.628637 17.10692 -1.2035317 20.93908
## 127       9.867777 2.429353 17.30620 -1.5083100 21.24386
## 128       9.867777 2.235271 17.50028 -1.8051333 21.54069
## 129       9.867777 2.046003 17.68955 -2.0945938 21.83015
## 130       9.867777 1.861208 17.87435 -2.3772136 22.11277
## 131       9.867777 1.680583 18.05497 -2.6534559 22.38901
## 132       9.867777 1.503857 18.23170 -2.9237340 22.65929
## 133       9.867777 1.330790 18.40476 -3.1884182 22.92397
## 134       9.867777 1.161161 18.57439 -3.4478421 23.18340
plot(datafc.hw, col="blue", ylab = "Wind speed", xlab = "Day")

Ukuran Akurasi Prakiraan untuk optimum dapat menggunakan Holtwinters fungsi

opses <- ses(datacuaca2, h=20)
summary(opses)
## 
## Forecast method: Simple exponential smoothing
## 
## Model Information:
## Simple exponential smoothing 
## 
## Call:
##  ses(y = datacuaca2, h = 20) 
## 
##   Smoothing parameters:
##     alpha = 0.3354 
## 
##   Initial states:
##     l = 3.8188 
## 
##   sigma:  3.5116
## 
##      AIC     AICc      BIC 
## 830.2948 830.5130 838.5034 
## 
## Error measures:
##                     ME     RMSE      MAE       MPE     MAPE      MASE      ACF1
## Training set 0.1507765 3.480684 2.787596 -22.29404 49.06713 0.9260584 0.2255895
## 
## Forecasts:
##     Point Forecast    Lo 80    Hi 80       Lo 95    Hi 95
## 115       9.584386 5.084059 14.08471  2.70173009 16.46704
## 116       9.584386 4.837628 14.33114  2.32484589 16.84393
## 117       9.584386 4.603374 14.56540  1.96658494 17.20219
## 118       9.584386 4.379652 14.78912  1.62443227 17.54434
## 119       9.584386 4.165158 15.00361  1.29639266 17.87238
## 120       9.584386 3.958837 15.20993  0.98085161 18.18792
## 121       9.584386 3.759820 15.40895  0.67648084 18.49229
## 122       9.584386 3.567382 15.60139  0.38217188 18.78660
## 123       9.584386 3.380910 15.78786  0.09698831 19.07178
## 124       9.584386 3.199883 15.96889 -0.17986949 19.34864
## 125       9.584386 3.023848 16.14492 -0.44909075 19.61786
## 126       9.584386 2.852415 16.31636 -0.71127454 19.88005
## 127       9.584386 2.685241 16.48353 -0.96694550 20.13572
## 128       9.584386 2.522023 16.64675 -1.21656612 20.38534
## 129       9.584386 2.362493 16.80628 -1.46054664 20.62932
## 130       9.584386 2.206411 16.96236 -1.69925292 20.86802
## 131       9.584386 2.053564 17.11521 -1.93301291 21.10178
## 132       9.584386 1.903757 17.26501 -2.16212191 21.33089
## 133       9.584386 1.756818 17.41195 -2.38684695 21.55562
## 134       9.584386 1.612586 17.55619 -2.60743046 21.77620
plot(opses, col="blue", ylab = "Wind speed", xlab = "Day")
points(datacuaca2, pch = 20, col = "blue")

SSEophw= data.hw$SSE
MSEophw= SSEophw/length(datacuaca$wind_speed)
RMSEophw = sqrt(MSEophw)


akurasi = matrix(c(SSEophw,MSEophw,RMSEophw))
row.names(akurasi) = c("SSE","MSE","RMSE")
colnames(akurasi) = c("Akurasi lambda = 0,1")
akurasi
##      Akurasi lambda = 0,1
## SSE           1382.678917
## MSE             12.128762
## RMSE             3.482637

Double Exponential Smoothing

Metode Double expoential smoothing merupakan suatu metode yang digunakan dalam menentukan persamaan trend data pemulusan kedua melalui proses smoothing. Sistem peramalan ini menangkap pola dari data yang telah lalu kemudian digunakan untuk memproyeksikan data yang akan datang. Dlam penerapannya dengan kombinasi nilai parameter lambda = 0.1 dan gamma = 0.1

des<-HoltWinters(datacuaca$wind_speed,gamma = FALSE, beta = 0.1, alpha = 0.1)
plot(des)

ram1 = forecast(des,h=10)
ram1
##     Point Forecast    Lo 80    Hi 80       Lo 95    Hi 95
## 115       7.934462 3.139005 12.72992  0.60044408 15.26848
## 116       7.801421 2.977039 12.62580  0.42316582 15.17968
## 117       7.668380 2.809799 12.52696  0.23782200 15.09894
## 118       7.535339 2.636927 12.43375  0.04386356 15.02681
## 119       7.402298 2.458092 12.34650 -0.15921266 14.96381
## 120       7.269257 2.272999 12.26552 -0.37185989 14.91037
## 121       7.136216 2.081387 12.19105 -0.59447823 14.86691
## 122       7.003176 1.883029 12.12332 -0.82741239 14.83376
## 123       6.870135 1.677738 12.06253 -1.07095043 14.81122
## 124       6.737094 1.465362 12.00883 -1.32532349 14.79951

Nilai Keakuratannya adalah

SSEdeshw= des$SSE
MSEdeshw= SSEdeshw/length(datacuaca$wind_speed)
RMSEdeshw = sqrt(MSEdeshw)


akurasi1 = matrix(c(SSEdeshw,MSEdeshw,RMSEdeshw))
row.names(akurasi1) = c("SSE","MSE","RMSE")
colnames(akurasi1) = c("Akurasi lambda = 0,1 dan Gmma = 0,1")
akurasi1
##      Akurasi lambda = 0,1 dan Gmma = 0,1
## SSE                          1561.415319
## MSE                            13.696626
## RMSE                            3.700895

Dari perhitungan diatas dapat disimpukan bahwa nilai gamma dan lambdanya ebih kecil . Maka dapat disimpulkan bahwa DES dengan lambda 0.1 dan Gamma 0.1 adalah metode yang lebih baik

Sehingga kesimpulan secara keseluruhan bahwa dari simple exponential smoothing, dan double exponential smoothing, model terbaik yang diperoleh untuk data cuaca harian dengan variabel yang dipilih yaitu wind_speed, adalah model double exponential smoothing dengan ?? optimum (0.0001) dan ?? optimum (0.0001).

Arima Models.

Model ARIMA memberikan pendekatan lain dalam peramalan deret waktu. Model ARIMA merupakan salah satu pendekatan yang paling banyak digunakan dalam peramalan deret waktu, dan memberikan pendekatan pelengkap untuk suatu masalah. Model ARIMA bertujuan dalam menggambarkan autokorelasi dalam data.

W = datacuaca$wind_speed
dW = diff(W)
plot.ts(W)

plot.ts(dW)

Dickey Fuller Test

Langkah selanjutnya adalah kita memeriksa stasioneritas data augmented Dickey Fuller Test dimana dalam Tes ini menguji hipotesis nol yang menyatakan bahwa unit rood terdapat dalam model autogresif. Suatu Data time series memiliki stasioneritas jika perubahan waktu itu tidak menyebabkan perubahan dalam bentuk distribusi.

library(tseries)
adf.test(W, alternative="stationary")
## 
##  Augmented Dickey-Fuller Test
## 
## data:  W
## Dickey-Fuller = -4.8397, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary

Dari hasil tersebut dimana pengujian ADF terhadap Variabel wind_speed terlihat jelas bahwa data ini tidak stasioner, untuk itu kita akan menerapkan pengujian Dickey Fuller Test.

Uji ADF DAN DF

adf.test(dW, k=0)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  dW
## Dickey-Fuller = -13.646, Lag order = 0, p-value = 0.01
## alternative hypothesis: stationary
adf.test(dW)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  dW
## Dickey-Fuller = -7.1037, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary

Pada kedua hasl Uji tersebut, nilai p-value untuk keduanya sama-sama 0,01. Dimana dapat disimpulkan bahwa hipotesis nol ditolak sehingga data tersebut tidak stasioner.

Uji ACF DAN PCF Untuk menendukan orde proses dalam ARIMA kita dapat melakukan plot ACF dan PCF. ACF atau Fungsi Autokorelasi merupakan sebuah oengukuran korelasi antar pengamatan tentang jeda k. Namun Untuk PACF atau Parsial Autocorrelation Function merupakan suatu pengukuran antar dua pengamatan dimana memiliki jeda kurang dari k

acf(W)

pacf(W)

Dapat dilihat dari 2 plot tersebut bahwa terdapat beberapa lag yang melewati batas sehingga tidak stabil.

ARIMA (1,0,0) atau AR(1)

library(forecast)
library(lmtest)
Arima_1<-arima(W,order=c(1,0,0))
summary(Arima_1)
## 
## Call:
## arima(x = W, order = c(1, 0, 0))
## 
## Coefficients:
##          ar1  intercept
##       0.4560     8.1338
## s.e.  0.0842     0.5444
## 
## sigma^2 estimated as 10.14:  log likelihood = -293.93,  aic = 593.87
## 
## Training set error measures:
##                      ME     RMSE      MAE       MPE     MAPE      MASE
## Training set 0.02678366 3.184848 2.562302 -24.29124 46.62284 0.8512143
##                     ACF1
## Training set 0.003981418
coeftest(Arima_1)
## 
## z test of coefficients:
## 
##           Estimate Std. Error z value  Pr(>|z|)    
## ar1       0.456025   0.084213  5.4151 6.125e-08 ***
## intercept 8.133838   0.544372 14.9417 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

ARIMA (2,0,0) atau AR(2)

Arima_2<-arima(W,order=c(2,0,0))
summary(Arima_2)
## 
## Call:
## arima(x = W, order = c(2, 0, 0))
## 
## Coefficients:
##          ar1      ar2  intercept
##       0.4638  -0.0177     8.1352
## s.e.  0.0939   0.0946     0.5349
## 
## sigma^2 estimated as 10.14:  log likelihood = -293.92,  aic = 595.83
## 
## Training set error measures:
##                      ME     RMSE      MAE     MPE     MAPE      MASE
## Training set 0.02511784 3.184357 2.561601 -24.309 46.62259 0.8509812
##                      ACF1
## Training set -0.005598296
coeftest(Arima_2)
## 
## z test of coefficients:
## 
##            Estimate Std. Error z value  Pr(>|z|)    
## ar1        0.463789   0.093912  4.9386  7.87e-07 ***
## ar2       -0.017680   0.094628 -0.1868    0.8518    
## intercept  8.135193   0.534888 15.2091 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

ARIMA (1,1,1)

Arima_3<-arima(W,order=c(1,1,1))
summary(Arima_3)
## 
## Call:
## arima(x = W, order = c(1, 1, 1))
## 
## Coefficients:
##          ar1      ma1
##       0.4354  -0.9657
## s.e.  0.0910   0.0283
## 
## sigma^2 estimated as 10.31:  log likelihood = -293.08,  aic = 592.15
## 
## Training set error measures:
##                     ME     RMSE      MAE       MPE     MAPE      MASE
## Training set 0.4872312 3.196979 2.502443 -14.91665 42.24549 0.8313287
##                     ACF1
## Training set -0.01121886
coeftest(Arima_3)
## 
## z test of coefficients:
## 
##      Estimate Std. Error  z value  Pr(>|z|)    
## ar1  0.435403   0.091026   4.7833 1.725e-06 ***
## ma1 -0.965742   0.028329 -34.0897 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

ARIMA (0,0,1) atau MA (1)

Arima_4<-arima(W,order=c(0,0,1))
summary(Arima_4)
## 
## Call:
## arima(x = W, order = c(0, 0, 1))
## 
## Coefficients:
##          ma1  intercept
##       0.3753     8.1424
## s.e.  0.0731     0.4186
## 
## sigma^2 estimated as 10.61:  log likelihood = -296.45,  aic = 598.9
## 
## Training set error measures:
##                      ME     RMSE      MAE       MPE     MAPE      MASE
## Training set 0.01091747 3.257113 2.595647 -26.25583 47.87669 0.8622917
##                    ACF1
## Training set 0.08159435
coeftest(Arima_4)
## 
## z test of coefficients:
## 
##           Estimate Std. Error z value  Pr(>|z|)    
## ma1       0.375336   0.073102  5.1344  2.83e-07 ***
## intercept 8.142383   0.418555 19.4536 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

ARIMA (1,0,1) atau AR(1)MA(1)

Arima_5<-arima(W,order=c(1,0,1))
summary(Arima_5)
## 
## Call:
## arima(x = W, order = c(1, 0, 1))
## 
## Coefficients:
##          ar1     ma1  intercept
##       0.4352  0.0261     8.1347
## s.e.  0.1615  0.1698     0.5382
## 
## sigma^2 estimated as 10.14:  log likelihood = -293.92,  aic = 595.84
## 
## Training set error measures:
##                    ME     RMSE     MAE       MPE     MAPE      MASE
## Training set 0.025701 3.184518 2.56156 -24.30253 46.61923 0.8509676
##                      ACF1
## Training set -0.002539473
coeftest(Arima_5)
## 
## z test of coefficients:
## 
##           Estimate Std. Error z value  Pr(>|z|)    
## ar1       0.435225   0.161530  2.6944  0.007052 ** 
## ma1       0.026091   0.169764  0.1537  0.877854    
## intercept 8.134715   0.538170 15.1155 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Maka dapat disimpulkan bahwa Hasil hari Output tersebut adalah :

  • Arima_1memiliki nilai Pr(>|z|) = 6.125e-08
  • Arima_2memiliki nilai Pr(>|z|) = 0.8518
  • Arima_3memiliki nilai Pr(>|z|) = 1.725e-06
  • Arima_4memiliki nilai Pr(>|z|) = 2.83e-07
  • Arima_5memiliki nilai Pr(>|z|) = 0.007052

Maka dapat dilihat bahwa Arima yang signifikan ada pada Arima_5. Dimana dalam Arima_5 merupakan Model Arima(1,0,1) atau AR(1)MA(1). Dimana selanjutnya akan melakukan uji Nilai Tengah terhadap redisualnya

residuu=Arima_5$residuals
t.test(residuu, mu=0, alternative = "two.sided")
## 
##  One Sample t-test
## 
## data:  residuu
## t = 0.085795, df = 113, p-value = 0.9318
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -0.5677903  0.6191923
## sample estimates:
## mean of x 
##  0.025701
accuracy(Arima_5)
##                    ME     RMSE     MAE       MPE     MAPE      MASE
## Training set 0.025701 3.184518 2.56156 -24.30253 46.61923 0.8509676
##                      ACF1
## Training set -0.002539473

Maka dapat disimpulkan bahwa Arima_5 dengan model Arima(1,0,1) merupakan model yang dipilih

Kesimpulan

Model Regresi time series memiliki suatu kelebihan dimana tentunya kita dapat memperkirakan atau meramalkan nilai data pada periode berikutnya dengan hanya berdasar pada data-data yang sudah dikumpulkan sebelumya. Namun untuk para peneliti diperlukan ketelitian dalam penelitiann time series. Karena itu menggunakan data deret waktu yang sekunder

Model Exponential Smoothing dalam pengujiannya itu banyak mengurangi masalah penyimpanan data, sehingga tidak perlu lagi menyimpan semua data historis atau sebagian hanya pengamatan terakhir, ramalan terakhir, dan suatu nilai konstanta yang harus disimpan. Metode ini digunakan secara luas di dalam peramalan. Namun terdapat tingkat keraguan yang tinggi apabila metode ini digunakan pada peramalan jangka panjang, penggunaan dalam peramalan harus benar-benar memperhatikan nilai konstanta pemulusan agar hasil peramalan dapat lebih akurat.

Model ARIMA sesungguhnya lebih baik dalam peramalan jangka pendek karena membutuhkan waktu serta sumber daya lain yang besar. Lalu tidak Hanya itu, model Arima ini juga memerlukan data dalam jumlah yang banyak dikarenakan dalam interval ramalan dan prediksinya sudah mengikuti modelnya.

Pendapat Saya Pribadi

Menurut Pendapat Saya, Dari Ketiga Model tersebut Yaitu Model Regresi Time Series, Model Exponential Smoothing, serta Model ARIMA ketiganya memiliki kelebihan serta kekurangannya masing-masing. Namun pada data kasus yang saya punyai khususnya tentang peramalan cuaca dengan berdasar pada data 4 bulan sebelumnya. Menurut saya Model yang paling Cocok ada Pada Model Exponential Smoothing. Karena pada Model tersebut kita dapat melihat suatu perkembangan nantinya di masa depan dengan berdasar pada data yang sebelumya sudah dikumpukan. Dimana tentunya dalam melakukan peramaln menggunakan Model Exponential Smoothing tersebut kita membangun suatu strategi yang bijak.