Time Series: Forecasting




Salah satu penggunaan Time Seies  adalah untuk melakukan forecasting untuk beberapa waktu kedepan.

CONTOH SOAL

Diberikan data saham sebuah bank terkenal di Indonesia sepanjang 2016 sampai dengan 2017. Buatlah forecast dengan analisis time series dengan metode ETS, ARIMA, dan TBATS untuk tahun 2018.

>head(saham)
  Year Month Close
1 2016     1 13475
2 2016     2 13300
3 2016     3 13050
4 2016     4 13000
5 2016     5 13325
6 2016     6 14450

Format Time Series


  • Untuk melihat apakah data kita sudah dalam forrmat time series, kita pergunakan fungsi class(namadataset).  

> class(iris) # contoh belum format data frame
[1] "data.frame"
> class(AirPassengers) # contoh format time series
[1] "ts"
> 


  • Kalau hasil fungsi class tertulis "ts" menandakan format sudah time series. 
  • Dataset iris bukan format time series sedangkan AirPassengers sudah format time series.
  • Berikutnya, kita periksa dataset saham bank ini. Ternyata bukan time series.

> class(saham)# belum format ts
[1] "data.frame"
> 
  • Untuk mengubah menjadi fungsi time series kita gunakan fungsi ts().  
  • Parameter yang dibutuhkan disini adalah nama dataset dan nama kolomnya.
  • Hasilnya, kalau diperiksa ulang dengan fungsi class() sudah menunjukkan format time series.

> ts_saham <- ts(saham["Close"], 
+ start = c(2015, 1), frequency = 12)
> class(ts_saham)# sudah format ts
[1] "ts"

Visualisasi Time Series


  • Sekarang kita coba visualisasi data ts_saham ini menggunakan fungsi plot().

> plot(ts_saham) #This will plot the time series

  • Untuk melihat apakah ada trend, kita gambarkan sebuah garis trend dengan fungsi abline().

>abline(reg=lm(ts_saham~time(ts_saham))) 
# This will fit in a line

  • Dari gambar di atas, terlihat garis trend naik, hal ini menunjukkan bahwa ada trend naik dari tahun 2015 ke tahun 2017. 

Forecast

  • Sekarang kita bisa forecast 12 bulan kedepan dengan menggunakan metode ETS, ARIMA, dan TBATS..
  • METODE ETS
    • ETS=Errors, Trends, Seasonals
    • Kita gunakan fungsi ets(datatimeseries)
    • Untuk forecast dibutuhkan fungsi forecast(modelETS,h).
    • Library yang diperlukan forecast
    • Kita gunakan h=12 untuk memprediksi harga saham 12 bulan ke depan.
>library(forecast)
>ets_saham=ets(ts_saham)
>f_ets_saham = forecast(ets_saham, h=12) 
>plot(f_ets_saham)




  • METODE ARIMA
    • Kita gunakan fungsi auto.arima(datatimeseries)
    • Untuk forecast dibutuhkan fungsi forecast(modelARIMA,h)

arima_saham = auto.arima(ts_saham)
f_arima_saham = forecast(arima_saham, h=12)
plot(f_arima_saham)

  • METODE TBATS
    • Kita gunakan fungsi tbats(datatimeseries)
    • Untuk forecast dibutuhkan fungsi forecast(modelTBATS,h).

tbats_saham = tbats(ts_saham)
f_tbats_saham = forecast(tbats_saham, h=12)
plot(f_tbats_saham)


Perbandingan Model

  • Ketiga metode forecast sama-sama memprediksi harga saham bank ini akan naik di tahun 2018.
  • Untuk membandingkan ketiga model prediksi diatas kita gunakan diagram batang fungsi barplot() .
  • Yang kita bandingkan disini adalah property AIC(Akaike’s Information Criterion) dari masing-masing model.
  • Akaike Information Critera (AIC) digunakan untuk menghitung  1) the goodness of fit, dan 2) the simplicity/parsimony, model terhadap suatu nilai statistik.
  • Model dengan nilai AIC lebih kecil adalah model yang lebih baik.


>barplot(c(ETS=ets_saham$aic,ARIMA=arima_saham$aic,
        TBATS=tbats_saham$AIC),
        col="orange",ylab="AIC")



Dari diagram batang di atas terlihat model ARIMA memiliki nilai AIC terkecil sehingga model forecast ARIMA lebih baik dari ETS dan TBATS.


No comments:

Post a Comment